On 4/24/2015 10:45 AM, Ulrich Windl wrote:
"Alex V."<[email protected]>  schrieb am 24.04.2015 um 08:54 in Nachricht
<[email protected]>:
On 4/24/2015 9:02 AM, Ulrich Windl wrote:
I think this depends very much on your access patterns (which you didn't
explain).
Regards,
Ulrich
What required is `get(key)` and `set(key, val)`. And, optional but not
unwanted, range lookup.
Still unclear: What is the expected ratio between get and set for a specific 
key? Do you ever delete keys? If so, how many accesses do you expect before 
deleting a key?

You could hash your keys using MD5 or SHA, and use the first 16 bytes as key. 
As your access pattern does not include enumerating the original keys, that 
would work, saving space vs. consuming some extra CPU cycles. I can think of 
other algorithms, but you were not specific with your access pattern.

Regards,
Ulrich

I haven't figured all the details yet, I am just looking for different possibilities. number of `get`s is probably many times higher than number of `set`s or `delete`s. One possible usage case is database that stores source files metadata(symbols) for autocompletion/navigation, something like "source navigator ng"(it uses bdb). Another use case is almost the same, with urls as keys and word index as metadata. Looks like basename/url parts hierarchy will do, I am going to test it some day.

Reply via email to