Альтернатива TimesTen в базе данных памяти [закрыто]
-
22-09-2019 - |
Вопрос
Я только что нашел "Кто-нибудь опубликовал подробное сравнение между различными 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://www.h2database.com/html/features.html#in_memory_databases
- Преимущества:Это СУБД (переписывание приложения не требуется), блокировка на уровне строк.
- Редис
- Связь: 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 также имеют режим совместимости для поддержки схемы других баз данных, что является очень приятной функцией.