Forgot to include the list in the initial response.

> On Thu, Aug 20, 2015 at 12:31 AM, Russell Brown <russell.br...@me.com>
>  wrote:
>
>> It’s a tricky one Timur. CRDTs are based on Join Semi-Lattices, and they
>> have the concept of a bottom value. That is what you are seeing. Implicitly
>> all keys exist at the bottom value until you operate on them.
>
>
Thanks, Russell. I was under impression that key mechanism does not differ
between 'regular' KV store and CRDT, that is checking key existence does
not involve CRDT concepts. Is that not true?

>
>
>> Since you cannot do a compare-and-set operation with a counter anyway
>> (that is you can’t “put counter with value 0” at that key), why do you need
>> to distinguish between 0 as bottom and 0 as value?
>
>
I'm building a Scala wrapper for our services to use and trying to provide
a uniform simple interface for CRDT counters and sets (maps are a whole
different story). One of the fundamental operations is to be able to tell
whether a key exists in the store. Although it's not possible to 'set'
counter to 0, update '+1' followed by update '-1' at 'key' will result in
'key' with value 0, which is semantically different from answer "no 'key'
found".

Could you also comment whether null context for a set is a valid way to
tell that set did not exist in store? It feels hacky.

On 20 Aug 2015, at 01:59, Timur Fayruzov <timur.fairu...@gmail.com> wrote:
>
> > Hello,
> >
> > It seems that Riak Datatype API does not allow to distinguish between
> non-existing keys and default values. For example, if I query for
> non-existing key as follows:
> >
> > val fetchOp = new FetchCounter.Builder(key).build()
> > val c = client.execute(fetchOp).getDatatype
> >
> > I'll get a counter that holds 0. Now, if I put counter with value 0 at
> this key and run the query, I get the same result. Is there any way to
> distinguish between these two different states?
> >
> > Note: when working with sets there is a context that I can check. If I
> fetch a set and the context is null, it means that the set does not exist
> under this key. This trick does not work for counters though, as they do
> not maintain context. Is it a valid trick to use though?
> >
> > I posted this to StackOverflow a while ago, but no luck:
> http://stackoverflow.com/questions/31845164/riak-dataypes-default-values-vs-non-existing-keys
> >
> > Thanks,
> >
> > Timur
> >
> > _______________________________________________
> > riak-users mailing list
> > riak-users@lists.basho.com
> > http://lists.basho.com/mailman/listinfo/riak-users_lists.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