aboutsummaryrefslogtreecommitdiff
path: root/shards.go
blob: 55ab97662b77e11b23d73a75873304cb1754f689 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package main

import (
	"hash/fnv"
	"sync"
)
type Shard struct{
	mu sync.Mutex
	data map[string]Item
}

func (db *RedisDB) getShard(key string)*Shard{
	hash := fnv.New64a()
	hash.Write([]byte(key))
	val := hash.Sum64()

	return db.shards[val%16]
}