

A Fast, Minimal Memory, Consistent Hash Algorithm [pdf] - arh68
http://arxiv.org/ftp/arxiv/papers/1406/1406.2294.pdf

======
arh68
This paper starts off describing a hash algorithm reminiscent of quake3's
inv_sqrt() function (few lines, magic numbers):

    
    
        int32_t JumpConsistentHash(uint64_t key, int32_t num_buckets) {
            int64_t b = 1,
                    j = 0;
            while (j < num_buckets) {
                b = j;
                key = key * 2862933555777941757ULL + 1;
                j = (b + 1) * (double(1LL << 31) / double((key >> 33) + 1));
            }
            return b;
        }
    

That wraps up by the second page, though. I'll try implementing it myself when
I get home (it looks promising).

