SQL Server 2014: встроенная память OLTP vs Redis

Является ли SQL Server 2014 встроенной памятью OLTP (Hekaton) той же или аналогичной концепцией с Redis?

Я использую Redis для хранения в памяти (хранение в ОЗУ) и кеширования, имея отдельную базу данных SQL Server (например, StackExchange). Может ли Хекатон сделать то же самое?

Ответы

Ответ 1

Они похожи друг на друга в первую очередь в памяти, но об этом.

Redis - это база данных с ключом в памяти. Он сохраняет данные на диске, но также сохраняет весь набор данных в памяти, поэтому для этого вам нужно достаточно оперативной памяти. Архитектура ключевого значения позволяет использовать множество разных типов данных, поэтому вы можете хранить значение как простую строку или списки, наборы, хэши и т.д. В основном все структуры данных, которые вы можете использовать внутри языка программирования, доступны в Redis изначально.

SQL Server Hekaton (встроенная память OLTP) - это новый движок, предназначенный для запуска реляционных таблиц в памяти. Подобно Redis, все данные для этих таблиц хранятся в ОЗУ, но также сохраняются на диске, поэтому они полностью прочны.

Hekaton может принимать отдельные таблицы в базе данных SQL Server и запускать их в другом процессе с использованием MVCC (вместо страниц и блокировок) и других оптимизаций для памяти, поэтому операции в тысячи раз быстрее, чем традиционный механизм на основе дисков. В нем много исследований, и основной случай использования - это взять таблицу, которая находится под большой нагрузкой, и переключить ее на работу в памяти, чтобы повысить производительность и масштабируемость.

Hekaton не предназначался для работы всей базы данных в памяти (хотя вы можете это сделать, если хотите), а скорее как новый движок, предназначенный для обработки конкретных случаев, сохраняя при этом интерфейс одинаковым. Все для конечного пользователя идентично остальной части SQL Server: вы можете использовать SQL, хранимые процедуры, триггеры, индексы, атомарные операции с ACID-свойствами, и вы можете легко работать с данными как в обычных, так и в таблицах памяти.

Из-за потенциала производительности Hekaton вы можете использовать его для замены Redis, если вам нужна скорость, и хотите моделировать ваши данные в традиционных реляционных таблицах. Если вам понадобятся другие функции "ключ-значение" и структура данных Redis, вам лучше остаться с этим.

С SQL1 2016 SP1 все уровни SQL Server теперь имеют доступ к тем же функциям, и единственное различие заключается в оценке стоимости поддержки и емкости.

Ответ 2

Во-первых, вам нужна корпоративная версия (v дорогостоящая) SQL Server для использования Hekaton (встроенная память OLTP). Обратите внимание, что вам нужно заплатить за сервер sql за процессор, добавив больше рабочей нагрузки на SQL-сервер, может потребоваться больше процессора и, следовательно, намного больше лицензионных затрат.

Но, в отличие от Redis, у вас может быть триггер или сохраненный процесс обновления вашего "кэша в памяти" как часть транзакции базы данных. Вы также можете обнаружить, что Hekaton достаточно быстр, что вам не нужен отдельный набор кешей из ваших основных таблиц.

Итак, Hekaton может делать то же самое, что и Redis, но вряд ли разумно использовать его таким образом, если его использование не будет стоить вам дорого.

Hekaton приходит в себя, когда он позволяет обрабатывать намного больше данных, не вкладывая средств в стоимость программирования для повторной разработки вашей системы, чтобы использовать кеширование с Redis или иным способом.