#opendaylight-meeting: MD-SAL meeting

Meeting started by colindixon at 16:03:55 UTC (full logs).

Meeting summary

  1. status update (colindixon, 16:04:14)
    1. a lot of effort has gone into documentation and examples for the new MD-SAL APIs (colindixon, 16:05:51)
    2. 6 specific items around this were done and they’re listed on the wiki page for the meeting (colindixon, 16:08:07)
    3. https://wiki.opendaylight.org/view/MD-SAL_Weekly_Call the MD-SAL call wiki page with agenda and notes (colindixon, 16:08:24)
    4. moiz says the clustering work is ongoing and there are patches that are begin merged (colindixon, 16:08:57)
    5. archetypes to provide better path to help people get MD-SAL apps up and working faster are coming down the pipe (colindixon, 16:09:46)
    6. ACTION: colindixon to touch base with the toolkit project to figure out why archetypes aren’t being pushed to nexus (colindixon, 16:12:57)

  2. demo of the new DataBrokerService via the toaster example (colindixon, 16:13:56)
    1. tony has modified the toaster example to use the new APIs (colindixon, 16:14:44)
    2. https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL:Application_Migration_Guide this wiki page talks about the migration and should be useful (colindixon, 16:14:59)
    3. (note that devinavery is actually walking through the toaster code in Eclipse and you should be able to see it in the recording later) (colindixon, 16:15:30)
    4. devinavery, tony, and others have spent a lot of time documenting the data broker, transaction, and other classes (colindixon, 16:17:02)
    5. it should come up in javadoc in all the normal ways (colindixon, 16:17:11)
    6. there should now be only one DataBroker, you can get all your stuff from that, you don’t need to worry aout BindingAware vs. BindingIndependent (colindixon, 16:19:35)
    7. this is still a work in progress in some places (for backward compatibiliy), if you see more than one of a class, e.g., DataChangeListener, all but one should be deprecated and have a pointer to the one that should be used (colindixon, 16:20:24)
    8. in the open type dialog in eclipse, you can see if something is deprecated by a slash through the icon on the left (that is cool!) (colindixon, 16:21:07)
    9. question from ramkumar, in the new APIs is that he seems to be notified of data changes regardless of whether he’s subscribed for them or not (colindixon, 16:24:26)
    10. tony says that this seems to be a bug, ramkumar will file the bug (colindixon, 16:26:00)
    11. tbachman says there’s a question from the mailing list about how the config subsystem might have changed, he asks if that’s true (colindixon, 16:26:28)
    12. the answer is yes, that there are a few changes in the config yang and xml to update things to point to the new DataBroker (colindixon, 16:27:30)
    13. https://git.opendaylight.org/gerrit/#/c/8168/ this gerrit shows how the yang/xml had to change to bind to the new data broker (colindixon, 16:30:12)
    14. ramkumar asks a few more questions which should result in a few more bugs being filed (colindixon, 16:33:16)

  3. demo of clustering (colindixon, 16:33:28)
    1. doing three things: (1) distributed data store, (2) remote RPC, (3) remote notifications (colindixon, 16:34:18)
    2. the bulk of the work is anticipated to be in the distributed data store (colindixon, 16:34:31)
    3. https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL:Architecture:Clustering#Status_Update the wiki page with the status update Moiz is speaking to (colindixon, 16:36:21)
    4. first step is to make it so that the InMemoryDataStore can be replicated and have each part manage a subtree (colindixon, 16:36:58)
    5. then use Akka to link these individual InMemoryDataStores into a single logically global store (colindixon, 16:38:06)
    6. right now, this is all set up with a single shard, next week we should have multiple shards (colindixon, 16:38:31)
    7. moving to protocol buffer serialization to work better with java serialization and are faster (colindixon, 16:39:32)
    8. https://developers.google.com/protocol-buffers/docs/javatutorial talks about protocol buffers in Java (colindixon, 16:40:07)
    9. working on implementing RAFT (a simplified Paxos), for which there is an Akka RAFT (it might be a good starting point) (colindixon, 16:42:37)
    10. colindixon asks why they need RAFT given that they can just rely on Akka cluster for a list of the nodes that are up, that should mean you don’t need consensus on top of it to find the master for a given shard (colindixon, 16:43:33)
    11. moiz responds that they use it for a replicated log so that they can easily bring nodes up to speed when/if they recover (colindixon, 16:44:02)
    12. actual demo starts around 9:43a (you can jump there for the recording) (colindixon, 16:44:31)
    13. the Akka data store embeds all of it’s dependencies so it uses more memory and needs 256m of PermGen space (colindixon, 16:45:27)
    14. it’s not persistent (yet) (colindixon, 16:45:32)
    15. DEBUG-level logging is very nice and includes enough tags to be able to track individual transactions within shards and the like (colindixon, 16:46:52)
    16. demos getting data (just as before) via RESTCONF to the Akka data store and then to the InMemoryDataStore (colindixon, 16:47:53)
    17. edwarnicke points out that as long as an MD-SAL app stores all of it’s state in the data storel, it will become clustered for free with this (colindixon, 16:49:52)

  4. XSQL demo (colindixon, 16:50:00)
    1. https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL:XSQL the wiki page describing this work (colindixon, 16:50:36)
    2. shows virtual tables that are built dynamically based on current contents of the MD-SAL data store (colindixon, 16:52:06)
    3. shows “select * from nodes/node;” and it returns all the nodes in the system (colindixon, 16:53:36)
    4. similarly “select * from nodes/node/node-connector;” getting all the ports in the network (colindixon, 16:54:22)
    5. note that these examples all appear on the wiki page above (colindixon, 16:55:17)
    6. supports SQL like things including finding all node connectors where the hardware address contains 72 (colindixon, 16:57:02)
    7. devinavery asks if this uses the opeartional store vs. configuration store (colindixon, 16:57:34)
    8. the answer is that right now it uses the operational, but that can be changed prety easily (colindixon, 16:57:55)
    9. demos typing “tocsv” at the telnet session and then queries will go to a csv file which can then be opened and played with (colindixon, 16:58:46)
    10. also works with JDBC directly from java with no special MD-SAL anything (colindixon, 16:59:15)
    11. Sharon Aicler says to get in touch with him if you have any questions, he will add his contact information to the wiki page (colindixon, 17:03:59)
    12. moiz asks if there’s any reason this has to be in the controller or if it could be moved somewhere else (colindixon, 17:04:14)
    13. Sharon says he thinks it should be able to be moved anywhere (colindixon, 17:04:26)


Meeting ended at 17:04:46 UTC (full logs).

Action items

  1. colindixon to touch base with the toolkit project to figure out why archetypes aren’t being pushed to nexus


Action items, by person

  1. colindixon
    1. colindixon to touch base with the toolkit project to figure out why archetypes aren’t being pushed to nexus


People present (lines said)

  1. colindixon (60)
  2. odl_meetbot (3)
  3. alagalah (3)
  4. tbachman (2)


Generated by MeetBot 0.1.4.