摘要:随着运行时间的增加,memtable会慢慢 转化成 sstable。 sstable会越来越多 我们就需要进行整合 compact 代码会在写入查询key值 db写入时等多出位置调用MaybeScheduleCompaction () 检测是否需要进行compact 实际进行compact的函数是
阅读全文
摘要:使用TableBuilder构造一个Table TableBuilder头文件 主要是按照格式填充 这里做了简单的注释 参考 https://blog.csdn.net/tankles/article/details/7663918 《leveldb实现解析》淘宝 那岩
阅读全文
摘要:前文记录 leveldb 学习记录(一) skiplistleveldb 学习记录(二) Sliceleveldb 学习记录(三) MemTable 与 Immutable Memtableleveldb 学习记录(四) skiplist补完 KV数据库中 大部分是采用内存存储,如果中途发生意外情况
阅读全文
摘要:终于抽出时间来进行 BITTORRENT的学习了 BT想必大家都很熟悉了,是一种文件分发协议。每个下载者在下载的同时也在向其他下载者分享文件。 相对于FTP HTTP协议,BT并不是从某一个或者几个指定的点进行文件下载,而是用户之间进行交互,每个用户既是下载者也是上传者. BT并不会出现提供下载的服
阅读全文
摘要:一旦Leader选定之后,我们将复制所有的操作到每个节点上。 这个是通过心跳包中的Append Entries message结构体来进行实现的 客户端发送一个操作到Leader中(即使客户端发送操作到Follower,操作也会被转发到Leader处理) Leader将操作附加到自己的Log日志中
阅读全文
摘要:Raft官网 官方可视化动画1 官方可视化动画2 官方可视化动画1 官方可视化动画2 论文中文翻译 论文英文地址 感觉作为paxos的升级精简版 Raft在设计之初就以容易理解为目标 看完资料 脑海里都有了大概的轮廓。 有了这些详细的资料甚至是动画演示在前 起始都没多少好说的,本篇知识作为记录下学习
阅读全文
摘要:redis在游戏服务器中的使用初探(一) 环境搭建redis在游戏服务器中的使用初探(二) 客户端开源库选择redis在游戏服务器中的使用初探(三) 信息存储redis在游戏服务器中的使用初探(四) redis应用 在学习分布式对象存储的期间,有这么一个需求 "多个接口服务(本文当作客户端Cline
阅读全文
摘要:上节的代码无法区分同一个对象的不同版本,为了记录对象版本以及其他一些元数据,本节中会加入一个新组件:元数据服务 元数据服务就是提供对元数据的存取功能的服务。元数据指的是对象的描述信息,比如对象的名字、版本、大小以及散列值. 新增加服务后的结构图如下 需要新安装一个ElasticSearch搜索引擎。
阅读全文
摘要:上一节编写了一个使用REST服务进行对象存取得单机程序 本节接续对其进行扩展,为了满足加入新的节点就可以自由扩展服务器集群的需求,我们需要将单机版的接口与数据存储进行解耦. 让接口与数据存储成为互相独立的服务节点,两者互相合作提供对象存储服务。这样节点就可以按照需要添加,并且分布在不同的服务器上。
阅读全文
摘要:这是 <分布式对象存储 原理架构及Go语言实现>的学习笔记的第一篇 我们简单的实现一个REST(表述性状态传递,英文:Representational State Transfer)服务接口,用来单机存储对象 单机版的REST接口极其简单 只提供对象的PUT和GET方法 顾名思义 就是对象的存取方法
阅读全文
摘要:todo 差不多看到第二章 环境和代码编译验证 已经确认到了第四章节 全书能正常编译测试执行完毕应该是没问题了,剩下的就是消化吸收的问题了 近日开始着手编写验证日志 读书笔记 该书籍使用的GO语言作为示例 经过验证 windows下运行curl rabbitmq ElasticSearch 等软件都
阅读全文