Ask is moving to Stack Overflow and! Please use the "opendaylight" tag on either of these sites. This site is now in Read-Only mode


ODL clustering transaction blocking or non-blocking?

asked 2015-02-16 02:13:42 -0700

ztz gravatar image

updated 2015-02-16 02:43:24 -0700

Hi everyone! I'm studying the ODL controller and get a question. In ODL clustering implementation, data are divided into shards which are replicate onto multiple controllers. So here is my question: when an application makes an update on a module's primary shard, will the application be blocked (kept waiting ) until the change on the shard has been propagated and updated onto all the shard replicas in the cluster (using the RAFT algorithm), or will the application return from the transaction and proceed immediately after the update is committed on the primary shard ? . Looking forward replies and gratitude in advance!

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted

answered 2015-09-09 12:25:38 -0700

gwu gravatar image

The transaction will block until the cluster as a whole has committed the change using the three-phase commit (3PC) protocol. The reason that as a whole is emphasized is that the commit and succeed and proceed with only a majority of the replicas in agreement, not necessary all the replicas.

Note that the data store changes are propagated via 3PC, not via RAFT. RAFT is only used to elect the shard leader. Once elected, the shard leader coordinates the data changes using the 3PC protocol.

edit flag offensive delete publish link more
Login/Signup to Answer

Question Tools

1 follower


Asked: 2015-02-16 02:13:42 -0700

Seen: 287 times

Last updated: Sep 09 '15