9 ms·
Wouldn't atomicity come from doing things on per-commit basis? Also, you're not taking into account the things that Git does give you that typical databases do
by bergie 16y ago
Wouldn't atomicity come from doing things on per-commit basis?
Also, you're not taking into account the things that Git does give you that typical databases don't, like branching and merges
- technoweenie 16y agoGit doesn't give you merges, it gives you merge conflicts. I find it similar to how Riak uses vector clocks (http://blog.basho.com/2010/01/29/why-vector-clocks-are-easy/ http://blog.basho.com/2010/01/29/why-vector-clocks-are-easy/). It knows enough to tell you there's a conflict, but requires you (or the app) to tell it which version is the right one.
- pauldowman 16y agoRight, it's either a trivial merge when you commit the transaction, or it's a conflict (i.e. two transactions updated the same attribute of the same entity). There's no automatically fixing a conflict so the second transaction fails. Since there's full isolation that's pretty standard optimistic locking: http://en.wikipedia.org/wiki/Optimistic_locking http://en.wikipedia.org/wiki/Optimistic_locking In most cases the transaction would succeed if it was automatically retried.