Назад | Перейти на главную страницу

База данных, в которой хранятся только индексы и последние X записей в памяти?

Я ищу хранилище данных, которое очень эффективно использует память, но при этом допускает множество изменений объектов в секунду и игнорирует соответствие ACID для последних X записей.

Мне нужна эта база данных для сервера с небольшим объемом памяти, и я могу заставить работать хранилище значений ключей, документ или базу данных SQL.

Идея состоит в том, что индексы / ключи - это единственное, что мне нужно в памяти, и все фактические значения / объекты / строки могут быть сохранены на диске с низкой скоростью чтения (я просто хочу, чтобы поиск индекса / ключа был быстрым). Я также не хочу, чтобы записи постоянно сбрасывались на диск, поэтому я хотел бы, чтобы последнее число X записей хранилось в памяти, чтобы 100 или около того из них можно было записать одновременно. Меня не волнует, потеряю ли я объекты / значения за последние 10 секунд. Меня не волнует, может ли база данных в целом быть повреждена.

Есть ли подобное хранилище данных?

Redis может справиться с этой ситуацией - он записывает все на диск (в конечном итоге), но вы можете указать, как часто он это делает, и все, что не записано, (естественно) теряется.

http://redis.io/topics/persistence дает вам все кровавые подробности.

Да - любая база данных, использующая асинхронный ввод-вывод в современной операционной системе, будет иметь кэширование, близкое к оптимальному.

Redis уже упоминался

Другие варианты:

  • scalaris (где-то на code.google.com) - полная CAP и распространяется
  • riak (basho.com - в конечном итоге последовательный, распределенный)