IReliableCollection.ClearAsync方法原子性及故障场景相关问题咨询
关于
IReliableCollection.ClearAsync方法的问题解答 - 关于该方法是否为原子操作:
ClearAsync是原子操作。Service Fabric可靠集合的所有修改操作都基于内置事务机制实现,ClearAsync整体封装在单个隐式事务内执行,只会出现全成功或者全失败两种结果,不存在中间状态对外暴露的可能。 - 关于节点崩溃是否会导致留存部分旧条目:
不会出现部分清除的情况,可分为两种场景确认:- 崩溃发生在
ClearAsync调用未返回时:此时操作对应的事务尚未完成多数副本的持久化确认,事务会直接回滚,集合会保持操作执行前的完整状态,所有旧条目都会保留。 - 崩溃发生在
ClearAsync调用成功返回后:此时操作的事务已经提交并完成多副本同步,故障转移后新的主副本会保留完全清空的集合状态,不会有任何旧条目残留。
- 崩溃发生在
内容的提问来源于stack exchange,提问作者iambatman
相关产品推荐
相关产品推荐

