阿帕奇点燃

本机持久性

扩展到可用内存容量之外
并在重新启动时跳过内存预热
本机持久性
通常,内存中的缓存和数据库提供的持久性功能有限。

例如,一些解决方案创建
内存中的数据纯粹用于重启目的。

点燃持久性没有任何限制。
我们的本机持久性表现得像经典的
基于磁盘的数据库。

扩展到内存之外
容量

100%的数据始终存储在磁盘上。您可以决定为数据分配多少内存。

只需要几秒钟
用于恢复

Ignite从磁盘立即开始运行。无需等待数据在重新启动时预加载。

内存中的查询
和磁盘数据

如果内存中缺少任何记录,则Ignite会从磁盘中读取该记录。包括SQL在内的所有API都支持此功能。

它是如何工作的

本机持久性用作分布式、ACID和SQL兼容的基于磁盘的存储。它集成到点火器中多层存储作为磁盘层。

启用本机持久性后,Ignite将在磁盘上存储一个超集数据,并在内存中尽可能多地缓存数据。

例如

如果您的应用程序需要在Ignite集群中存储200条记录,并且内存容量只允许缓存150条记录,那么所有200条记录都将存储在磁盘上,其中150条将当应用程序请求时,从内存中提供服务,而其余50个从磁盘中记录。

检查点和写头日志记录
确保数据的持久性和一致性

提交的事务总是在失败后继续存在

群集始终可以恢复到最新成功提交的事务

更新数据的三步流程
以内存中的速度但不会损失一点

01

一旦更新来自应用程序端,就会在内存中更新一条记录。然后,添加更改写入预写日志(WAL)。

其目的是以尽可能快的方式将更新传播到磁盘,并提供一致的恢复机制来修复完整群集故障。

02

随着WAL的增长,它会定期对主存储进行检查。

检查点是将脏页从内存层复制到分区文件的过程在磁盘上。

脏页是指已在内存中更新并附加到WAL的页,但尚未写入磁盘上的相应分区文件。

03

一段时间后,WAL中有关更新的信息可以被删除、压缩或移动到存档。

这样您就可以重用磁盘空间。

您决定保存哪些数据

切换单个配置设置以将集群转换为数据库
跨内存和磁盘扩展

XML格式Java语言C#/。净值
 <bean class=“org.apache.ignite.conformation.IgniteConfiguration”><property name=“dataStorageConfiguration”><bean class=“org.apache.iignet.configuration.DataStorageConfiguration”><property name=“defaultDataRegionConfiguration”><bean class=“org.apache.ignite.conformation.DataRegionConfiguration”><property name=“persistenceEnabled”value=“true”/></bean></属性></bean></属性></bean>
 点火配置cfg=新的点火配置();DataStorageConfiguration storageCfg=新的DataStorageConfiguration();//启用点燃持久性storageCfg.getDefaultDataRegionConfiguration().setPersistenceEnabled(true);//使用新的存储配置cfg.setDataStorageConfiguration(storageCfg);
 var cfg=新点火配置{DataStorageConfiguration=新DataStorageConfiguration{DefaultDataRegionConfiguration=新DataRegionConfiguration{名称=“Default_Region”,PersistenceEnabled=true}}};