Doris学习2: 数据分布与存储机制学习笔记

Doris 数据分布与存储机制学习笔记(简化版)

Doris底层存储引擎------基于LSM-Tree的设计

  • Memtable = 内存中的快速笔记本
  • SSTable = 磁盘上的正式文件
  • Compaction = 定期整理文件,优化存储

一、核心流程

  1. 写入流程(重点!)

数据写入 → 内存Memtable → 磁盘SSTable → Compaction合并

  1. 读取流程

查询请求 → 检查Memtable → 检查SSTable → 合并结果

二、详细解释

  1. 写入过程

Memtable:内存中的有序数据结构(像快速笔记本)

Flush:当Memtable写满后,批量写入磁盘(像把笔记本内容整理成正式文件)

SSTable:磁盘上的有序数据文件(Sorted Strings Table)

  1. Compaction合并

Minor Compaction:合并小文件,快速响应

Major Compaction:深度合并,优化存储

自动调度:后台自动执行,不影响正常使用

三、为什么这样设计?

  1. 写入快的原因

内存写入:内存速度快,像在笔记本上写字

批量Flush:一次性写入磁盘,减少IO次数

顺序写:磁盘顺序写比随机写快很多

  1. 读取时的处理

多版本合并:需要合并Memtable和SSTable的数据

布隆过滤器:快速判断数据是否存在,避免无效读取

四、带来的好处

写入性能高:适合高频写入场景

存储优化:列式存储+压缩,节省空间

高并发支持:多线程同时写入,互不干扰

五、可能的问题

读放大:读取时需要合并多个文件

写放大:Compaction过程中数据被多次重写

Compaction性能:合并过程可能影响查询

六、实际效果

写入:像在笔记本上快速记录,然后整理成正式文件

读取:需要查看笔记本和文件,然后合并结果

这种设计让Doris在写入性能和存储效率上表现出色,虽然读取需要合并,但通过多种技术手段已经很好地解决了这个问题!

相关推荐
奇树谦6 天前
《现代 Key-Value 数据库原理:从 B+Tree 到 LSM Tree》-第五篇:现代数据库横向对比
数据库·lsm-tree
奇树谦10 天前
《现代 Key-Value 数据库原理:从 B+Tree 到 LSM Tree》-第三篇:LMDB 深度解析
数据库·lsm-tree
奇树谦10 天前
《现代 Key-Value 数据库原理:从 B+Tree 到 LSM Tree》-第三篇:LMDB 深度解析二
数据库·oracle·lsm-tree
愤怒的苹果ext23 天前
Apache Superset 使用
apache·doris·bi·superset·ai bi
java_logo1 个月前
Apache Doris Docker 部署指南:实时分析数据库实战
数据库·docker·apache·doris·apache doris·轩辕镜像·docker部署doris
Faith_xzc1 个月前
Apache Doris 元数据运维深度解析:从架构原理到故障实战
大数据·运维·doris
千桐科技1 个月前
qData 数据中台开源版从 MySQL 到 Doris完成一次数据同步
大数据·mysql·开源·doris·数据中台·qdata
大数据001 个月前
画像标签系统性能优化:SelectDB 字符串解析函数实战与 Profile 深度剖析
性能优化·doris·selectdb·画像标签
ApacheSeaTunnel2 个月前
实战演示 | 基于 Apache SeaTunnel 与 Apache DolphinScheduler 实现 MySQL 到 Doris 离线定时增量同步
大数据·mysql·开源·doris·数据集成·seatunnel·数据同步