> On Jan 23, 2015, at 5:32 PM, Hristo Asenov <hristo.s.ase...@gmail.com> wrote:
> 
> Hello everyone,
> 
> I have noticed that in latest documentation on Riak data types 
> (http://docs.basho.com/riak/latest/theory/concepts/crdts/#Counters 
> <http://docs.basho.com/riak/latest/theory/concepts/crdts/#Counters>), for 
> Counters it is not recommended to use them for ordered IDs (UUIDs). Can I 
> implement g-counters (as described in the CRDT paper) using Riak’s Set 
> datatype? I am wondering whether that will work out well for my use case.
> 
> What I would like to do is to have synchronization of sequence numbers 
> between multiple src processes that send their inputs to a single centralized 
> process. I want all the sequence numbers to be unique so that the centralized 
> process can create an ordering of the input messages based on the sequence 
> numbers. Thus I would have an integer entry for each src process in the set, 
> and the sum of all the integers would be my unique id. After the src process 
> writes a value to the DHT for its corresponding entry, would it then have to 
> read the value from the DHT in order to make sure it got committed without 
> conflicts?

Hi Hristo,

I’m not sure if I completely followed your use case, but I believe that you 
probably want strongly consistent operations if you want to generate a total 
order over a series of operations.

Using the sum of the integers of a G-Counter (or a G-Counter built on Riak’s 
set data structure) does not guarantee a globally unique number; given these 
counters are designed (and therefore allowed) to diverge, imagine the following 
scenario, possible due to delays in replication:

Replica A, G-Counter:
[{pid1, 2}, {pid2, 1}], Sum: 3

Replica B, G-Counter:
[{pid1, 1}, {pid2, 2}], Sum: 3

These both share the same sum, but should represent unique operations, right?  
Did I understand correctly?

Thanks,
- Chris

Christopher Meiklejohn
Senior Software Engineer
Basho Technologies, Inc.
cmeiklej...@basho.com
_______________________________________________
riak-users mailing list
riak-users@lists.basho.com
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

Reply via email to