Go: LevelDB размер файловGo: LevelDB размер файлов LevelDB - это высокопроизводительная NoSQL система для хранения данных в формате ключ/значение, разработанная компанией Google. В целом хранилище хорошо показало себя на практике. Как следствие этого оно используется на низком уровне в BigTable от Google (в формате LevelDB хранятся конечные записи), в распределенной БД Riak (LevelDB может использоваться как хранилище для конечных узлов) и др. В LevelDB со стандартными настройками используются файлы размером 2МБ для хранения SS-таблиц на файловой системе. При этом хранилище хорошо себя ведет на размерах до 40-50ГБ. С большими объемами не сталкивался лично. Минусом в таких случаях является то, что одной директории находится порядка 20К фалов , что не есть хорошо. Если мы работаем на языке Go и используем github.com/syndtr/goleveldb/leveldb, то для увеличения размера файлов на диске до 16МБ нужно открыть LevelDB со следующими параметрами:
Если отключить компрессию данных, то WriteBuffer нужно выставить равным CompactionTableSize. Обусловлено это тем что в случае сжатия половина буфера используется как источник данных, а вторая как получатель. Я провел сравнение на записи 100 млн уникальных ключей размером 8 байт со значениями 8 байт. На моей тестовой несильно мощной машинке скорость записи до изменения размера составила ~ 179K записей/с, после увеличения ~ 197К, что примерно увеличило производительность на 10% при этом в значительной степени сократило число файлов в 8 раз и снизило интенсивность мерджей SS-таблиц.
30.07.2017 |
популярные тэги
наука
интересно
новости
технологии
история
go
golang
программирование
it
искусственный интеллект
путешествия
природа
космос
ai
базы данных
медицина
science
анализ текстов
ии
text mining
робототехника
авто
музыка
роботы
интернет
нейронные сети
robots
space
вокруг света
postgresql
алгоритмы
гитара
животные
оружие
google
nosql
авиация
здоровье
техника
auto
|