`

zookeeper 数据存储 和 写入

 
阅读更多

参照 https://www.cnblogs.com/leesf456/p/6179118.html

 

可以简单概括为以下

1. 使用内存数据库,定期全量dump快照数据到硬盘

2. 针对所有的更新操作,在返回客户端“更新成功”的响应前,zookeeper会保证已经将本次更新操作的事务日志已经写到磁盘上,只有这样,整个更新操作才会生效。

3. 服务启动时

     1)会使用最新的快照数据加载到内存(当然会有一些逻辑判断和保护)

     2)会根据本机的zxid等信息,和 Leader的zxid对比,并且会有全量和增量等各种同步方式

 

以上可以保证大部分数据在硬盘,宕机恢复,还会有跟Leader的同步数据机制

 

https://www.cnblogs.com/wade-luffy/p/8689524.html#_label1_2

类似于两阶段提交的方案进行写操作

1. leader 生成zxid,提出proposal

2. proposal发送给follower

3. 如果超过半数的follower回复 ack,leader commit,并异步通知 follower commit

 

若第3步时 leader挂掉 《 https://developer.aliyun.com/article/136062》

1)leader 未提交成功(P1)而崩溃,follower(P1)未提交,当选为leader后,丢弃P1

2)leader已经提交成功(P1 C1)后崩溃,follower (P1 C1)已经提交,当选leader后,广播C1

3)  leader已经提交成功(P1 C1)后崩溃,follower (P1)未提交,当选leader后,当 旧leader重新加入成为follower时,会跟新leader先同步,新leader为了保证一致性(client端之前已经知道c1提交了),会提交C1 并广播给所有follower提交C1

分享到:
评论

相关推荐

    分布式协调工具-ZooKeeper实现动态负载均衡

    Zookeeper数据结构 1、层次化的目录结构,命名符合常规文件系统规范(类似文件系统)    2、每个节点在zookeeper中叫做znode,并且其有一个唯一的路径标识  3、节点Znode可以包含数据和子节点(但是...

    ZooKeeper分布式系统协调-其他

    在Zookeeper中,znode是一个跟Unix文件系统路径相似的节点,可以往这个节点存储或获取数据。如果在创建znode时Flag设置为EPHEMERAL,那么当这个创建这个znode的节点和Zookeeper失去连接后,这个znode将不再存在在...

    Hadoop权威指南(中文版)2015上传.rar

    数据存储与分析 与其他系统相比 关系型数据库管理系统 网格计算 志愿计算 1.3.4 Hadoop 发展简史 Apache Hadoop和Hadoop生态圈 第2章 关于MapReduce 一个气象数据集 数据的格式 使用Unix工具进行数据分析 使用Hadoop...

    Hadoop权威指南 第二版(中文版)

     数据存储与分析  与其他系统相比  关系型数据库管理系统  网格计算  志愿计算  1.3.4 Hadoop 发展简史  Apache Hadoop和Hadoop生态圈 第2章 关于MapReduce  一个气象数据集  数据的格式  使用Unix工具...

    netty-kafka-101:使用Netty.io向Apache Kafka提取数据的简单演示

    使用Netty采集Kafka的数据 使用Java Netty构建一个HTTP服务器,该服务器接受一个JSON对象并将其保存到Kafka队列中。 为此,请在开发机器上设置netty / kafka。 需要Java和Maven的有效安装。 基于: : Apache ...

    深入了解HBase架构

    从物理结构上讲,HBase由三种类型的服务器构成主从式架构。...所有的HBase数据存储在HDFS的文件中。RegionServer和HDfsDataNode并置在一起,这使得RegionServers所服务的数据具有数据局部性(使数据接近需要的位置)。

    dbtester:分布式数据库基准测试器

    探索etcd,Zookeeper和Consul一致键值数据存储的性能(2017年2月17日) 项目 数据库代理 数据库客户端 系统指标 测试数据分析 对于etcd,我们建议使用。 所有日志和结果都可以在或找到 。 明显警告:...

    大数据面试题-.docx

    下面哪个程序负责 HDFS 数据存储。 a)NameNode b)Jobtracker c)Datanode d)secondaryNameNode e)tasktracker 2. HDfS 中的 block 默认保存几份? a)3 份 b)2 份 c)1 份 d)不确定 3. 下列哪个程序通常与 NameNode 在...

    Hbase 二级索引方案

    Indexer 索引和搜索不会影响 HBase 运行的稳定性和 HBase 数据写入的吞吐量,因为索引和 搜索过程是完全分开并且异步的。Lily HBase Indexer 在 CDH5 中运行必须依赖 HBase、 SolrCloud 和 Zookeeper 服务。

    分布式高性能日志复制服务 DistributedLog.zip

    DL是一个高性能的日志复制服务,提供了持久...分层架构:DL有一个现代化的分层设计,它将有状态的存储层与无状态的服务提供层进行了分离,能够使存储的扩展独立于CPU和内存,因此支持大规模的写入fan-in和读取fan-out。

    Fourinone分布式计算框架

    可以理解为一个分配任务和调度程序,它由开发者自己实现,开发者可以自由控制调度过程,比如按照“农民工”的数量将源数据切分成多少份,然后远程分配给“农民工”节点进行计算处理,它处理完的中间结果数据不限制...

    herddb:JVM可嵌入的分布式数据库

    HerdDB设计用于快速“写入”和主键读取/更新数据访问模式。 HerdDB支持事务和“提交读取”隔离级别HerdDB使用Apache Calcite作为SQL解析器和SQL Planner基本概念像任何SQL数据库一样,数据以表的形式组织,并且表在...

    大数据面试题.doc

    下面哪个程序负责 HDFS 数据存储。 a)NameNode b)Jobtracker c)Datanode d)secondaryNameNode e)tasktracker 2. HDfS 中的 block 默认保存几份? a)3 份 b)2 份 c)1 份 d)不确定 3. 下列哪个程序通常与 NameNode 在...

    大数据面试题(1).doc

    下面哪个程序负责 HDFS 数据存储。 a)NameNode b)Jobtracker c)Datanode d)secondaryNameNode e)tasktracker 2. HDfS 中的 block 默认保存几份? a)3 份 b)2 份 c)1 份 d)不确定 3. 下列哪个程序通常与 NameNode 在...

    大数据面试题.docx

    下面哪个程序负责 HDFS 数据存储。 a)NameNode b)Jobtracker c)Datanode d)secondaryNameNode e)tasktracker 2. HDfS 中的 block 默认保存几份? a)3 份 b)2 份 c)1 份 d)不确定 3. 下列哪个程序通常与 NameNode 在...

    大数据面试题(1).docx

    下面哪个程序负责 HDFS 数据存储。 a)NameNode b)Jobtracker c)Datanode d)secondaryNameNode e)tasktracker 2. HDfS 中的 block 默认保存几份? a)3 份 b)2 份 c)1 份 d)不确定 3. 下列哪个程序通常与 NameNode 在...

    Fourinone分布式并行计算四合一框架

    可以理解为一个分配任务和调度程序,它由开发者自己实现,开发者可以自由控制调度过程,比如按照“农民工”的数量将源数据切分成多少份,然后远程分配给“农民工”节点进行计算处理,它处理完的中间结果数据不限制...

    fourinone-3.04.25

    可以理解为一个分配任务和调度程序,它由开发者自己实现,开发者可以自由控制调度过程,比如按照“农民工”的数量将源数据切分成多少份,然后远程分配给“农民工”节点进行计算处理,它处理完的中间结果数据不限制...

Global site tag (gtag.js) - Google Analytics