Переписываю базу данных.

Переписываю базу данных. Теперь она не будет slowpoke, переименую в pudge.

Стараюсь сделать сбалансированную и по записи и по чтению.
Сегодня прогнал первые бенчмарки, сравнил с другими популярными решениями, результаты - первое место, по совокупности. 600000 чтений/сек, это прям вау кмк.

Конечно поразила бд pogreb (за счет mmap - скорость чтения не намного ниже скорости чтения из памяти (для эталона скорость чтения из памяти 3 млн оп/сек)) Но с другой стороны - запись деградирует с ростом базы линейно, опять же, благодаря ммап. Это я уже проходил на boltdb

Параметры бенчмарка:

Number of keys: 1000000
Minimum key size: 16, maximum key size: 64
Minimum value size: 128, maximum value size: 512
Concurrency: 4

Running pudge benchmark...
Put: 23.475 sec, 42598 ops/sec
Get: 1.625 sec, 615212 ops/sec
Put + Get time: 25.100 sec

Running badgerdb benchmark...
Put: 22.047 sec, 45358 ops/sec
Get: 3.701 sec, 270233 ops/sec
Put + Get time: 25.747 sec

Running goleveldb benchmark...
Put: 25.291 sec, 39540 ops/sec
Get: 8.708 sec, 114831 ops/sec
Put + Get time: 33.999 sec

Running bolt benchmark...
Put: 98.244 sec, 10178 ops/sec
Get: 2.173 sec, 460280 ops/sec
Put + Get time: 100.417 sec

Running pogreb benchmark...
Put: 162.363 sec, 6159 ops/sec
Get: 0.405 sec, 2466778 ops/sec
Put + Get time: 162.768 sec