最近我已经学会了zookeeper
独立服务器源代码,现在我知道每个请求都将由PrepRequestProcessor -> SyncRequestProcessor -> FinalRequestProcessor
处理,我发现PrepRequestProcessor
将创建一个changeRecord
并放入将其放入outstandingChanges
和outstandingChangesForPath
数据结构中,然后在FinalRequestProcessor
处理此请求后,它将从两个数据结构中删除changeRecord
。
当处理多请求时,zk将从这些数据结构中获取pendingRecord
,但对此不做任何事情。
除此之外,我找不到任何代码来操作这两个数据结构。
让我感到困惑的是为什么zookeeper
开发人员添加此数据结构,
如果删除数据结构,一切都会好的。