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. Kind regards Runar Jordahl blog.epigent.com _______________________________________________ riak-users mailing list [email protected] http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
