关于kv的jch分片存储
确定节点同步一致
- 节点启动之后,先获取本地的addrbook里面的节点信息
- 根据获取的addrbook里面的节点信息进行校验(向addrbook里面的节点发送hash消息确认,如果都一样,则可以广播数据。如果不一致,则发送自己的节点的信息到对方的节点,同时获取对方的节点信息,如果发现数据有修改,则开启新的轮次再次向其他的节点进行hash确认,最终达到节点的一致性)
- 如果在整个过程中任何一次发现节点信息不一致,那么,就要修改广播的状态为false
根据jch分发数据
- 在本节点的广播状态为true的情况下,进行jch算法广播数据
- 如果为false,则一直保存到本地的数据库中
节点重启
- 节点重启之后,先进行节点一致性的确认
节点的加入
- 新添加的节点里面只有seeds,所以,如果之前的系统是一个完整的系统,那么,本次需要同步完毕所有的节点信息才能写入数据
节点的退出
- 节点退出之后需要通知到其他的节点,其他节点各自更新自己的节点信息
数据迁移
- 在新节点添加之后,在节点同步完毕之后,就可以进行数据迁移了
- 迁移数据的时候,新数据不能够进行数据的写入,放到本地的广播队列中
- 迁移完毕之后,需要进行迁移完毕确认,确认成功之后则可以进行数据的广播
节点的安全
- 节点之间进行通讯需要通过tls的方式进行网络传输
转载于:https://www.cnblogs.com/bergus/p/guan-yukv-dejch-fen-pian-cun-chu.html
关于kv的jch分片存储相关推荐
- MongoDB分布式(分片存储)部署
分别开启一个Config和两个Shard D:\mongodb1\bin\mongod --configsvr --dbpath D:\mongodb1\db\ --port 27020 D:\mon ...
- redis集群分片存储
文章目录 redis集群分片存储 为什么要分片存储 官方集群方案 搭建集群 集群关心的问题 Java客户端代码 非官方集群方案 redis集群分片存储 为什么要分片存储 假设公司用户有3千万,用户基本 ...
- java如何实现redis分片存储_面试官:你说一下Redis吧,怎么实现高可用,还有持久化怎么做的?...
前言 作为Java程序员,在面试过程中,缓存相关的问题是躲不掉的,肯定会问,例如缓存一致性问题,缓存雪崩.击穿.穿透等.说到缓存,那肯定少不了Redis,我在面试的时候也是被问了很多关于Redis相关 ...
- java如何实现redis分片存储_Redis的分片机制
前言:大家都知道redis单台的默认内存大小一般是10M.如果现在需要我们将1G的数据保存到内存中.这该如何做到呢?比如我们就用单台redis,但是一味的扩大单台redis内存则直接影响执行的效率,会 ...
- java如何实现redis分片存储_AOP与Redis缓存实现
1. AOP实现缓存业务 1.1 业务需求 1). 自定义注解 @CacheFind(key="xxx",second=-1) 2). 使用自定义注解 标识业务方法 将方法的返回值 ...
- 数据库 shard 分片存储
2.1.1什么是数据切分 "Shard" 这个词英文的意思是"碎片",而作为数据库相关的技术用语,似乎最早见于大型多人在线角色扮演游戏中."Shard ...
- Redis集群分片存储原理图
- MongoDB:海量存储基础-分片架构
文章目录 1.分片架构 2.分片策略 3.读写策略 4.数据迁移 1.分片架构 分片是数据库中常用的提升存储容量的方式,它基于水平拓展的思想,将大量的数据按一定规则分配到不同的服务器中存储,比如MyS ...
- 【Alios-things笔记】EMW3060 Flash用户数据存储KV
[KV介绍] KV组件是AliOS Things中一个以Key-Value方式进行持久化存储的轻量级组件,主要为基于nor flash的小型MCU设备(Micro Control Unit)提供通用的 ...
最新文章
- 使用redis和mysql的开源项目_干货!带你了解为什么那么多开源项目都是用Redis!...
- visual studio 自动整理代码
- bash之预定义变量
- 【JavaScript】正则表达式
- boost::empty_value的实例
- python:使用Djangorestframework编写post和get接口
- 字符串去重_文件数据去重示例
- 学习OpenCV2——卡尔曼滤波(KalmanFilter)详解
- kops_使用KOPS的Kubernetes群集中SQL Server
- 标准C语言程序设计第七版pdf,C语言程序设计(向华)7.pdf
- 分享一个手写轮播图的学习案例
- 20182319彭淼迪 2019-2020-1 《数据结构与面向对象程序设计》实验一报告
- App开发 - 谈谈App架构的演进
- 中西方对时间的差异_中西文化的差异-2 时间观
- wireshark抓包:分析阿里小蜜网络通信方式
- 安卓手机上最好的3个txt阅读器
- 疫情可视化part3
- 快速写出高质量IEEE论文的经验总结
- vue vant优惠券使用
- 2018沈阳网络赛J
热门文章
- pip下载安装与环境配置
- 程序员如果不能干到退休,那程序员的路何去何从?
- 现如今有一个很有意思的现象,不管是工厂还是经销商
- 为什么很多人赚不到钱?
- linux 命令行删除分区,如何在 Linux 中删除分区
- sql ddl中key_SQL DDL:SQL Server中SQL DDL命令入门
- 使用和执行SQL Server Integration Services包的方法
- ssas表格模型 权限控制_如何在SQL Server 2016中自动执行SSAS表格模型处理
- Android环境配置(Eclipse全开发环境下载)
- JQuery插件,轻量级表单模型验证