A Set of Tools to Solve NMS Scaling Using Aspects Shay Raz Advisor: Prof. Amiram Yehudai.
-
Upload
shea-causey -
Category
Documents
-
view
218 -
download
3
Transcript of A Set of Tools to Solve NMS Scaling Using Aspects Shay Raz Advisor: Prof. Amiram Yehudai.
A Set of Tools to Solve NMS Scaling Using Aspects
Shay Raz
Advisor: Prof. Amiram Yehudai
Overview
• Background
• Model
• Basic Aspects
• Optimizations
• Package Plug-in
• Summary
• Future Work
Background
• Atrica• Network Management System (NMS)
– Inventory management, Fault management, Performance management, Service Management, Security Management, Fraud Detection, and Billing.
• Scaling problem– Solution is setup dependent.
– Small setup -> in memory virtual network.
– Big setup -> system collapse!
Background (Cont.)
• Solution – complete system reengineering• Constraints
– On going development of new features.– Support and maintain existing solution.– Usual time/manpower constraints.
• Thesis – why don’t use Aspect to solve scaling program– Use same code base.– Plug in and out scaling issue as needed.– Dynamically refine pointcuts to include new development.
Model
• Elements– Device, Port, Link, Connection
• Managers– Element manager– Element Database manager
• Application– Connection Analyzer
• Simulation– Topology creator– Test runner
Class Diagram
Device
Connection Link
Port*
* *
2
1
Database Scheme
FK_PORT_REFERENCE_LINK
FK_PORT_REFERENCE_DEVICE
FK_ROUTE_REFERENCE_CONNECTI
FK_ROUTE_REFERENCE_LINK
DEVICE
DEVICE_IDNAMEDESCRIPTION
intvarchar(40)varchar(100)
<pk>
CONNECTION
CONNECTION_IDNAMEDESCRIPTION
intvarchar(40)varchar(100)
<pk>
LINK
LINK_IDNAMEDESCRIPTION
intvarchar(40)varchar(100)
<pk>
PORT
PORT_IDNAMEDESCRIPTIONDEVICE_IDLINK_ID
intvarchar(40)varchar(100)intint
<pk>
<fk2><fk1>
ROUTE
CONNECTION_IDLINK_ID
intint
<fk1><fk2>
Topology
Connections
Initial ResultsLinux
SettingLoadMemoryDevice Get ConnectionConnection Get Devices
TimeTotalCore Avg.Edge Avg.MaxTotalAvg.Max
No Aspects49,020209,845,176790280572,172071
PC
SettingLoadMemoryDevice Get ConnectionConnection Get Devices
TimeTotalCore Avg.Edge Avg.MaxTotalAvg.Max
No Aspects14,782290,125,552797270783,32801,828
Basic Aspects
• Load control aspects– PreventLoadAspect
• Getting elements aspects– XXGetElementAspect– XXGetRelatedYYIdsAspect
Basic ResultsLinux
SettingLoadMemoryDevice Get ConnectionConnection Get Devices
TimeTotalCore Avg.Edge Avg.MaxTotalAvg.Max
No Aspects49,020209,845,176790280572,172071
Basic135259,8242,920,13181,6201,05285,6757,477,67674711
PC
SettingLoadMemoryDevice Get ConnectionConnection Get Devices
TimeTotalCore Avg.Edge Avg.MaxTotalAvg.Max
No Aspects14,782290,125,552797270783,32801,828
Basic171236,28011,393,971329,6194,049334,4531,691,97916141
Optimization
• Development aspect– TraceDatabaseAspect
• Elements are selected from database one by one– Db overhead– DB latency
• We can do better then that…
Optimization (Cont.)
• Enhance the get related aspect to do the loading also.– XXGetRelatedYYAspect
Optimized ResultsLinux
SettingLoadMemoryDevice Get ConnectionConnection Get Devices
TimeTotalCore Avg.Edge Avg.MaxTotalAvg.Max
No Aspects49,020209,845,176790280572,172071
Basic135259,8242,920,13181,6201,05285,6757,477,67674711
Optimized213259,8241,246,86839,91842457,5256,420,950641,409
PC
SettingLoadMemoryDevice Get ConnectionConnection Get Devices
TimeTotalCore Avg.Edge Avg.MaxTotalAvg.Max
No Aspects14,782290,125,552797270783,32801,828
Basic171236,28011,393,971329,6194,049334,4531,691,97916141
Optimized1,313236,2809,996,218213,8583,929225,8441,570,33015125
Optimization 2
• Development aspect– CountObjectCreationAspect
• Topology elements are created many times more there needed.– Selective loading– Caching mechanism
Optimization 2 (Cont.)
• Change load strategy to load topology only– TopologyOnlyLoadAspect– ConnectionGetRelatedLinkAspect
Optimized 2 ResultsLinux
SettingLoadMemoryDevice Get ConnectionConnection Get Devices
TimeTotalCore Avg.Edge Avg.MaxTotalAvg.Max
No Aspects49,020209,845,176790280572,172071
Basic135259,8242,920,13181,6201,05285,6757,477,67674711
Optimized213259,8241,246,86839,91842457,5256,420,950641,409
Optimized 23,08811,120,2801,048,98034,95635036,276322,212399
PC
SettingLoadMemoryDevice Get ConnectionConnection Get Devices
TimeTotalCore Avg.Edge Avg.MaxTotalAvg.Max
No Aspects14,782290,125,552797270783,32801,828
Basic171236,28011,393,971329,6194,049334,4531,691,97916141
Optimized1,313236,2809,996,218213,8583,929225,8441,570,33015125
Optimized 21,57811,605,1449,718,595212,8143,795222,00092,557078
Package Plug-in
• Develop in house caching solution is expensive.
• There are a lot of off-the-shelf solutions
• Use Aspect to plug-in an off-the-shelf solution into the system
JDO - Java Data Object
• Java JSR.• Separate persistency model from data model.• Use XML to describe DB schema and mapping.• Use enhancer (byte code to byte code) to introduce
persistency code.• Has many implementations : RI, LiDO, KoDO,
etc.• Not very stable (yet)
JDO Aspects
• Transaction aspect– JDOTransactionAspect
• Get elements aspect– XXGetElementAspect
Results SummaryLinux
SettingLoadMemoryDevice Get ConnectionConnection Get Devices
TimeTotalCore Avg.Edge Avg.MaxTotalAvg.Max
No Aspects49,020209,845,176790280572,172071
Basic135259,8242,920,13181,6201,05285,6757,477,67674711
Optimized213259,8241,246,86839,91842457,5256,420,950641,409
Optimized 23,08811,120,2801,048,98034,95635036,276322,212399
PC
SettingLoadMemoryDevice Get ConnectionConnection Get Devices
TimeTotalCore Avg.Edge Avg.MaxTotalAvg.Max
No Aspects14,782290,125,552797270783,32801,828
Basic171236,28011,393,971329,6194,049334,4531,691,97916141
Optimized1,313236,2809,996,218213,8583,929225,8441,570,33015125
Optimized 21,57811,605,1449,718,595212,8143,795222,00092,557078
JDO109236,0001,260,78139,95240153,10942,00,000422,000
Summary
• Aspects can be used to easily change software strategy.– Useful for product-line
• Development Aspects can be use to optimize software.– Instrumentation is very specific
• Aspects can be used to easily plug-in off-the-shelf products
Future Work
• Objects scope detection
• Dynamic optimization
• Dynamic loading strategy
• Distribution using aspects
• Clients scaling