考虑Aerospike中的场景:
存储器中的数据被设置为真,并且存储器空间<磁盘空间
当内存被填满时会发生什么(达到停止写入pct)。Aeropike停止接受所有写入吗?或者它将继续写入磁盘(如果磁盘空间可用)?
在多节点设置中,上述行为会受到怎样的影响?
当达到停止写入pct时,写入将开始完全失败。在内存中的数据配置中,由任何原因(磁盘或内存已满)触发的停止写入都将由两者执行。
这种行为是针对每个节点的(因为停止写入pct与节点有关,而与集群无关)。
在集群的情况下,如果它是具有数据/分区主副本的节点,该节点已命中停止写入,则该写入将失败。
如果已命中停止写入的节点被认为是副本分区节点,则允许对副本数据进行写入。
单节点
- 如果在内存中达到停止写入pct,则写入失败
- 如果磁盘中达到停止写入pct,则写入失败
Aerospike集群
- 如果在Master中达到停止写入pct,则写入失败
- 如果在副本中达到停止写入pct,它也将失败,因为写入。commit_level默认为all