Sorry,

didn't see your mail in time. This is essentially what i was talking about in my other mail.
So all is  good then :-).

Cheers,
Nico

Am 16.06.2011 17:53, schrieb Andrew Thompson:
On Thu, Jun 16, 2011 at 08:40:45AM -0700, Greg Nelson wrote:
Well, it is kind of Riak specific. An implementation that treated DELETEs like 
PUTs (tombstones w/ vector clocks for ordering), then this would not be an 
issue, right? When no primary nodes are down, the tombstones can be physically 
deleted on the backend. A logical delete could never reappear if that were how 
it worked.

Is this essentially what is on the current master branch (not yet released)?

Yes, this is essentially how its supposed to work on master. A tombstone
is put and then an async get is fired off and if the async get finds all
the primary nodes in the preflist are up, it does the delete. If not,
the next time the key is fetched, it does the same check again and will
do the delete then if the downed node is up.

Some issues still remain with this however, specifically how to override
tombstones (since notfounds do not include a vector clock). I've also
added a 'deletedvclock' GET option to change the return behaviour for
when a tombstone is found to instead return {deleted, VClock} so you can
safely override a tombstone, instead of triggering a merge (or creating
siblings).

This isn't perfect and we're discussing better solutions, but it does
make things significantly better.

Andrew

_______________________________________________
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