Hacker News new | past | comments | ask | show | jobs | submit login

FoundationDB and Spanner both offer external consistency. Spanner does this through synchronized clocks. FoundationDB has a similar clock called TimeKeeper, which is not a clock per se but a counter which advances approximately 1M times per second. Transactions are ordered based on this timestamp.



With a Lamport Clock (counter, logical clock) you could end up with the following due to dependence on conflict resolution aka optimistic MVCC rather than Wall Time (copies do from another HN):

β€œit is possible for a transaction C to be aborted because it conflicts with another transaction B, but transaction B is also aborted because it conflicts with A (on another resolver), so C "could have" been committed. When Alec Grieser was an intern at FoundationDB he did some simulations showing that in horrible worst cases this inaccuracy could significantly hurt performance. But in practice I don't think there have been a lot of complaints about it.”


Yes, I think is fairly well known in the optimistic family of concurrency control algorithms you can get into situations where aborts are not necessary.

https://db.cs.cmu.edu/papers/2016/yu-sigmod2016.pdf

Section 3.4 of this paper covers another example of this.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: