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 client provided and doesn't depend at all of the time
synchronization of the cluster nodes. And since you are able to say that
request A comes before B, I suppose this means said requests are generated
from the same source. In which case you just need to make sure that the
column names storing each request respect the correct ordering.

The column timestamps Cassandra uses are here to which update *to the same
column* is the more recent one. So it only comes into play if you requests
A and B update the same column and you're interested in knowing which one
of the update will "win" when you read. But even if that's your case (which
doesn't sound like it at all from your description), the column timestamp
is only generated server side if you use CQL. And even in that latter case,
it's a convenience and you can force a timestamp client side if you really
wish. In other words, Cassandra dependency on time synchronization is not a
strong one even in that case. But again, that doesn't seem at all to be the
problem you are trying to solve.

--
Sylvain


On Thu, Jan 17, 2013 at 2:56 AM, Jason Tang <ares.t...@gmail.com> wrote:

> Hi
>
> I am using Cassandra in a message bus solution, the major responsibility
> of cassandra is recording the incoming requests for later consumming.
>
> One strategy is First in First out (FIFO), so I need to get the stored
> request in reversed order.
>
> I use NTP to synchronize the system time for the nodes in the cluster. (4
> nodes).
>
> But the local time of each node are still have some inaccuracy, around 40
> ms.
>
> The consistency level is write all and read one, and replicate factor is 3.
>
> But here is the problem:
> 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
> But the timestamp is B --> A
>
> So is there any way for Cassandra to keep the correct order for read
> operation? (e.g. logical timestamp ?)
>
> Or Cassandra strong depence on time synchronization solution?
>
> BRs
> //Tang
>
>
>
>
>

Reply via email to