It seems to me that occasional tombstone siblings may occur in the case
where two clients fetch the same vclock and concurrently do a delete and a
put.

If this is the case, there appears to be no way to differentiate a sibling
which intentionally has no content from a tombstone.  Is that correct?
On Oct 6, 2011 3:22 AM, "Roland Karlsson" <
roland.karls...@erlang-solutions.com> wrote:
> Hi,
>
> Look at the answers to my question "Delete takes 5 seconds in RIAK 1.0 ??"
>
> And I actually found that the tombstone seemed to be able to live forever.
>
> The tombstone is nearly treated as an existing object.
>
>
> /Roland
>
>
>
> ----- Original Message -----
> From: "Eric Moritz" <e...@themoritzfamily.com>
> To: "Jon Meredith" <jmered...@basho.com>
> Cc: riak-users@lists.basho.com
> Sent: Thursday, October 6, 2011 12:28:19 AM
> Subject: Re: empty sibling after a DELETE then PUT
>
> What I am trying to model is a concurrent DELETE and a concurrent PUT
> where both operations use the same source VClock. When I do a GET
> after those concurrent operations is an object with two siblings; One
> blank and one with the data.
>
> Is the reconciliation of those two values, the responsibility of the
> application and if so, do we need to treat empty bodies as tombstones?
>
> Thanks,
> Eric.
>
> On Wed, Oct 5, 2011 at 6:21 PM, Jon Meredith <jmered...@basho.com> wrote:
>> Hi Eric,
>> What you are seeing is probably a result of some changes we've made to
>> deletes.  After you issue the DELETE, Riak creates a tombstone object
first
>> and then removes it.  1.0 now adds a delay of 3s by default.  If you do a
>> get during that time you should see an X-Riak-Vclock line for the 404
>> message after the delete.
>> If you use that vclock with the put then the tombstone will be removed.
 The
>> feature wasn't well publicized so has not made it into the clients yet.
>>  There should be more info to follow on deletes soon.  If you really want
>> the old behavior, add {delete_mode, immediate} to the riak_kv section of
>> your app.config
>> Jon Meredith
>> Basho Technologies.
>> On Wed, Oct 5, 2011 at 1:13 PM, Eric Moritz <e...@themoritzfamily.com>
>> wrote:
>>>
>>> If I enabled allow_multi on a bucket and do I DELETE followed by a PUT
>>> I am getting a 300 response with one sibling having the body of the
>>> PUT and a second sibling with an empty body.  If that the expected
>>> behavior?
>>>
>>> I wrote a script that would start with a reconciled value.  Get the
>>> VClock of the current value.  Then do every permutation of  a PUT with
>>> (Pv) and without (P) the VClock and a DELETE with (Dv) and without (D)
>>> the vClock and I see the following result:
>>>
>>> Pv      Dv      404
>>> Dv      Pv      300
>>> Pv      D        404
>>> D       Pv       300
>>>
>>> Is it expected that a delete creates a blank sibling like that and
>>> therefore we should treat empty body's as deleted?
>>>
>>> Thanks,
>>> Eric Moritz.
>>>
>>> _______________________________________________
>>> 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
>
> _______________________________________________
> 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