我使用群集 配置存储引擎设备 当我重新启动一个节点时,数据将在其他群集或本地HDD中恢复? 当我重新启动整个集群时,要从哪个数据恢复? 我想知道整个过程是怎样的
版本:社区版
我有3个节点;
storage-engine device {
file /opt/aerospike/datafile
filesize 1G
data-in-memory true
}
这是配置 我停止node1 --->集群有2个节点 - > i修改数据(如果在node1之前的数据)
我停止node2和node3,在群集全部停止后,我启动node1 - > node2 - > node3
这会有脏数据吗?
我可以认为node3拥有所有数据吗?
答案 0 :(得分:1)
让我试着从你的问题中得到答案。如果我的理解是错误的,请纠正我。
您在aerospike中拥有一个文件支持的命名空间。数据将持久保存到文件中。数据也保存在内存中(因为“内存数据为真”设置)。默认复制因子为2.因此,您的数据将驻留在处于稳定状态的2个节点上。
当您逐个关闭3个节点时,未更改的数据将存在于持久性文件中。因此,当重新启动节点时,它们的数据将从持久文件返回。
关机期间更改的数据(node1已关闭但node2& node3已启动)是一个棘手的问题。当node1完成后,其数据的副本将在node2&中的一个中。 node3(因为复制因子= 2)。因此,当您更新记录时,我们会执行一个称为重复解析的操作,它将获取最新记录并在新主节点上更新它。它将保留在该节点上。