...
- Proxy receives a delete request
- parse `expr` to get primary keys, then split DeleteMsg into insert channels by primary keys (done)
- DataNode watches insert channel
- receive DeleteMsg and persist delete data
- when DataNode start up, load all segments info from Minio into memory (done)
- update datanode flowgraph
- when DDNode receive DeleteMsg, save it into FlowGraphMsg structure, and send FlowGraphMsg to next node InsertBufferNode (done)
- when InsertBufferNode receive FlowGraphMsg, process InsertMsg in it, then wrapper DeleteMsg into another FlowGraphMsg and sent it to next node DeleteNode (done)
- when DeleteNode receive FlowGraphMsg, process DeleteMsg in it, save deleted ids and timestamps into delBuf (done)
- update DeleteNode to handle flushMsg
- add another flushChan for DeleteNode (done)
- when DeleteNode receive flushMsg, save all data in delBuf into Minio
- deleted ids and timestamps are saved into two separated Minio file with name "/by-dev/deltalog/collectionID/partitionID/segmentID/xxx" (done)
- DataNode forwards ttMsg and DeleteMsg to delta channel (doing)
- receive DeleteMsg and persist delete data
Proposal delete operation serving search(sealed+growing)
...