Задать вопрос
@Baldaris

Выбор key-value хранилища?

В данный момент используется mongodb, но это уже больше база данных, чем key-value хранилище.

Помогите выбрать key-value хранилище по следующим требованиям:
- хранение на диске (последние добавленные значения можно хранить в оперативке с последующим периодическим flush'ем на диск; диск SSD)
- драйвер для php (ещё желательно для java)
- быстрая запись в хранилище
- инкримент ключей
- возможность сделать неблокирующий backup / restore хранилища
- ненужен дополнительный сервер

Что будет храниться:
- логи вида "инкрементальный ид записи" => "серелизованное значение"

Выборка нужна лишь некоторых элементов по "ид записи", соответственно не нужно агрегирование, сортировки, индексы и прочий функционал базы данных.

Чем не нравится mongodb:
- слишком большой объём занимаемых данных (на выходе в 2 раза больше MySQL). Когда за пару месяцев, объём данных переваливает за 5-10 гб, то уже становится напряжно делать бэкапы.
- при бэкапе занимает всю оперативку, размером с базу данных и не освобождает после бэкапа (помогает только рестарт сервиса)
  • Вопрос задан
  • 1423 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
zoonman
@zoonman
⋆⋆⋆⋆⋆
Redis, с включением Persistence redis.io/topics/persistence

В MongoDB вы можете использовать https://docs.mongodb.org/manual/reference/configur... для старого хранилища.
Для WiredTiger по умолчанию идет компрессор snappy. Но вы можете использовать zlib или bzip
source.wiredtiger.com/2.4.1/compression.html Правда нагрузка на CPU вырастет. Будьте осторожны.
Кроме этого я могу сказать, что у вас неправильный подход к бекапам для MongoDB. Использовать режим полного бекапа не очень удобно. Правильно использовать отложенную репликацию.
Могу сказать, что у меня текущая база содержит примерно 100 GB данных (на диске 253G, Mongo 2.6). Все отлично реплицируется (у меня replica set из 2х машин) и бэкапится (delayed). Это требует отдельный сервер, но он может быть не таким мощным как основной или иметь другой диск, например обычный HDD.
10 GB это очень маленький объем данных. Пересмотрите свою архитектуру.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@lega
Чем не нравится mongodb:
1) Поставте монгу 3.2, будет весить меньше раз в 5 чем в mysql
2) Видимо это бага, должно лечится обновлением монги
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы