zookeeper – 数据存储结构(11)

zookeeper – 数据存储结构(11)

概述

    这是写zookeeper过程中最轻松的一篇文章了,因为zookeeper的data存储结构是比较简单的,所以整个文章也比较简单。

zookeeper数据结构

    首先zookeeper的核心保存结构是一个DataTree数据结构,其实内部是一个Map<String, DataNode> nodes的数据结构,其中key是path,DataNode是真正保存数据的核心数据结构。

    DataNode核心字段包括byte data[]用于保存节点内容,Long acl用于保存data的acl规则,Set<String> children其实就是保存该DataNode下属的子节点的path。

    最后一个源码截图说明了我们创建一个节点的时候如何处理parent和children的相关节点的存储,其实说白了就是所有的节点保存在DataTree<String, DataNode> nodes的数据结构当中,然后每个DataNode本身保存其children的path。说白了就是DataNode在一个统一的地方保存,然后父子关系由各个DataNode本身进行保存。

img_bb85c85c24a99d9b84db531b293aa70b.png

dataTree的核心数据结构

img_a175e971032ded55b5745e400ed606c2.png

DataNode的核心数据结构

img_8a723c076195185a171250e997e6ac63.png

创建节点的核心逻辑

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/101660.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • cad2016新手入门教程_cad制图初学入门教程

    cad2016新手入门教程_cad制图初学入门教程关注公众号,免费获取资料​​适用人群没有基础却想要学习CAD的学员课程概述课程目标:快速学习CAD绘图设计课程特色:完全脱离理论与书,纯实例教学章节1:开篇课时1重要的开篇01:02章节2:AutoCAD软件介绍课时2软件介绍06:12章节3:AutoCAD界面布局课时3界面布局介绍06:22章节4:AutoCAD操作步骤课时…

  • 【并发缺陷】data race数据竞争、atomicity violation原子违背、order violation顺序违背

    【并发缺陷】data race数据竞争、atomicity violation原子违背、order violation顺序违背三类均是跟共享变量的内存访问有关的缺陷。对于并发缺陷的分类目前国内许多是分死锁、数据竞争、原子违背、顺序违背。或者在并发缺陷中又细分concurrencyvulnerability:死锁和数据竞争。感觉各个作者有自己的分类方法????以下引用的中文解释来自<并发缺陷暴露、检测与规避研究综述>哈工大的苏小红老师实验室发表在2015年计算机学报上目前找到外文文献分为7类。其他四类…

    2022年10月29日
  • datagrid 2017 激活码_通用破解码

    datagrid 2017 激活码_通用破解码,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • 新闻专栏~ART让Android更流畅

    新闻专栏~ART让Android更流畅

  • DVP协议

    DVP协议Whatisadigitalvideoport?Camera的并口传输方式很多地方叫做dvp接口,但是并没有统一的标准。AsfarasIknow,thereisnoDVPspecbutthepinoutseemstobesomethingofadefactostandard,eventhoughpartmanufacturers…

  • HttpCanary下载_HTML自我介绍

    HttpCanary下载_HTML自我介绍前言首先,我们无论学习哪个框架,都要带着问题,带着思考去学习思考1:HttpRunner是什么?思考2:HttpRunner的设计模式是什么?思考3:为什么我们要学习HttpRunner?他的

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号