Задать вопрос
@andrew-nii

Нетребовательное Key-Value хранилище под Linux с доступом по TCP?

Здравствуйте! Помогите пожалуйста выбрать БД.

Стоит задача хранить сильно много данных в key-value хранилище. Linux. OpenSource. 4 Gb RAM. Ключи - хотя бы 256 байт строка, значения - от нуля до 10 мегабайт, всего пар "ключ-значение" - от 20 миллионов. Скорость записи от 2 до 5 мегабайт в секунду, около 100 запросов в секунду.

Ключевое требование - максимальная простота использования по TCP. Например так:

1. устанавливаем TCP соединение.
2. отправляем "WRITE,10,5000,(десять байт ключ),(5000 байт значение)"
3. ждём "FAILED_ALREADY_EXIST".
4. всё, запрос выполнен, закрываем соединение.

Необходимо, чтобы в протоколе не было никаких JSON, XML, и прочих иерархических и требующих парсинга штук. Также необходимо, чтобы это было обычное TCP соединение, без SSL/TLS и аналогичных технологий (или чтобы TLS можно было отключить).

На текущий момент для хранения данных используются полностью самописные решения. (4 операции - enum, read, write, delete). Но есть понимание того, что дальше так нельзя. С существующими базами данных я не знаком вообще.

Вопрос 1. А есть ли существующие решения под такие требования? Под 4 Gb RAM? А под 2 Gb RAM?

Вопрос 2. А эти существующие решения могут потянуть ещё и одновременное чтение с аналогичной интенсивность?

Вопрос 3. А эти существующие решения смогут уместить 2 Тб данных на один 4 Тб жёсткий диск?

Вопрос 4. А если RAM будет 16 Гб - БД будет обеспечивать чтение хотя бы 15 Мб/сек?

Вопрос 5. А что есть под оборудование лучше - распределённое хранилище на узлах 32 Gb RAM + 8 HDD на 2 Тб.

Заранее большое спасибо!
  • Вопрос задан
  • 115 просмотров
Подписаться 2 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
Используйте levelDB и напишите сами. ТЗ у вас действительно скоромное. Пишите на том языке который знаете.

Ну или форкните любую реализацию например
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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