常见的分布式存储系统(HDFS、Ceph、Swift、HBase) 常见的分布式存储系统(HDFS、Ceph、Swift、HBase)在实习中接触到了很多分布式存储相关产品, 这一块知识不够系统, 跟着相关文档和论文梳理一下 分布式存储常见架构 中心控制节点架构 HDFS是典型代表(我认为SMH也是类似架构, 有一个元数据管理中心) NameNode用于存放管理的元数据, DataNode用于存放实际数据 NN中记录了文件/数据在哪个DN上, NN一 2025-10-10 工具与框架 #Distributed Storage #HDFS #Ceph #Swift #HBase
RocksDB事务机制 RocksDB事务机制官方文档 RocksDB使用TransactionDB/OptimisticTransactionDB支持事务功能, 提供了BEGIN/COMMIT/ROLLBACK API TransactionDB: 基于悲观的并发机制, 所有写入的key都会被内部锁定以执行冲突检测, 如果无法锁定则返回错误, 只要DB可以写入则保证写入成功, 有一下三种 2025-09-25 代码分析 #RocksDB #KV store #LSM-tree #Transaction
RocksDB的Compaction Picker分析 RocksDB Compaction Picker分析相关头文件: compaction_picker.h, compaction_picker_level.h, version_set.h 抽象类CompactionPicker 触发条件: 当NeedCompaction()返回ture时调用PickCompation()找到哪里需要合并, 并往哪一层合并 class CompactionPic 2025-04-25 代码分析 #RocksDB #Compaction #KV store #LSM-tree
Perf系统调优 Perf与火焰图 FlameGraph–将采样信息转为火焰图 Perf介绍与使用: 通过perf list可查看所以支持性能事件 全局性概况: perf list查看当前系统支持的性能事件;perf bench对系统性能进行摸底;perf test对系统进行健全性测试;perf stat对全局性能进行统计; 全局细节: perf top可以实时查看当前系统进程函数占用率情况;perf pr 2025-04-22 工具与框架 #Perf #FlameGraph #Tuning
频删场景下键值存储的性能优化 RocksDB Delete Heavy OptimizationRocksDB及其上层应用RocksDB – Single Delete Single Delete会当删除墓碑与对应值在合并操作对齐时同时删除, 减少中间层删除墓碑残留 然而该机制仅适用于删除键只被写入一次且无后续更新的特定场景, 需要用户明确键的写入序列及其生命周期, 并通过编码保证安全, 如果键被多次写入后调用Single D 2025-03-31 文献笔记 #RocksDB #Compaction #Flush #KV store #LSM-tree #ZNS SSD
RocksDB的Compaction/Flush分析 RocksDB关键流程Flush流程后台Flush作业 调度Flush作业流程与compaction类似: DBImpl::BGWorkFlush–>DBImpl::BackgroundCallFlush–>DBImpl::BackgroundFlush–>DBImpl::FlushMemTablesToOutputFiles–>DBImpl::FlushMemTableT 2024-12-17 代码分析 #RocksDB #Compaction #Flush #KV store #LSM-tree
NVMe规范与技术细节 NVMe技术细节 NVMe技术细节 1 NVMe技术概述 2 队列管理 Queue Manage 3 命令仲裁机制 Arbitration 4 寻址模型PRP和SGL解析 mq-deadline调度器原理 参考自编程随笔NVMe专题 1 NVMe技术概述 AHCI: Serial ATA Advanced Host Controller Interface, 串行ATA高级主机主控接口 AH 2024-12-05 技术调研 #NVMe
Golang学习笔记 Golang3 Go语言进阶与依赖管理并发 线程: 内核态, 线程跑多个协程, 栈空间MB级 协程: 用户态, 轻量级线程, 栈空间KB级 channel 通道: make(chan 元素类型, [缓冲大小(>=2为有缓冲通道)]) lock 并发安全: sync.Mutex定义互斥锁 WaitGroup 等待组: sync.WaitGroup定义等待组, Add(delta ui 2024-11-10 工具与框架 #golang
GNU Make与CMake CMake和MakeMake与Makefile基本结构与规则1234target ... : prerequisites ... recipe ... ... target: 可以是目标文件、可执行文件或者标签 prerequisites:生成对应target对应的文件或者其他target recipe:生成target的命令,可以是任意的shell命令 变量:通过va 2024-09-26 工具与框架 #c/c++ #CMake #Make
NVMeVirt模拟ZNS SSD NVMeVirt模拟ZNS搭建步骤服务器上ZenFS的依赖已经完备,直接开装 1 ZenFS和RocksDB安装使用最新版本的RocksDB和ZenFS时,安装报错(如issue#288所示),原因时新版本的RocksDB更换了API而ZenFS未适配,使用RocksDB 8.11.3可以解决,直接按照README即可 12345git clone https://github.com/faceb 2024-06-10 工具与框架 #RocksDB #Compaction #Flush #KV store #LSM-tree #ZNS SSD #NVMe