自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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关注的人

提示
确定要删除当前文章?
取消 删除