Brief overview of hash functions supported by Ruby TDB

Ruby TDB supports several alternative hash functions in addition to the defaults supported by TDB upstream. Hash functions behave and perform differently depending on the key and type of keys you use. We support several popular hash functions (and will accept patches to support more).

Changing hash functions on an already-created database will cause corruption, so don't do it.

TDB Upstream Defaults


en.wikipedia.org/wiki/Sip_Hash 131002.net/siphash/

Currently (as of Ruby 2.1) the favored hash in Ruby for hash-flooding protection.

Murmur family

The Murmur family of hashes are supported by Ruby TDB. Most of these are not endian-neutral so databases are no compatible between machines of different endianness and were designed with x86 and x86_64 in mind (they may crash or not work on other architectures).

FNV family

Bernstein hashes

We love to hear from you!
Email patches (using git send-email), pull requests (formatted using git request-pull), questions, bug reports, suggestions, etc. to us publically at:
Mail archives are available at: http://bogomips.org/ruby-tdb-public/
Please send plain-text email only and do not waste bandwidth on HTML mail, HTML mail will not be read.
Quote as little as reasonable and do not top post.
For sensitive topics, email us privately at: ruby-tdb@bogomips.org