Just FYI,
For one of the projects, i got around the NTP Drift problem by always
reading more than i need,
For example i want to read all the messages before x seconds then i would
query cassandra for (x seconds + 500ms) then filter the duplicates in the
client.
Yes it does more network and yes
So what I want is, Cassandra provide some information for client, to
indicate A is stored before B, e.g. global unique timestamp, or row order.
The row order is determined by 1) the comparator you use for the column
family and 2) the column names you, the client, choose for A and B. So what
If you have 40ms NTP drift something is VERY VERY wrong. You should have a
local NTP server on the same subnet, do not try to use one on the moon.
On Thu, Jan 17, 2013 at 4:42 AM, Sylvain Lebresne sylv...@datastax.comwrote:
So what I want is, Cassandra provide some information for client, to
One solution is to only read up to (now - 1 second). If this is a public
API where you want to guarantee full consistency (ie, if you have added a
message to the queue, it will definitely appear to be there) you can
instead delay requests for 1 second before reading up to the moment that
the
Delay read is acceptable, but problem still there:
A request come to node One at local time PM 10:00:01.000
B request come to node Two at local time PM 10:00:00.980
The correct order is A -- B
I am not sure how node C will handle the data, although A came before B,
but B's timestamp is earlier
I'm not sure I fully understand your problem. You seem to be talking of
ordering the requests, in the order they are generated. But in that case,
you will rely on the ordering of columns within whatever row you store
request A and B in, and that order depends on the column names, which in
turns is
Yes, Sylvain, you are correct.
When I say A comes before B, it means client will secure the order,
actually, B will be sent only after get response of A request.
And Yes, A and B are not update same record, so it is not typical Cassandra
consistency problem.
And Yes, the column name is provide