Yes, my proposal also "punts" on that and uses the existing multiple-versions API ( http 300 -- commonly used to let a user decide which language to display a multi-language website in:
http://www.checkupdown.com/status/E300.html ) inside HTTP to deal with that. The server would then provide the thin client with URIs to the different conflicting conflicting version… -- if they just want to do "last write wins" they would only have to fetch the one with the latest timestamp, or they could fetch all, etc…
[ Slightly off topic, thinking out loud: ]
Tangential idea/random thought: if you assign a coordinator per partition using ZK and then serialize all writes to the quorum for that partition through that coordinator instance (as a configurable option, *NOT* the default setting, of course!), then (due to TCP ordering guarantees) would that means concurrent vector clocks are not possible? I think this is effectively an grossly over-simplified multi-Paxos/ZAB -- ZK leader election to select a coordinator for a partition is phase 1, writing to a quorum is phase 2, and epoch in this case is "until the ephemeral node gets deleted" -- so unless the coordinator dies, the cost of a write is just a single round trip (same as any quorum write).
This also means that each node is receiving writes in the same order.
Just a thought,
- af
--
Alex Feinberg
> > > To unsubscribe from this group, send email to
project-voldem...@googlegroups.com (javascript:) (mailto:
project-voldem...@googlegroups.com (javascript:)).
> --
> You received this message because you are subscribed to the Google Groups "project-voldemort" group.
> To unsubscribe from this group, send email to
project-voldem...@googlegroups.com (mailto:
project-voldem...@googlegroups.com).