2014-04-24 6 views
1

Мне нужна база данных с ключом, например redis или memcached, но не в памяти, а скорее на диске. После заполнения базы данных (что мы делаем регулярно и с нуля), мне действительно нужна операция get, но из многих разных процессов (так что Kyoto Cabinet и LevelDB не работают для меня).Can RocksDB обрабатывает несколько клиентов только для чтения?

Мне нужны 5 миллионов ключей и ~10-30gb данных, поэтому некоторые другие простые базы данных также не работают.

Я не могу найти информацию о том, может ли RocksDB обрабатывать несколько клиентов только для чтения; это не прямолинейно, чтобы основываться на моей ОС, поэтому я хотел спросить, прежде чем делать это. Если он не может, есть ли какая-нибудь база данных, которая будет работать? Предпочтительно с пакетом Ubuntu и привязками к Python ;-).

Сейчас мы используем много мелких файлов, но это действительно отстой, поскольку мы хотим легко создавать резервные копии, копировать и т. Д. Я также подозреваю, что это может привести к замедлению, но это не имеет большого значения.

+0

Вы рассматривали SQLite? –

+0

Собственно, нет. Это действительно хорошо для такого прецедента? –

+0

Да, просто создайте единую таблицу с столбцами «ключ/значение». Вы бы использовали обычный SQL для доступа к таблице. Не уверен, что ключи могут быть чисто бинарными. С появлением WAL (Write-ahead-logging) вы можете даже поддерживать запись параллельно с несколькими считывателями. Однако SQLite поддерживает только один параллельный сценарий. Также обратите внимание, что, хотя вы говорите «процессы», если вы имеете в виду разные компьютеры, я бы проигнорировал SQLite. SQLite хорош для локальных баз данных, но не настолько хорош для сетевых баз данных. –

ответ

1

Самый простой ответ, вероятно, Berkeley DB, и переплеты являются частью STDLIB: https://docs.python.org/2/library/anydbm.html

+0

спасибо, я попробую! по какой-то причине он говорит, что он устарел, и что я должен использовать pybsddb: http://www.jcea.es/programacion/pybsddb_doc/contents.html –

+0

Berkeley DB работает ужасно по сравнению со всеми последними базами данных key-val в каждом тестировании, которое я нашел , – AqD