A method for managing data on a content-addressable storage system including a storage medium comprising: receiving a write request to write a searchable block, the write request including a user-defined search key and data content; deriving an internal retention key based on the user-defined search key by applying a hash function; storing on the storage medium the searchable block such that the searchable block as a retention root roots a directed acyclic graph of regular blocks, wherein said searchable block includes said data content and is locatable with said internal retention key and each address of said regular blocks is a content address derived from content of a respective regular block; receiving a read request to retrieve said data content, said read request including said user-defined search key; applying said hash function on said user-defined search key to derive said internal retention key in response to receiving said read request; and retrieving said data content using said internal retention key derived in response to receiving said read request, characterized in that the method further comprises: receiving a deletion request to delete said data content, the deletion request including said user-defined search key; deriving an internal deletion key based on said user-defined search key by applying said hash function; and writing a searchable block with said internal deletion key as a deletion root on the storage medium to mark said retention root for deletion, wherein the internal retention key is derived based on the user-defined search key to which a first label is appended and the internal deletion key is derived based on the user-defined search key to which a second label is appended, the first label and the second label being different from each other and used to differentiate between retention and deletion roots, and in that the method further comprises performing a garbage collection operation to delete said retention root marked for deletion and said deletion root. receiving a write request to write a searchable block, the write request including a user-defined search key and data content; deriving an internal retention key based on the user-defined search key by applying a hash function; storing on the storage medium the searchable block such that the searchable block as a retention root roots a directed acyclic graph of regular blocks, wherein said searchable block includes said data content and is locatable with said internal retention key and each address of said regular blocks is a content address derived from content of a respective regular block; receiving a read request to retrieve said data content, said read request including said user-defined search key; applying said hash function on said user-defined search key to derive said internal retention key in response to receiving said read request; and retrieving said data content using said internal retention key derived in response to receiving said read request, receiving a deletion request to delete said data content, the deletion request including said user-defined search key; deriving an internal deletion key based on said user-defined search key by applying said hash function; and writing a searchable block with said internal deletion key as a deletion root on the storage medium to mark said retention root for deletion,