<head></head><body style="font-family: Calibri, 'Helvetica Neue', HelveticaNeue, Helvetica, Arial, sans-serif; white-space: pre-wrap;" contenteditable="true">This gives a little more detail about each of the CRDT types: <a href="https://github.com/basho/riak/issues/354">https://github.com/basho/riak/issues/354</a><div><br></div><div>Your assumptions are correct.  Within Riak, an actor is a vnode, and counters behave as G-Counters.</div><div><br></div><div>Keep in mind that Riak counters store both an increment and decrement for each actor, which allows decrements and negative counters as well while preserving the accuracy of G-Counters.</div><div><br></div><div>Hope this helps,</div><div>Jason<br>________________________________________________________________________<br><div style=" font-family: 'Calibri', 'Helvetica Neue', 'HelveticaNeue', Helvetica, Arial, sans-serif; font-size: 1em; text-align: left; color: black; padding: 3pt 0in 0in; border-top-color: rgb(181, 196, 223); font-style: normal; font-variant: normal; font-weight: normal;"><span style="font-weight:bold">From: </span>David Byron <<a href="mailto:dbyron@dbyron.com" target="_top">dbyron@dbyron.com</a>><br><span style="font-weight:bold">Date: </span>Wed Oct 21 2015 15:03:04 GMT+1100 (AUS Eastern Summer Time)<br><span style="font-weight:bold">To: </span>riak-users@lists.basho.com <<a href="mailto:riak-users@lists.basho.com" target="_top">riak-users@lists.basho.com</a>><br><span style="font-weight:bold">Subject: </span>counter crdt in riak<br><br></div><div><div>Apologies if this is basic question, or one that's already been </div><div>answered.  I've done a fair amount of digging (e.g. </div><div><a href="http://thread.gmane.org/gmane.comp.db.riak.user/12808/focus=12816" target="_blank">http://thread.gmane.org/gmane.comp.db.riak.user/12808/focus=12816</a>), but 
 I'm still confused about the documentation regarding conflict resolution 
 for riak's crdt counter.  Specifically this: </div><div><a href="https://github.com/basho/basho_docs/blame/riak/2.1.1/source/languages/en/riak/theory/concepts/crdts.md#L238" target="_blank">https://github.com/basho/basho_docs/blame/riak/2.1.1/source/languages/en/riak/theory/concepts/crdts.md#L238</a> 
 (using the blame view to get a line number reference in markdown), which 
 says:</div><br><div>"Counters | Each actor keeps an independent count for increments and </div><div>decrements; upon merge, the pairwise maximum of the counts for each </div><div>actor will win (e.g. if one count for an actor holds 172 and the other 
 holds 173, 173 will win upon merge)"</div><br><div>This makes it sound to me like an increment from one of the actors gets 
 dropped.  Fingers crossed this isn't actually what happens.</div><br><div>I think this is saying the same thing that the cdrt paper (section 3.1.2 
 State-based increment-only Counter (G-Counter) of </div><div><a href="https://hal.inria.fr/file/index/docid/555588/filename/techreport.pdf" target="_blank">https://hal.inria.fr/file/index/docid/555588/filename/techreport.pdf</a>) 
 says -- that increments that happen during a partition eventually </div><div>resolve correctly.  I could use a more step-by-step illustration though 
 -- pairwise maximum of the counts for each actor is a little dense.</div><br><div>Apologies for ugly formatting, but an example like this would make more 
 sense to me.</div><br><div>- actor a increments counter</div><div>   a {a: 1}                   b {}</div><br><div>- actor b increments counter</div><div>   a {a: 1}                   b {b: 1}</div><br><div>- a merges b's info</div><div>   a {a: 1, b: 1}             b {b: 1}</div><br><div>- b merges a's info</div><div>   a:{a: 1, b: 1}             b {a: 1, b: 1}</div><br><div>so eventually this all resolves such that a and b both increment the </div><div>counter by 2, right?  Is this how riak's crdt counter works?  If so I'll 
 breathe a sigh of relief and make a pull request against the docs if you 
 like.</div><br><div>Thanks much for your help.</div><br><div>-DB</div><br><div>_______________________________________________</div><div>riak-users mailing list</div><div><a href="mailto:riak-users@lists.basho.com" target="_top">riak-users@lists.basho.com</a></div><div><a href="http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com" target="_blank">http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com</a></div><br></div></div></body>