Ask Your Question

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

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

[hide preview]

Question Tools

1 follower


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

Seen: 224 times

Last updated: Sep 09 '15