> As I understand it, this will not quarantee that they are millisecond 
> accurate which is what you need for Cassandra to use the correct commit. 
> We've seen problems in production and had to rearchitect parts of the system 
> due to this even though all servers are NTP synched.

It does not matter if all clocks are infinitely well in synch. Without
actual co-ordination you cannot rely on clocks to resolve conflicting
writes correctly if there is an ordering requirement. Even with
perfect clocks, all sorts of other effects can affect the "timeline"
as observed by an outside observer. For example, the "first" client
may get context switched away by the OS just before grabbing the
current time, allowing the "second" client to obtain an earlier
timestamp.

("First" and "second" refer to some arbitrary ordering with respect to
something else; whatever it is that you are looking to achieve
ordering with respect to.)

Clocks should be synchronized, yes. But either your data model is such
that conflicting writes are okay, or you need external co-ordination.
There's not hoping for the best by keeping clocks better in synch.

--
/ Peter Schuller (@scode on twitter)

Reply via email to