RocksDB 写入流程详解

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
RDS PostgreSQL Serverless,0.5-4RCU 50GB 3个月
推荐场景:
对影评进行热评分析
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 最初的写入流程,继承自 leveldb,多个 写线程组成一个 group, leader 负责 group 的 WAL 及 memtable 的提交,提交完后唤醒所有的 follwer,向上层返回。 支持 allow_concurrent_memtable_write 选项,在1的基础上,leader 提交完 WAL 后,group 里所有线程并发写 memtable。
  • 最初的写入流程,继承自 leveldb,多个 写线程组成一个 group, leader 负责 group 的 WAL 及 memtable 的提交,提交完后唤醒所有的 follwer,向上层返回。
  • 支持 allow_concurrent_memtable_write 选项,在1的基础上,leader 提交完 WAL 后,group 里所有线程并发写 memtable。原理如下图所示,这个改进在 sync=0的时候,有3倍写入性能提升,在 sync=1时,有2倍性能提升,参考Concurrent inserts and the RocksDB memtable
  • 支持 enable_pipelined_write 选项,在2的基础上,引入流水线,第一个 group 的 WAL 提交后,在执行 memtable 写入时,下一个 group 同时开启,已到达 Pipeline 写入的效果。

_2018_01_29_11_33_08

相关文章
|
10月前
|
存储 NoSQL 关系型数据库
RocksDB 事务实现和应用场景
RocksDB 事务实现和应用场景
|
Java 关系型数据库 MySQL
RocksDB TransactionDB事务实现分析
## 基本概念 #### 1. LSN (log sequence number) RocksDB中的每一条记录(KeyValue)都有一个LogSequenceNumber(后面统称lsn),从最初的0开始,每次写入加1。该值为逻辑量,区别于InnoDB的lsn为redo log物理写入字节量。 这个lsn在RocksDB内部的memtable中是`单调递增`的,在WriteA
4440 0
|
关系型数据库 Java MySQL
RocksDB事务实现TransactionDB分析
本文主要对RocksDB中事务实现TransactionDB做分析,设计事务并发、隔离级别、MVCC等实现细节
9418 0
|
10月前
|
存储 SQL 缓存
|
存储 分布式计算 Hadoop
分布式数据库HBase的重要机制和原理的读/写流程
HBase是一个分布式数据库系统,基于Google的BigTable和Apache Hadoop的HDFS构建。它提供了一个高性能、可扩展的数据库平台,适用于大规模的数据存储和处理。在阿里云开发者社区中,很多开发者都会使用HBase进行数据存储和处理。本文将介绍HBase的读/写流程。
200 0
|
存储 关系型数据库 MySQL
浅析 TiDB 二阶段提交
浅析 TiDB 二阶段提交
556 0
浅析 TiDB 二阶段提交
|
存储 负载均衡 数据中心
带你读《存储漫谈:Ceph原理与实践》——3.2.5 元数据 / 数据同步
带你读《存储漫谈:Ceph原理与实践》——3.2.5 元数据 / 数据同步
|
索引 存储 Java
|
10月前
|
存储 算法 NoSQL
TiKV的底层存储机制
【2月更文挑战第27天】本章节将详细解析TiKV的底层存储机制,深入探讨TiKV如何利用RocksDB和Raft协议等核心技术实现数据的持久化、复制和一致性保证。通过理解TiKV的底层存储原理,读者将能够更深入地掌握其高性能、高可用性的实现方式。
|
算法
分布式基础,啥是两阶段提交?
给自己定了一个目标,用通俗的语言把Paxos讲懂。
1700 0