前言
在Ozone中,Container以Pipeline节点组织的方式通过StateMachine的形式进行状态一致性的更新。不过这里面对可能存在的一些边缘情况,例如Pipeline节点的突然重启,Container目录的意外删除,我们需要有别的手段来表明Container当前所处于的最新状态。以此我们可以知道一个Container存储于Pipeline节点上的副本间的状态是否是一致的,是否包含一致的Block数据等等。为此,社区在Container中引入了一个自增型的transactionId,表明当前Container的最新的状态。本文笔者来聊聊这个自增型transaction ID在Ozone Container中的实现和运用。
Ozone Container自增型TransactionId:BlockCommitSequenceId
这里笔者要首先介绍介绍Ozone Container自增型Id的由来了。在O