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