Speaking of deleting keys, I have a question.  It may be naive, as I'm a 
developer, but not very specialized in data storage issues, especially 
key/value stores.

I don't think I've brought this up on this list, but if I have, I apologize, 
and feel free to ignore this message.  (I couldn't find it in the message 
store, but know I've spoken with some folks about it.)

If specifying a null value for a given key removes that key from riak, then 
there is no way to differentiate between an explicit specification of null, and 
the absence of a value specification.  The two can represent two different 
cases.

For example, the code might assume a default value, unless overridden, and null 
might be one of the values that could be used to override it.  An example might 
be that the value represents the name of a class to instantiate to perform a 
given operation, and a null value would signify that no operation was wanted.

Would this be some kind of violation of some important data storage principle?  
Or do others not see this as a useful distinction?

Thanks,
Keith




On Jun 23, 2011, at 10:57 AM, Andrew Thompson wrote:

> On Thu, Jun 23, 2011 at 09:59:38AM +0200, Runar Jordahl wrote:
>> As this discussion shows, deleting objects in an eventual consistency
>> database is complicated. The concept of multiple APIs to do a delete,
>> and the possibility of having objects reappear, can scare new
>> customers away from Riak.
>> 
>> I understand delete is complicated, but Basho should make it as simple
>> as possible to understand. They should provide a single, simple,
>> well-documented delete API, and document how delete happens.
>> 
>> I find it unnatural to use the PUT operation to do a delete. I
>> understand the API compatibility issues, but for new users this can be
>> quite confusing: ?So you are telling me there are two APIs I can use
>> to delete an object? Why!?? In my mind, changing the DELETE API would
>> be far better. After all, Riak is still not legacy software.
>> 
>> A wiki page describing how delete is done in a Riak system should be
>> created. The wiki page should describe how delete happens internally:
>> Which API to use (PUT or DELETE), tombstone concepts, etc. It should
>> describe current bugs, and future plans. In addition the page should
>> describe how the client app should handle deletes: Can you configure
>> tombstone lifetime? Pros/cons of using own tombstones, when can
>> deleted objects reappear, and how to detect and handle that.
>> 
> 
> I agree that we should do a writeup on deletes, past present and future.
> I'll try to put something together in the next few weeks.
> 
> 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