On Thu, Oct 3, 2013 at 10:32 AM, Daniel Iwan <iwan.dan...@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 <ro...@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.dan...@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@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