A Set of Tools to Solve NMS Scaling Using Aspects Shay Raz Advisor: Prof. Amiram Yehudai.

Post on 30-Mar-2015

218 views 3 download

Tags:

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