dataWatches:跟踪 znode 节点数据的变化。childWatches 和 dataWatches 同源于 WatcherManager。
childWatches:跟踪 znode 节点结构 (tree) 的变化。
WatchTables【正向查询表】HashMap>如果 ZNode、和 Watcher 的数量都比较多,而且客户端订阅 ZNode 也比较多,甚至全量订阅。这两张 Hash 表记录的关系就会呈指数增长,最终会是一个天量!
场景:某个 ZNode 发生变化,订阅该 ZNode 的 Watcher 会收到通知。
逻辑:用该 ZNode,通过 WatchTables 找到对应的全部 Watcher 列表,然后逐个发通知。
Watch2Paths【逆向查询表】
HashMap
场景:统计某个 Watcher 到底订阅了哪些 ZNode。
逻辑:用该Watcher,通过 Watch2Paths 找到对应的全部 ZNode 列表。
Watcher 本质是 NIOServerCnxn,可以理解成一个连接会话。
pathCount:表示测试中利用的 ZNode 路径数目。watchManagerClass:表示测试中利用的 WatchManager 实现类。
watcherCount:表示测试中利用的观察者(Watcher)数目。
Mode:表示测试的模式,这里是 avgt,表示平均运行时间。
Cnt:表示测试运行的次数。
Score:表示测试的得分,即平均运行时间。
Error:表示得分的毛病范围。
Units:表示得分的单位,这里是毫秒/操作(ms/op)。
欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |