Riak Java client not returning deleted sibling

Daniel Iwan iwan.daniel at gmail.com
Fri Oct 4 04:58:45 EDT 2013


Thanks Brian for putting fix together so quickly.

I think I found something else though.
In JSONConverter I don't see vclock being set in toDomain() when converting
deleted sibling?
That vclock should be used for following delete if I understood it
correctly?

Also where can I download latest build? I tried
http://riak-java-client.s3.amazonaws.com/riak-client-1.1.3-jar-with-dependencies.jar
but access is denied

Cheers
Daniel


On 3 October 2013 19:36, Brian Roach <roach at basho.com> wrote:

> On Thu, Oct 3, 2013 at 10:32 AM, Daniel Iwan <iwan.daniel at gmail.com>
> wrote:
> > Thanks Brian for quick response.
> >
> > As a side question, what is the best way to delete such an object i.e.
> once
> > I know one of the siblings has 'deleted' flag true because I fetched it?
> > Should I just use DomainBucket.delete(key) without providing any vclock?
> > Would it wipe it from Riak or create yet another sibling?
>
> You should always use vclocks when possible, which in the case it is.
> There are additional issues around doing the delete without a vclock
> and if there's concurrently a store operation occurring.
>
> Ideally you should look at why you're getting that tombstone sibling.
> If it's simply a case of high write concurrency and you're using
> vclocks with your writes, then there's not much you can do except
> resolve it later (without changing how you're using the DB)... but
> usually these things are caused by writes without a vclock.
>
> Thanks,
> - Roach
>
>
>
>
> >
> > Regards
> > Daniel
> >
> >
> > On 3 October 2013 17:20, Brian Roach <roach at basho.com> wrote:
> >>
> >> Daniel -
> >>
> >> Yeah, that is the case. When the ability to pass fetch/store/delete
> >> meta was added to DomainBucket way back when it appears that was
> >> missed.
> >>
> >> I'll add it and forward-port to 1.4.x as well and cut new jars. Should
> >> be avail by tomorrow morning at the latest.
> >>
> >> Thanks!
> >> - Roach
> >>
> >> On Thu, Oct 3, 2013 at 9:38 AM, Daniel Iwan <iwan.daniel at gmail.com>
> wrote:
> >> > Hi I'm using Riak 1.3.1 and Java client 1.1.2
> >> >
> >> > Using http and curl I see 4 siblings for an object one of which has
> >> > X-Riak-Deleted: true
> >> > but when I'm using Java client with DomainBucket my Converter's method
> >> > toDomain is called only 3 times.
> >> >
> >> > I have set the property
> >> >
> >> > builder.returnDeletedVClock(true);
> >> >
> >> > on my DomainBuilder which I keep reusing for all queries and store
> >> > operations (I guess that's good practice btw.?)
> >> >
> >> >
> >> > I run that under debugger and it seems raw client sees 4 siblings but
> >> > passes
> >> > over only 3 due to bug (I think) in DomainBucket.fetch() method which
> >> > should
> >> > have
> >> >
> >> >         if (fetchMeta.hasReturnDeletedVClock()) {
> >> >
> >> >
> so.returnDeletedVClock(fetchMeta.getReturnDeletedVClock());
> >> >
> >> >         }
> >> >
> >> > at the end, as store() method has.
> >> >
> >> > Could you confirm or I'm I completely wrong?
> >> >
> >> >
> >> > Regards
> >> >
> >> > Daniel
> >> >
> >> >
> >> > _______________________________________________
> >> > riak-users mailing list
> >> > riak-users at lists.basho.com
> >> > http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
> >> >
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.basho.com/pipermail/riak-users_lists.basho.com/attachments/20131004/ebc929b7/attachment.html>


More information about the riak-users mailing list