Ищу рекомендации для простого в памяти DB * Server * (не требуется постоянство) [закрыто

StackOverflow https://stackoverflow.com/questions/4246675

Вопрос

Следует поддерживать несколько соединений, предпочтительно через ODBC. Клиенты будут работать как отдельные процессы на одной машине. Нет необходимости настойчивости, так как клиенты будут справиться с сохранением в другом месте. Клиенты написаны на C ++, если это имеет значение.

Данные довольно просты, это набор несвязанных двунаправленных карт. Доступ либо непосредственно по значению, либо диапазоном (between X and Y), Нет обновлений. На самом деле нам не нужно SQL здесь, поэтому решения Non-SQL также могут быть рассмотрены.

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

Несколько редактиров:

  1. Платформа Linux
  2. RAM Disk не является опцией по соображениям безопасности - мы не хотим, чтобы кто угодно с доступом к машине сможет просматривать данные
  3. Данные должны быть сохранены только в зашифрованной форме, поэтому решение должно либо не сохранять данные вообще или разрешать пользовательский фильтр / плагин для постоянства.
Это было полезно?

Решение

Просто из-за моего знакомства с этим я бы пошел с MySQL. Чтобы использовать его как в базе данных памяти, используйте память в качестве типа таблицы. Redis - это в базе данных NoSQL Memory, которая, вероятно, была бы идеальной подходящей для этого (она работает в памяти, с помощью дискового письма только для постоянства, которые можно отключить).

Другие советы

Какая-то конкретная причина не использует SQLite с RAM DB?

RAM Disk не является опцией по соображениям безопасности - мы не хотим, чтобы кто угодно с доступом к машине сможет просматривать данные

Не повезло тебе. Любой, кто с доступом к машине может просматривать данные из / proc / $ pid / mem в любом случае.

Если вы разговариваете доступом без пророктора, чем использовать каталог / TMP / $ / метод с CHMOD 700.

Вот трюк, который вы можете использовать под Linux, он называется «ленивый размонтирование».

  1. Установите TMPFS где-то
  2. Запустите некоторые процессы (ES), чтобы использовать его, какой CHDIR () в этот каталог. Вы можете использовать экземпляр MySQL; MySQL всегда делает Chdir в каталог данных.
  3. После того, как процесс успешно запущен, убирайте TMPF с опцией -l (ленивый).

Теперь TMPFS все еще существует и будет продолжать существовать до тех пор, пока процесс (ES) доступа к нему обращается к нему, но его нельзя доступ к несвязанным процессам.

Обратите внимание, что это никоим образом не останавливается от получения данных в TMPF, просто делает его немного сложнее.

Также обратите внимание, что он может быть поменяться, поэтому вы должны отключить своп (или использовать зашифрованный своп), если вы абсолютно нуждаетесь в том, чтобы быть не постоянным.

Пытаться Boost.multiindex.. Отказ Не очевидный выбор, но он основан на реляционных концепциях БД.

Концепция многоиндексирования над одной и той же коллекцией элементов заимствована в терминологии реляционной базы данных и позволяет определять спецификацию сложных структур данных в духе размножаемых индексированных реляционных таблиц, где простые наборы и карты недостаточно. Предоставляется широкий выбор индексов, смоделирован после аналогичных контейнеров STL, таких как STD :: Set, STD :: Список и хешитые наборы.

Используйте MySQL с Datadir = TMPFS, которые вы смонтировали для этой цели. Вам нужно будет приготовить несколько скриптов запуска, который устанавливает базу данных (используя mysql_install_db или что-то) при загрузке, конечно, поскольку вы потеряете все данные.

Memcached. может быть жизнеспособным решением. Это ключ-магазин, который может быть установлен для удержания значений в течение определенного времени, масштабируемо и просто настроить и начать использование. Также бежит во всевозможных средах. Вот сайт Wiki для получения дополнительной информации, Особенно, поскольку главная страница не имеет почти полезной.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top