3.9.0 64-bit Indexes

In 3.9.0 we added 64 bit indexes. If you are currently upgrade all
your new indexes will be created as 64 bits. Your old indexes will
remain as 32 bit. If you prefer to have 64 bit indexes replace your
old indexes there are a couple of ways of doing this.

For a small db just delete the index folder and let it rebuild (might
take a while)

If you have a large db / remote storage / etc and cannot take the time
you can also do this operation offline on another node:

1) Take back up.
2) Put on fast local disks
3) Let it rebuild
4) Restore the index back to a node (index folder)
5) Let it catch up from master.
6) Repeat 4/5 for other nodes.

For others the index will eventually be 64 bit due to the merging
process that occurs over time.



What are the pros and cons of using 64 bit indexes? Will there be a blog post explaining the implications further?


Will write one up. Its basically just changing the key size in the
index (used for a hash of stream name) from 32 bit to 64 bit. In 32
bit we use XXHash to calculate the hash in 64 bit we use murrmur3 and
xxhash to calculate the hash.

Less hash collisions / edge cases around them

Calculates 2 hashes instead of one
Uses 4 bytes more per entry

As of now the default is to just upgrade people to 64 bit. Even with a
100m events we are talking about a 400mb difference in size. The dual
hashing is negligible compared to IO etc.