Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

https://www.cockroachlabs.com/blog/living-without-atomic-clo...

> perfectly synchronized clocks are a holy grail of sorts for distributed systems research. They provide, in essence, a means to absolutely order events, regardless of which node an event originated at

two events that occur on two physically discrete nodes at exactly the same time have no well-defined order, even if their clocks are synchronized

> before a node is allowed to report that a transaction has committed, it must wait 7ms. Because all clocks in the system are within 7ms of each other, waiting 7ms means that no subsequent transaction may commit at an earlier timestamp, even if the earlier transaction was committed on a node with a clock which was fast by the maximum 7ms. Pretty clever.

so sending information between two antipodes on earth takes 66ms in one direction, 132ms round-trip, minimum. the speed of light dictates this lower limit

if two transactions are made on those two nodes at exactly the same time, there is no objective order between the two. you can choose an order, but only with knowledge of both transactions, and that information physically cannot traverse space-time in 7ms

so it's really not clear to me how this works. as an optimization, sure -- maybe there is some optimistic concurrency control that will fail transactions that conflict in the way i've described?



“Exactly the same time” isn’t even physically well-defined, due to relativity.


Well, we can make some pretty accurate guesses about the frame of reference if we know the nodes' geographic positions and ban airplanes.


yes but those guesses have "smudge windows" which are functions of the physical distance between relevant nodes

if you want to make assertions about order between events from a set of nodes, and you want to use per-node physical clocks to determine that order, then even if those clocks are perfectly synchronized, order can only be decided when the light-cones of all nodes intersect, which is the maximum distance between any two nodes times the speed of light

7ms works for up to 2098km, that's in the best case




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

Search: