CloudJump III 提出引擎集成分层存储方案,将数据放置决策融入存储引擎,利用页类型、存活时间等元信息优化冷热数据分布。通过BPE缓存准入策略、OSS Buffer写合并及快照版本协议,实现性能稳定、成本优化和零停机备份,显著提升单位成本性能。
本文介绍了如何从零开始实现LSM-Tree存储引擎,涵盖日志、MemTable、SSTable、Bloom Filter和Compaction等核心概念,并提供完整的C代码、架构图和数学推导,深入探讨LSM-Tree的设计哲学及其在数据库中的应用。
本文介绍WiredTiger作为MongoDB默认存储引擎的内核机制,定位为文档库页式B-Tree加旁路History Store,与PG/InnoDB、SQLite、RocksDB等分工明确。文章规划17篇系列,涵盖Session、Cache、Eviction、Reconciliation、Timestamps、Checkpoint等核心流程,并指出脏页须先reconcile才能驱逐,HS体积受更新率与窗口影响,为后续深入解析奠定框架。
本文介绍WiredTiger存储引擎的Block Manager子系统。每个数据文件由若干块组成,采用无覆盖分配策略,重写时写入新位置。块通过address cookie寻址,包含偏移、大小和校验和。分配使用best fit或first fit策略,checkpoint维护alloc、avail、discard三张extent列表管理空间。写入时计算校验和,支持压缩。旧checkpoint删除后块才可复用。
本文介绍MongoDB手册中WiredTiger存储引擎的运维参数映射:缓存大小、约60秒检查点、日志与历史窗口等旋钮对应内核机制;列出数据目录关键文件(.wt、WiredTigerHS.wt、日志等);明确不展开复制集、分片等边界;强调调参前需回看机制篇,避免误操作。
本文对比PostgreSQL、InnoDB、RocksDB和WiredTiger四种存储引擎,从缓存、脏页、WAL、MVCC落点、旧版本回收及故障形态等维度列出机制对照表,强调机制与代价而非性能排名。指出WiredTiger区分内存与磁盘页,HS存储旧版本,并提醒避免跨引擎类比运维参数,为选型提供参考。
本文为WiredTiger内核系列终篇,提供选型决策树:文档模型且需MongoDB生态选WiredTiger;否则按需选PG/InnoDB、SQLite或RocksDB。同时回收开放问题,给出17篇阅读地图,强调脏页需reconcile、旧版进History Store,并指出选WT应基于文档生态而非性能承诺。
本文介绍WiredTiger内核系列文章,涵盖MongoDB默认引擎的MVCC实现路径,包括Cache、Eviction、Reconciliation、History Store和Checkpoint等核心机制。系列共17篇,从Session/Cursor到选型对照,重点解析更新链、脏页驱逐、旧快照读取及崩溃恢复,并对比PG、InnoDB、RocksDB等引擎,为运维和架构师提供完整技术参考。
本文探讨了FoundationDB的存储引擎,重点比较了Redwood与SQLite派生引擎的区别。Redwood通过多版本B-Tree和前缀压缩技术,提高了吞吐量并降低了写放大。文章指出,存储引擎的选择不会影响分布式事务的隔离性,且引擎切换需谨慎。整体而言,Redwood在设计上弥补了SQLite引擎的不足,适应了更复杂的工作负载需求。
RobustMQ Kafka 是基于 RobustMQ 内核的 Kafka 协议兼容层,允许标准 Kafka 客户端直接连接。其设计理念为“一份数据、多协议视图”,实现了 Kafka 与 MQTT 共享同一存储和元数据。系统通过 Raft Leader 进行协调,不使用 ZooKeeper,存储引擎采用文件段方式,支持高效读写。
本文总结了RocksDB的内核机制,探讨了存储引擎的选择决策树,包括OLTP、OLAP和湖仓等场景。RocksDB适合写密集型负载,适用于Flink、TiKV等嵌入式应用。文章对比了RocksDB与InnoDB、列存和湖仓的特点,指出各自的适用场景和优化方向,并提供了存储栈和数据平台的阅读地图,以帮助读者理解不同存储引擎的关系与应用。
本文为InnoDB存储引擎内核系列文章,共20章,系统讲解其架构、MVCC、锁机制、崩溃恢复、复制等核心机制,并与PostgreSQL进行对比。文章提供阅读路径、目录及故障排查方法,旨在帮助工程师深入理解MySQL与PostgreSQL的设计差异。
B+树和LSM树是两种主要的数据结构,分别代表原地更新和追加写入的存储方式。B+树优化读取和空间,但写放大较高;LSM树优化写入,但读取和空间放大较高。RUM猜想表明,无法在读、写和空间放大上同时达到最优。B+树适合OLTP场景,而LSM树在写入密集型应用中表现更好。选择存储引擎时需考虑具体应用需求。
自1972年提出以来,B-tree成为数据库和文件系统的核心数据结构,因其与磁盘I/O模型的契合而减少随机读次数,查找效率高,适合大规模数据。B+tree是其变体,优化了范围查询和并发控制。节点分裂与合并是保持平衡的关键操作。现代存储引擎如InnoDB和PostgreSQL基于B-tree,适应硬件演进,继续发挥重要作用。
多模持久化是一种架构策略,根据不同数据需求选择合适的存储引擎。随着业务增长,单一数据库难以满足多样化需求,导致性能瓶颈。本文探讨了CAP定理与PACELC模型在数据库选型中的应用,分析了五种主流存储引擎的适用场景及局限性,并以Uber的案例展示了从Postgres迁移到MySQL+Schemaless的过程及教训,强调根据业务需求灵活选择存储引擎的重要性。
时序数据库(TSDB)专为处理大量时序数据而设计,传统关系型数据库难以应对。时序数据按时间顺序记录,写入频繁、读取稀少。本文分析了时序数据的特征、编码压缩原理、存储引擎设计及降采样策略,并对主流TSDB(如InfluxDB、Prometheus、TimescaleDB)进行了架构对比,为监控与物联网场景提供参考。
MySQL的插件式存储引擎架构支持多种存储引擎,主要包括默认的InnoDB(适合OLTP)和专为OLAP设计的DuckDB。DuckDB与MySQL兼容,提升查询性能并降低存储成本。
本文比较了MySQL中的两种存储引擎:InnoDB和MyISAM。InnoDB支持事务、行级锁和外键,适合高并发场景;MyISAM性能优越,但不支持事务和行级锁,适合查询频繁的场景。选择存储引擎应根据具体业务需求。
Datadog推出了Monocle,这是一款用Rust编写的实时时间序列存储引擎,统一了指标存储基础设施,提升了数据摄取速度和查询效率,简化了操作,同时解决了存储架构的并发和扩展性问题,提供了更高的性能和成本效益。
本文探讨内存映射I/O(mmap)在数据库存储引擎中的应用,重点分析LMDB架构:通过mmap实现零拷贝读取,采用写时复制B+Tree和双元数据页保证事务与崩溃安全,无需WAL和Buffer Pool。文章对比BoltDB和BadgerDB,指出mmap存在TLB压力、页缺失延迟不可预测、I/O错误难处理等局限,适合读密集、中小规模场景,写密集或大库则需考虑Buffer Pool方案。
完成下面两步后,将自动完成登录并继续当前操作。