本章目标
读完本章,你应该能够回答下面几个问题:
- Insert、Upsert、Delete 为什么都属于 DML 写入链路。
- Proxy 接收到写入请求后,如何进入
dmQueue。 - Insert 的字段数据、RowID、timestamp、主键和 partition key 是在哪里处理的。
- Proxy 如何获取 CollectionID、PartitionID、VChannel。
- Insert 如何按主键、namespace 或 partition key 把行分配到 VChannel 和 Partition。
repackInsertDataForStreamingService如何把用户行数据转换成 StreamingMutableMessage。- Delete 为什么不是把表达式直接写入 WAL,而是写入主键 tombstone。
- Upsert 为什么会拆成 Insert message 和 Delete message。
streaming.WAL().AppendMessages的调用边界是什么。- StreamingNode 写 WAL 前还会做哪些事情,例如 TimeTick、锁、segment assignment。
- 写入返回的
Timestamp为什么能服务 session consis