![][1]
В [Apache Ignite][2], начиная с версии 2.1 появилась собственная реализация [Persistence][3].
На то, чтобы построить этот механизм в современном его исполнении, ушли десятки человеколет, которые были в основном потрачены на построение распределенного отказоустойчивого транзакционного хранилища с поддержкой SQL.
Всё началось с фундаментальных проблем предыдущего механизма, который позволял интегрировать In-Memory Data Grid с внешними постоянными хранилищами, например, Cassandra или Postgres.
Такой подход накладывал определенные ограничения — например, было невозможно выполнять SQL или распределенные вычисления поверх данных, которые находятся не в памяти, а в таком внешнем хранилище, был невозможен холодный запуск и низкий [RTO (Recovery Time Objective)][4] без существенных дополнительных усложнений.
Если вы используете Apache Ignite Persistence, то оставляете себе все обычные возможности Apache Ignite — [ACID][5], распределенные транзакции, распределенный [SQL99][6], доступ через Java/.NET API или интерфейсы [JDBC][7]/[ODBC][8], распределенные вычисления и так далее. Но теперь то, что вы используете, может работать как поверх памяти, так и поверх диска, который расширяет память, на инсталляциях от одного узла до нескольких тысяч узлов.
Давайте посмотрим, как устроен [Apache Ignite Persistence][9] внутри. Сегодня я рассмотрю его основу — Durable Memory, а в следующей публикации — сам дисковый компонент. [Читать дальше →][10]
[1]:
https://habrastorage.org/webt/59/cd/8a/59cd8a31cdb5b946545722.png
[2]:
https://ignite.apache.org
[3]:
https://apacheignite.readme.io/docs/distributed-persistent-store
[4]:
https://en.wikipedia.org/wiki/Recovery_time_objective
[5]:
https://en.wikipedia.org/wiki/ACID
[6]:
https://en.wikipedia.org/wiki/SQL:1999
[7]:
https://apacheignite.readme.io/docs/jdbc-driver
[8]:
https://apacheignite.readme.io/docs/odbc-driver
[9]:
https://apacheignite.readme.io/docs/distributed-persistent-store
[10]:
https://habrahabr.ru/post/338606/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut