- 博客(7)
- 收藏
- 关注
原创 Zookeeper源码分析:集群模式启动概述
参考资料<<从PAXOS到ZOOKEEPER分布式一致性原理与实践>>zookeeper-3.0.0Zookeeper概述Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务。致力于提供一个高性能、高可用,具有严格的顺序访问控制能力(写操作严格顺序)的分布式协调服务。Zookeeper集群启动集群启动方法与配置文件查看目录bin下的zkServ...
2019-09-30 10:42:55 243
原创 leveldb源码分析:数据合并落盘
数据的合并落盘本文主要来梳理一下,leveldb数据是怎样从内存写入文件这么一个过程的。在前文的描述中,在数据库的Open过程中,在数据的Get过程中或者Write数据的时候等情况下都可能会触发到leveldb数据合并并写入本地文件的操作即MaybeScheduleCompaction函数的调用,本文就分析一下该函数的执行流程。MaybeScheduleCompaction函数的执行过程vo...
2019-09-22 15:38:00 931
原创 leveldb源码分析:数据查询
leveldb数据查询查询的示例代码如下:string res;status = db->Get(ReadOptions(), "KeyNameExample", &res);本文就先分析一下数据的获取流程。db->Get获取数据主要就是调用db的Get方法来查找数据;Status DBImpl::Get(const ReadOptions& optio...
2019-09-21 15:41:02 784
原创 leveldb源码分析:数据插入续(跳表)
leveldb数据的插入-跳表本文主要是接着上一篇文章,继续深入探索Write函数调用插入之后的流程。status = WriteBatchInternal::InsertInto(updates, mem_); InsertInto插入数据函数namespace {class MemTableInserter : public WriteBatch::Handler { ...
2019-09-19 19:42:31 338
原创 leveldb源码分析:数据插入与删除(Put与Delete)
Status DBImpl::Write(const WriteOptions& options, WriteBatch* updates) {Writer w(&mutex_); // 初始化一个Writerw.batch = updates; ...
2019-09-14 11:16:31 1479
原创 leveldb源码分析:Open启动流程
leveldb概述Leveldb 是一个持久化的KV存储系统,主要将大部分数据存储在磁盘上,在存储数据的过程中,根据记录的key值有序存储,当然使用者也可以自定义Key大小比较函数,一个leveldb数据库类似与一个操作系统文件夹,所有的有关数据库内容都存储在该文件夹下面,并提供Put,Delete和Get等方法去更改或查询该数据库,并且提供原子更新,同步写(因为leveldb默认情况下是异步写...
2019-09-02 15:47:07 747
原创 Bigtable:结构化数据的分布式存储系统
相关说明Bigtable是一个用于管理结构化数据的分布式存储系统,其设计目的是为了通过数千个服务器管理大规模数据。谷歌许多的项目例如,web索引、谷歌地球和谷歌金融都使用了Bigtable来存储大规模数据。这些应用对Bigtable提出了非常不同的要求,包括数据大小(从URL到网页到卫星图像)和延迟要求(从后端批量处理到实时数据服务)。尽管有这些不同的需求,但Bigtable还是为这些谷歌产品提...
2019-09-02 14:15:27 2088
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人