MD-SAL AADS - OpenDayLight Wiki

MD-SAL
APPLICATION AWARE DATA
STORE (AADS)
Chandramouli Venkataraman
([email protected])
www.opendaylight.org
MD-SAL - Today
Controller Platform
APP
DOM tree Data store:
Request
Notification
Routing
Routing
/config
/operational
MD-SAL
Clustering Service
OF Plugin
www.opendaylight.org
2
MD-SAL Data Store – Scaling concerns
1.
Centralized DOM Tree based data store
Yang model to DOM tree mapping
Not suitable for a lot of applications
• OF objects can be stored in hash-map for better
performance
Too many tree nodes
• Single OF object maps to a sub-tree with
match/action nodes
• tree traversal costs
www.opendaylight.org
3
MD-SAL Data Store – Scaling concerns
1.
Applications don’t have flexibility to choose their data
structures based on their performance and scale
requirements
Scaling becomes directly proportional to centralized
datastore’s perfromance
www.opendaylight.org
4
BA – BI Infrastructure - complicated
BA applications need to go through a set of
broker interfaces before reaching DOM data
store
JAVA objects to DOM mapping overheads
www.opendaylight.org
5
AADS – Introduction
AADS let’s applications
Create/delete their own data stores
Choose the type of data structures like hash-table
according to their needs
Efficiently realize storage objects in alignment with
Yang models and manipulate them
Decide on structuring data for efficient partition
Handle transactions in a flexible manner as per their
needs
Not intended to replace existing MD-SAL Centralized
Data Store
www.opendaylight.org
6
AADS – Introduction (cont.)
What applications are we talking about?
NSF applications like topology manager
Network technologies like OF
MD-SAL Services that applications must be
able to leverage
Data store services
Request Routing
Clustering Services
Notification services
www.opendaylight.org
7
AADS – Conceptual View
Controller Platform
OF FRMv2 APP (AADS)
OF Hash Table :
/config
/operational
Request
Notification
Routing
Routing
MD-SAL
Clustering Service
OF Plugin
www.opendaylight.org
8
MD-SAL - AADS & DOM DS
Controller Platform
APP2 (Uses AADS)
APP1 (Uses DOM)
AADS Data store:
/config
DOM tree Data store:
/config
Request
Notification
/operational
Routing
Routing
/operational
MD-SAL
Clustering Service
OF Plugin
www.opendaylight.org
9
AADS - Requirements
1.
2.
3.
4.
5.
Provide a data store framework to applications that allows
them to create/delete data stores dynamically
Should be able to support different data stores in parallel
Yang related functionalities like augmentation should be
supported
Existing ODL interfaces like RESTCONF should be
supported
Provide a transaction library for applications
www.opendaylight.org
10
AADS - Requirements
Provide data change events to be registered at data nodes
in the data stores (provide appropriate hooks for
applications to register the same)
2. Capable of supporting a flexible clustering service like
AKKA based clustering service or data-store clustering
service
3. Hide clustering interface from applications as much as
possible
4. Provide appropriate hooks for futures/callbacks that
applications can register to handle replication, distribution
across controller nodes
1.
www.opendaylight.org
11
AADS - Requirements
Provide mechanisms to register dependencies by other
applications
2. Re-use the existing MD-SAL RPC, Remote RPC,
notification framework
3. Should co-exist with the existing MD-SAL centralized
data store framework
4. Applications that use DOM store and those that use
AADS should be able to inter-work with each other
1.
www.opendaylight.org
12
MD-SAL - DOM & AADS API View
Controller Platform
APP2 (Uses AADS)
APP1 (Uses DOM)
MD-SAL API
MD-SAL API EXT (AADS)
AADS Layer
DOM Layer
MD-SAL
MD
Clustering Service
OF Plugin
www.opendaylight.org
13
AADS – 20K FEET Component View
MD-SAL API
Notification Broker
MD-SAL AADS API Extn.
Data Broker
RPC Broker
Data replication
MD-SAL Core
Data sharding
In-Memory Datastore
Notifications
Clustering Services
Distribution Layer
DOM Store
State Trasfer
AADS Store
AADS Backend (??)
Akka Framework
Transport (Def Netty)
OSGi Container
Intrusional changes in Helium MD-SAL and sub-components Code base – class-level, module-level, new abstractions and
implementation
New codebase for AADS proposal
www.opendaylight.org
14
Q&A
www.opendaylight.org
15