本章目标
读完本章,你应该能够回答下面几个问题:
- Insert 写入 WAL 后,为什么还要分配 Segment。
- Segment 的 Growing、Sealed、Flushed、Compacted 分别代表什么。
- StreamingNode 的 Shard interceptor 如何给 Insert 分配 growing segment。
- 没有可用 growing segment 时,为什么要异步写入
CreateSegment消息。 - Segment 什么时候会被 seal,seal policy 有哪些典型触发条件。
Flush消息为什么也要进入 WAL。- WAL flusher 如何消费 WAL,并把 Insert/Delete 数据写入对象存储。
binlog、deltalog、statslog、bm25log分别保存什么。- DataCoord 如何通过
AllocSegment和SaveBinlogPaths管理 Segment 元数据。 - RecoveryStorage、flusher、DataCoord 三者在恢复和持久化中的边界是什么。
第 10 章我们看过 Insert 如何从 Proxy 写入