Live data from Hacker News

Introducing Ark: A Consensus Algorithm For TokuMX and MongoDB

tokutek.com

1–10 of 19 posts

Re: Introducing Ark: A Consensus Algorithm For TokuMX and MongoDB

#5
post #2

Interesting -- sounds like once implemented, you could leverage the consensus algorithm to implement atomic multi-document/multi-table transactions too?

Multi-document and multi-collection transactions are already a part of TokuMX[1]. Since commit of the oplog insert is atomic together with the actual operation's changes to documents, atomicity is also guaranteed in replication. Atomicity and MVCC in a sharded system is something we're working on, but it's unrelated to Raft/Ark.

Ark is just about making replication as a whole trustworthy. The jepsen post on MongoDB[2] shows MongoDB losing data even with majority write concern, which if used properly, is supposed to make MongoDB a CP system. But because of the design flaws in the election algorithm, you can't rely on it perfectly. The changes we made in Ark fix the election algorithm to make majority write concern actually able to guarantee data safety, so you can treat it as a fully CP system.

[1]: http://docs.tokutek.com/tokumx/tokumx-transactions.html

[2]: http://aphyr.com/posts/284-call-me-maybe-mongodb

Re: Introducing Ark: A Consensus Algorithm For TokuMX and MongoDB

#6
post #3

Is there a TLA+ or Coq model available for this?

No, none of us know how to use those. :(

If you're interested in building one and you have experience with them, get in touch and we can work through it together. I think the biggest challenge would be modeling the semantics of write concern, but I'm not that familiar with proof assistants, maybe that isn't too hard.

Re: Introducing Ark: A Consensus Algorithm For TokuMX and MongoDB

#7
post #6
post #3

Is there a TLA+ or Coq model available for this?

No, none of us know how to use those. :( If you're interested in building one and you have experience with them, get in touch and we can work through it together. I think the biggest challenge would be modeling the semantics of write concern, but I'm not that familiar with proof assistants, maybe that isn't too hard.

If you have not used a model checker you don't have a proof. Please don't say that you have one. You are just hoping for the best.

See this to get yourself started: http://research.microsoft.com/en-us/um/people/lamport/tla/by...

Re: Introducing Ark: A Consensus Algorithm For TokuMX and MongoDB

#8
post #7
post #6

Earlier quoted context omitted.

No, none of us know how to use those. :( If you're interested in building one and you have experience with them, get in touch and we can work through it together. I think the biggest challenge would be modeling the semantics of write concern, but I'm not that familiar with proof assistants, maybe that isn't too hard.

If you have not used a model checker you don't have a proof. Please don't say that you have one. You are just hoping for the best. See this to get yourself started: http://research.microsoft.com/en-us/um/people/lamport/tla/by...

[deleted]

Re: Introducing Ark: A Consensus Algorithm For TokuMX and MongoDB

#9
post #7
post #6

Earlier quoted context omitted.

No, none of us know how to use those. :( If you're interested in building one and you have experience with them, get in touch and we can work through it together. I think the biggest challenge would be modeling the semantics of write concern, but I'm not that familiar with proof assistants, maybe that isn't too hard.

If you have not used a model checker you don't have a proof. Please don't say that you have one. You are just hoping for the best. See this to get yourself started: http://research.microsoft.com/en-us/um/people/lamport/tla/by...

If you have used a model checker, you probably don't have a proof either. You have a model that might not be accurate, and testing all its inputs may be combinatorially prohibitive.

Re: Introducing Ark: A Consensus Algorithm For TokuMX and MongoDB

#10
post #9
post #7

Earlier quoted context omitted.

If you have not used a model checker you don't have a proof. Please don't say that you have one. You are just hoping for the best. See this to get yourself started: http://research.microsoft.com/en-us/um/people/lamport/tla/by...

If you have used a model checker, you probably don't have a proof either. You have a model that might not be accurate, and testing all its inputs may be combinatorially prohibitive.

thats not the real issue. The issue with model checkers is verifying that production code actually exactly implements the model.
Post reply on HN