Вопрос

Я только что нашел "Кто-нибудь опубликовал подробное сравнение между различными RDBMS в памяти? "Это связано с моим вопросом.

TimesTen (видеть также) это База данных в памяти из оракула.

В этом есть много интересного, в том числе.

  • Быстрое и стабильное время отклика
  • Высокая пропускная способность транзакций
  • Стандартный SQL, без переписывания приложения
  • Стойкий и восстанавливаемый
  • Высокая доступность и отсутствие потери данных

Однако цена для большинства людей недоступна (41 500 долларов США за процессор).

Итак, какие альтернативы существуют, и какие есть плюсы и минусы.

(Я использую .NET, если это изменит ваш ответ)

Это было полезно?

Решение

Популярной системой баз данных в памяти является eXtremeDB от McObject, см.

http://www.mcobject.com/extremedbfamily.shtml

Существует также хороший технический документ, который можно загрузить с домашней страницы веб-сайта McObject, под названием «Системы баз данных в памяти:Мифы и факты».Он проясняет некоторые вопросы, возникающие при обсуждении технологии, например: «Чем IMDS отличается от «традиционной» базы данных, работающей на RAM-диске?»

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

Обычно в этой области люди также смотрят на kdb из Кх Системы.Я думаю, что обе эти системы действительно пережили расцвет в начале 2000-х годов.Я хотел бы посмотреть, даст ли настроенный MySQL с твердотельным RAID-массивом необходимую вам производительность.

Кстати, однажды я написал базу данных временных рядов, которая превзошла по производительности TimesTen и Kdb.Он поддерживал синтаксис SQL-92.Ключом к повышению производительности была привязка схемы к классам на основе шаблонов C++ и использование файлов, отображаемых в памяти.Внесение изменений в схему «на ходу» обходится довольно дорого, а при определении схемы во время компиляции поиск данных можно получить всего за несколько инструкций ассемблера.

Вышеупомянутый вопрос был задан (и дан ответ) еще в 2009 году.Однако вопрос все еще актуален, и мы можем взглянуть на него второй раз.

Я могу предложить следующие альтернативы TimesTen:

  • SQLite
    • Связь:http://www.sqlite.org/inmemorydb.html
    • Преимущества:Небольшой размер, это СУБД (переписывание приложения не требуется)
    • Недостатки:Нет блокировки на уровне строк
  • Н2
  • Редис
    • Связь: http://redis.io
    • Преимущества:Невероятно быстрый благодаря встроенной поддержке таких структур данных, как список, хэш, набор, отсортированный набор и т. д.
    • Недостатки:Не СУБД (возможно, вам придется переписать приложение).

Все вышеперечисленное может работать в памяти.Что касается функций, вам может чего-то не хватать по сравнению с TimesTen.Но они, безусловно, заслуживают внимания.

Еще для списка:Открытый исходный код Тарантул — это постоянный вариант в памяти, который, как и TimesTen, поддерживает транзакции ACID и SQL.Однако, в отличие от TimesTen, он может автоматически сегментироваться, а также имеет полноценный сервер приложений Lua для хранимых процедур.

Недавно я сравнил Oracle TimesTen и Sybase ASE IMDB.

Статья состоит из двух частей и доступна по следующим ссылкам.

http://sarchoracle.techtarget.com/tip/In-memory-databases-Oracle-TimesTen-vs-Sybase-ASE

http://sarchoracle.techtarget.com/tip/In-memory-databases-Oracle-TimesTen-vs-Sybase-ASE-part-2

Я задал этот вопрос а ДЛИННЫЙ когда-то назад, в наши дни Microsoft SQL Server имеет "OLTP в памятиЭто оптимизированный для памяти механизм базы данных, интегрированный в механизм SQL Server.Это не дешево, но вроде бы очень быстро для некоторых рабочих нагрузок.

Альтернативой может быть SolidDB, сравнение между ними можно найти здесь: Сравнение TimesTen и SolidDB

Добавить в список баз данных In-Mem.

Apache Derby HypersQL или HSQLDB.

H2 и HyperSQL также имеют режим совместимости для поддержки схемы других баз данных, что является очень приятной функцией.

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