Updating particular version of CRDT

Russell Brown russell.brown at icloud.com
Wed Feb 22 10:36:41 EST 2017

Hi Andrey,
The register inside a map is a LWW-register.

Long story: When we added CRDTs to Riak we did it for those users who wanted to avoid writing custom sibling resolution code, following on from that decision we decided not to add the MVRegister type. Riak’s default object is an MVRegister after all. When I say “we” I mean the CRDT team as was then, not Basho, as I am no longer at Basho.



On 21 Feb 2017, at 08:35, Andrey Ershov <andrershov at gmail.com> wrote:

> Hi all,
> I'm new to Riak and trying to figure out how to work with CRDTs properly. First of all, I decided to try MVRegister support. I'm using this tutorial http://docs.basho.com/riak/kv/2.2.0/developing/data-types/maps/. Language of my choice is Java.
> Find source code here: https://gist.github.com/andrershov/d0ebb8fd111eca013b302f8abaf14445
> I've created ahmedMap with two registers (name="Ahmed", phone="123")
> Now I would like to simulate that there are two concurrent updates to phone register
> phone="456" and phone="789"
> For that, I'm fetching initial record and get context from it. After that, I'm performing two updates passing the same context to each one. 
> I'm expecting that after fetching the record and reading the phone register, I should find two concurrent values in it: phone = ("456", "789"). But I get only the latest value phone = "789".
> Also Register API seems confusing, because there is no method inside it that may return multiple values. 
> Could you please help me?
> -- 
> Thanks, 
> Andrey
> _______________________________________________
> riak-users mailing list
> riak-users at lists.basho.com
> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

More information about the riak-users mailing list