会员
T恤
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
luohaixian
博客园
首页
新随笔
联系
订阅
管理
2024年12月19日
LevelDB架构解析
摘要: 1. 整体模块架构 leveldb是个嵌入式键值数据库,它的核心原理是采用LSM算法作为存储引擎,写入时采用WAL的方式将随机写转换为顺序写,最终落盘存储为文件时采用有序key组织方式,同时会生成布隆过滤器元数据;读取时采取缓存、二分定位和布隆过滤器等方式快速定位key,因此它在读写方面都拥有很高的
阅读全文
posted @ 2024-12-19 16:34 luohaixian
阅读(116)
评论(0)
推荐(0)
2024年7月15日
TIKV PD Server架构解析
摘要: 1. pd-server架构图 TIKV集群主要由两个核心组件组成,分别是pd-server和tikv-server。 pd-server可以看做是整个集群的大脑,里面保存着集群的关键元信息,比如集群配置、全局的region信息和store信息等。类似于Ceph的mon组件。 pd节点之间会内部维护
阅读全文
posted @ 2024-07-15 19:04 luohaixian
阅读(480)
评论(0)
推荐(0)
2023年12月14日
boltdb架构解析
摘要: 1. 整体系统架构 boltdb是单机kv数据库,所有数据都保存在一个文件中,通过内存映射的方式进行数据读取和写入,存储结构采用类B+树的组织形式,支持一写多读的事务机制,支持bucket增删改查、bucket嵌套和k/v增删改查等功能,etcd的底层存储系统就是基于boltdb实现的,不过etcd
阅读全文
posted @ 2023-12-14 23:24 luohaixian
阅读(379)
评论(0)
推荐(0)
2023年6月27日
etcd网络模块解析
摘要: 1. RaftHttp模块介绍 在etcd里raft模块和网络模块是分开的,raft模块主要负责实现共识算法,保证集群节点的一致性,消息的发送和接收则交给raftHttp网络模块来处理,由上层应用模块来进行协调交互和消息传递。 1.1. 整体结构图 (1)当raft模块发生了状态变化时,会把变化的消
阅读全文
posted @ 2023-06-27 19:14 luohaixian
阅读(174)
评论(0)
推荐(0)
2022年10月10日
etcd raft模块解析
摘要: 1. Raft简介 raft是一个管理复制式日志的共识算法,它是通过复制日志的方式来保持状态机里的数据是最终一致的。 整体的一个运行描述图: 从图中可以看到由几部分组成,共识模块、日志模块和状态机。当client端发送一个请求过来时,首先经过共识模块产生日志并复制到大多数节点,然后将日志应用到状态机
阅读全文
posted @ 2022-10-10 12:33 luohaixian
阅读(1208)
评论(0)
推荐(0)
2021年10月7日
JuiceFS框架介绍和读写流程解析
摘要: 1.基本组件介绍 JuiceFS Client:支持多种Client端的接口,比如兼容POSIX文件系统的接口,以此你可以将它挂载到系统上当文件系统使用,且可以为k8s提供存储使用,用ks8s的csi driver进行接入。同时也支持S3协议,开发了对应的S3网关进行支持; Data Storage
阅读全文
posted @ 2021-10-07 02:18 luohaixian
阅读(3457)
评论(0)
推荐(0)
2021年9月4日
TiKV读写流程浅析
摘要: 1.TiKV框架图和模块说明 图1 TiKV整体架构图 1.1.各模块说明 PD Cluster:它是由多个PD节点组成的etcd集群,PD是具有“上帝视角”的管理组件,负责存储元数据和进行负载均衡,比如Region对应的range段信息、调度Region切分和合并等; gRPC:开源远程过程调用系
阅读全文
posted @ 2021-09-04 21:20 luohaixian
阅读(2188)
评论(0)
推荐(0)
TiKV集群搭建
摘要: 1.准备环境 准备4台ubuntu 16.04虚拟机 部署规划: 节点类型 CPU 内存 存储 部署数量 所在节点IP TiKV 8 core 8 GB 200GB 3 10.10.10.2 10.10.10.3 10.10.10.4 PD 8 core 8 GB 3 10.10.10.2 10.1
阅读全文
posted @ 2021-09-04 21:07 luohaixian
阅读(1701)
评论(0)
推荐(0)
2021年8月20日
使用Go实现并发切片上传和下载文件
摘要: 1.实现目的 主要目的是用来熟悉go语言,通过该项目可以熟悉到的go知识点: (1)go语言语法; (2)go的goroutine使用方式; (3)go通道chan的使用 (4)等待所有goroutine结束的同步信号使用; (5)go的结构体定义和方法使用; 2.实现的功能点 (1)支持批量上传下
阅读全文
posted @ 2021-08-20 23:17 luohaixian
阅读(6669)
评论(0)
推荐(1)
2020年5月17日
Git使用总结
摘要: 1 学习Git的方式 学习git最好的方式就是项目中使用git来管理版本代码,这样才会遇到各种问题,然后你才会想去想办法解决,印象才会深刻,否则学了后也只会记得简单的add、commit和push操作 这里推荐一个入门git教程网站,它可以相当于玩游戏一样来学习git,可视化的界面让你对git的命令
阅读全文
posted @ 2020-05-17 16:44 luohaixian
阅读(325)
评论(1)
推荐(0)
下一页
公告