============================= #opendaylight-meeting Meeting ============================= Meeting started by colindixon at 17:07:23 UTC. The full logs are available at http://meetings.opendaylight.org/opendaylight-meeting/2014/opendaylight-meeting.2014-04-14-17.07.log.html . Meeting summary --------------- * Reviewing the Cisco/Insieme APIC controller's clustering and state management (colindixon, 17:07:58) * similar to MD-SAL in the datastore design (colindixon, 17:08:16) * core idea was that you don't want require network admin to be a DB expert as well (colindixon, 17:08:47) * General DB (or K-V) store isn't going to solve things (colindixon, 17:09:12) * this is because, there aren't good DBs for storing, subscribing to, and manipulating trees (colindixon, 17:10:42) * it's all about the trees (colindixon, 17:11:22) * claim: everything is pretty much a tree, this is different from tables or other organization, e.g., OVSDB, SQL, etc. (colindixon, 17:12:26) * APIC uses a managed object tree (colindixon, 17:12:58) * everything is a classed object, objects are hierarchically organized, objects can be subclassed (colindixon, 17:13:34) * a given object has one and only one parent (except the root which has no parent) (colindixon, 17:16:28) * queries (colindixon, 17:17:00) * queries (colindixon, 17:17:06) * can query by type (class or superclass), properties, unique name, scoping by subtree, or a combination of all of them (colindixon, 17:17:52) * this whole thing is a very nice fit for RESTful interfaces (colindixon, 17:19:13) * comparisons to the MD-SAL model (colindixon, 17:20:22) * comparisons to the MD-SAL model (colindixon, 17:20:34) * this is very similar to the MD-SAL, but there are some key differences (colindixon, 17:20:53) * RESTCONF doesn't allow class-based queries, for instance (colindixon, 17:21:10) * this doesn't necessarily work with YANG, this is a bit more general, e.g., cross-references are not allowed in YANG (colindixon, 17:21:43) * some discussion seems to point to the fact that this cross-referencing should be possible in YANG as well, but might take a bit of work (colindixon, 17:24:44) * sharding (colindixon, 17:27:06) * the total tree is shared into subtrees with the root of subtrees being called "context roots" (colindixon, 17:27:36) * the shards are then mapped onto nodes using consistent hashing (as in DHTs) (colindixon, 17:28:05) * sharding is static (defined in the model by explicitly naming the context root) (colindixon, 17:29:35) * the sharding is currently always based on the hierarchy, not based on properties of nodes or anything else (colindixon, 17:33:44) * this means that you want to make sure that your hierarchy is going to match your query patterns so that queries tend to stay in the same shard (colindixon, 17:35:20) * mike dvorkin notes that this is a trade-off you *have* to make if you're going to shard. colindixon agrees. (colindixon, 17:35:50) * shard replication (colindixon, 17:37:40) * shards are replicated 3 times: one is the "leader" and two are "followers" (colindixon, 17:38:02) * Madhu asks how the different sections of this presentation are related, and how this is related to the MD-SAL (colindixon, 17:41:01) * jan medved and mike dvorkin say basically, this is looking at how to model hierarchical data, and store it efficiently in a clustered sense, it's very similar to how the MD-SAL stores data (colindixon, 17:41:58) * a longer discussion between jan, Madhu, and GiovanniMeo about how to build these things and how this works with Akka, vs. the MD-SAL in-memory data store vs. Infiinspan vs. APIC data store (colindixon, 17:44:05) * wider discussion of data stores (colindixon, 17:46:40) * GiovanniMeo asks why not infinispan (colindixon, 17:46:51) * colindixon says it's trees and consistency trade-offs seemingly being strange in Infinispan (colindixon, 17:47:13) * jan medved says (and colindixon agrees) that we really need this for helium (at least with one good implementation) (colindixon, 17:48:28) * jan would like to have many implementations which we could then test and evaluate (colindixon, 17:48:52) * colindixon says that would be great, but at some point practicalities will likely insist that we don't have 4 different implementations (colindixon, 17:49:24) * back to sharding replication (colindixon, 17:49:31) * leaders and followers are statically placed, if a leader fails, a follower steps up (colindixon, 17:54:09) * the assumption, however, is that the leader being down is temporary and that when it comes up things will be moved back to it as soon as it catches up (colindixon, 17:55:35) * no new followers or leaders are added in response to the failure as the assumption is that it will recover soon (colindixon, 17:57:17) * service/app model (colindixon, 17:58:05) * the general effort is to co-located code (for services) with their data based on shards (colindixon, 18:02:16) * scheduling next meeting (colindixon, 18:02:27) * we will continue this and the Akka discussion in meetings later this week with details to be sent to the mailing list (colindixon, 18:03:34) Meeting ended at 18:03:38 UTC. Action Items ------------ Action Items, by person ----------------------- * **UNASSIGNED** * (none) People Present (lines said) --------------------------- * colindixon (48) * odl_meetbot (2) Generated by `MeetBot`_ 0.1.4 .. _`MeetBot`: http://wiki.debian.org/MeetBot