@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 Тб.

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

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

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

Войти через центр авторизации
Похожие вопросы