自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

天行健,地势坤

远离颠倒梦想,究竟涅槃

  • 博客(427)
  • 资源 (2)
  • 论坛 (1)
  • 收藏
  • 关注

原创 关于 fallocate 文件系统预分配 的一些细粒度测试

文件系统预分配:提升写入性能的同时降低 因为磁盘空间不足而写入异常的风险,适用于 WAL/UNDO 这样的场景

2021-11-30 00:11:09 651

原创 Rocksdb 的内存分配器--ConcurrentArena 实现原理

rocksdb 的concurrent arena 以及 其和底层的tcmalloc/jemalloc的差异

2021-11-27 12:46:41 392

原创 内存分配器设计的演进

从栈内存-->系统调用-->可扩容alloctor-->free-list allocator-->size-buckets allocator --> cache friendly allocator 的演进过程

2021-11-23 00:19:23 409

原创 TCMalloc(Thread-Caching malloc) 基本设计原理

tcmalloc 拥有高并发场景的内存分配高性能 以及 较高的内存利用率

2021-11-20 16:24:56 338

原创 Glibc-Malloc和TCMalloc 的基本设计原理 及 Glibc-malloc,Jemalloc,TCMalloc性能差异

内存分配器的设计艺术 充分体现了底层软件的精妙细节

2021-11-13 13:00:15 321

原创 关于 Rocksdb 的 EnvWrapper 作用的小讨论

有了Env 这个抽象类,为什么多出来一个 EnvWrapper 这个原封不动重写Env 方法 的Env 子类?

2021-10-27 22:14:24 98

原创 ZNS : 解决传统SSD问题的高性能存储栈设计(fs-->io-->device)

围绕:ZNS: Avoiding the Block Interface Tax for Flash-based SSDs 论文展开ZNS ssd内部的实现原理

2021-10-24 13:54:20 1051

原创 如何用 ndctl/ipmctl 管理工具 配置不同访问模式的pmem设备

pmem 中的 region / namesapce / label 等都是如何组织的?如何通过ipmctl , ndctl 来创建属于自己的混合模式的pmem设备?如何通过fio 测试 fsdax以及devdax 类型的pmem 性能?

2021-10-05 18:10:36 251

原创 跟着Rocskdb 学 存储引擎:读写链路的代码极致优化

1. FileIndexer.2. PinableSlice & Cleanable3. 工业级 LRU Cache & Clock Cache4. ThreadLocalPtr & Version 系统5. JoinBatchGroup6. CoreLocalArray & Statistics

2021-09-22 23:59:34 226 1

原创 关于 linux io_uring 性能测试 及其 实现原理的一些探索

从 io_uring on fio / rocksdb的一些测试记录 来体会io_uring的性能优势,从 io_uring 非poll 模式 以及 poll 模式的实现来看其性能优势以及发展前景。

2021-09-11 11:53:25 208

原创 Rocksdb Ribbon Filter : 结合 XOR-filter 以及 高斯消元算法 实现的 高效filter

xor-filter 基本原理 以及 更高效的ribbon-filter 高斯消元的大体过程

2021-09-04 13:31:16 106

原创 关于 智能指针 的线程安全问题

智能指针是非线程安全的,多线程下修改共享的智能指针的时候需要有同步机制

2021-09-04 09:57:55 155

原创 关于std::string 在 并发场景下 __grow_by_and_replace free was not allocated 的异常问题

并发场景下 std::string 动态扩容引入的内存泄漏问题

2021-09-02 22:41:17 89

原创 Rocksdb 的 MergeOperator 简单使用记录

Rocksdb MergeOperator 简单使用记录

2021-08-14 17:22:57 152 4

原创 关于LSM-tree 的 Remote Compaction调度

rocksdb 2021 meetup 中 remote compaction 在 rocksdb-cloud中的应用

2021-08-14 16:21:36 154

原创 KVell 单机k/v引擎:用最少的CPU 来调度Nvme的极致性能

深入发掘当前业界主流引擎在nvme上的性能痛点

2021-08-05 23:05:55 158

原创 关于 线程模型中经常使用的 __sync_fetch_and_add 原子操作的性能

__sync_fetch_and_add lock前缀锁内存总线的性能是远优于 使用 futex 调度线程上下文的性能。

2021-07-31 22:39:00 107

原创 存储引擎 K/V 分离下的index回写问题

Titan, rocksdb的BlobDB, BadgerDB 在k/v 分离下如何降低GC 引入 的回填index 对性能的影响。

2021-07-30 18:03:47 114

原创 Mac 从Makefile 编译 Rocksdb 源码的一些注意事项

记录在Mac 上通过Makefile 编译Rocksdb 源码过程中应注意的一些事项

2021-07-23 15:25:43 134

原创 python 绘图脚本系列简单记录

简单记录平时画图用到的python 便捷小脚本

2021-07-18 20:31:45 88 1

原创 单机 “5千万以上“ 工业级 LRU cache 实现

Rocksdb 单机 五千万 qps 工业级 LRU-Cache的实现设计

2021-07-18 17:40:30 286 1

原创 分布式系统 一致性模型的介绍 以及 zookeeper的 “线性一致性“ 讨论

分布式系统 一致性模型的介绍 以及 zookeeper的 "线性一致性" 讨论,其实zookeeper并不满足线性一致性语义的。

2021-07-11 11:59:40 87

原创 从 SSL&TLS 的底层实现来看 网络安全的庞大复杂体系

1. 当前http 协议通信的问题?2. SSL & TLS 协议的基本介绍和历史演进?3. 然后从 它们的实现过程 来看 https 如何通过 SSL&TLS 解决http 的问题?

2021-07-10 19:00:34 82 3

原创 MyRocks: 为facebool 的社交图谱服务的LSM-tree存储引擎

原来 LSM-tree 存储引擎 可以很强

2021-06-27 19:31:33 264 2

原创 Rocksdb iterator 的 Forward-scan 和 Reverse-scan 的性能差异

前言最近在读 MyRocks 存储引擎2020年的论文,因为这个存储引擎是在Rocksdb之上进行封装的,并且作为Facebook 内部MySQL的底层引擎,用来解决Innodb的空间利用率低下 和 压缩效率低下的问题。而且MyRocks 在接入他们UDB 之后成功达成了他们的目标:将以万为单位的服务器集群server个数缩减了一半。MyRocks 在facebook内部的成功实践证明了LSM-tree的存储引擎经过一系列优化之后能够达到和B±tree存储引擎性能接近且节约大量存储成本的目的。对于我们底

2021-06-19 15:40:13 212

原创 手把手教你 用C++实现一个 可持久化 的http_server

一个 支持持久化的httpserver 实现

2021-06-15 13:59:48 158

原创 C++ 通过模版工厂实现 简单反射机制

通过模版工厂 实现 C++的反射机制

2021-06-11 02:23:58 1089 2

原创 C++ std::function<void(int)> 和 std::function<void()> 作为函数参数的注意事项

std::function 使用过程中的一些记录

2021-06-08 22:41:21 516 2

原创 Rocksdb 的 BlobDB key-value 分离存储插件

rocksdb社区推出的key-value分离存储组件,无需额外接口,一个参数开启关闭key/value分离。

2021-06-06 13:49:51 447 8

原创 一个简单的程序来使用WiredTiger 存储引擎

wiredtiger基本key-value 接口使用

2021-06-06 10:37:22 64

原创 Jsoncpp 在C++开发中的一些使用记录

1. Json 将字段解析为对应数据类型;2. 从 std::map 生成Json 数据类型3. Json数据类型转化为string 数据类型3. 将一个未知的Json字符串并解析为其他数据类型

2021-05-31 18:55:59 66

原创 MIT 6.824 Lab2A (raft) -- Leader Election

6.824 raft lab leader election实验细节

2021-05-10 21:34:52 210

原创 cannot find main module 解决办法

做6.824 实验的过程中想要跑测试,发现go test -run 2A时 出现cannot find main module问题,测试跑不起来。原因这个原因是从GO1.11 版本开始引入了go.mod文件来对项目中的go源码的编译相关的内容进行管理,经常使用GO的同学可能深受go get或者GOPATH的配置之苦,这个时候引入了go.mod文件,就能将这一些配置释放出来,只需要将项目需要的依赖以及项目的路径放在go.mod中,交给GO本身来做即可。这个时候一些老的GO项目本身没有配置go.mod文件

2021-05-09 15:40:26 184 1

原创 blktrace 工具集使用 及其实现原理

blktrace,blkparse,btrace,btt,blkiomon,iowather 综合使用,及blktrace 如何通过linux 的trace_event追踪内核请求实现原理。

2021-04-30 15:39:03 273 1

原创 Rocksdb 通过posix_advise 让内核减少在page_cache的预读

rocksdb advise_random_on_open 通过 posix_fadvise 关闭操作系统page_cache_sync_read 预读逻辑

2021-04-29 12:34:35 293

原创 git 对之前的commit 进行重新签名 Resign

Resign old commits

2021-04-26 20:52:37 286

原创 关于Titandb Ratelimiter 失效问题的一个bugfix

Ratelimiter 在titandb Flush/GC 生成blobfiled的过程中无法生效

2021-04-24 16:31:26 84

原创 Rocksdb 通过ingestfile 来支持高效的离线数据导入

ingest file方式导入数据,减少系统cpu/io/memory 资源开销

2021-04-17 18:41:35 582 2

原创 TitanDB GC详细实现原理 及其 引入的问题

tiandb 的 实现细节 及其 引入的问题,提出了一些适用场景。欢迎讨论交流。

2021-04-16 00:28:04 306

转载 一图带你入门Linux 存储I/O栈

发现了一个内核大佬 的 Linux 存储I/O栈,很清晰!!!原地址如下:http://ilinuxkernel.com/?p=1559【侵删】

2021-04-14 21:32:25 141

分部署存储 技能树.svg

分布式存储技能图谱,较为全面的分布式存储技能学习路线。 建域本人接触分布式存储系统中的ceph开源分布式存储较多,所以关于具体的分布式系统主要偏向于ceph的技能; 除此之外,其他的技能基本是一个好得分布式开发工程师通用的技能路线;依据该路线,我们仅仅是有一个学习的广度拓展,至于深度拓展仍需要各位看官自己评估

2019-12-06

systemtap beginner guide

systemtap基本介绍 以及 用户态探针基本用法,内核态探针基本用法,一些报错异常处理 还有非常多的基本案例,适合内核调试入门

2020-12-15

找回以前的微信账号登陆的博客

发表于 2017-04-12 最后回复 2017-04-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

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