Replies: 1 comment
-
I prefer to have |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
The current update and delete implementation method is called copy-on-write. Regardless of how the block's data is modified, its contents are copied out and then changed on the new block, without making changes to the original block. It reads the data directly from the latest block without any other operations, so the query performance is optimal, but the cost of writing is very high and it is not suitable for real-time update scenario.
Thanks to @sundy-li for the suggestion. We get another method called mark-delete and insert. Introduce delete bitmap to record the deleted data in each block. The bitmap records the row number of the deleted record in this block. After finding a record and adding a delete mark, the update records can be inserted into the new block as new data. Just need to use the delete bitmap to filter out deleted data when reading. Add the ability to delete rows that have been marked for deletion to
compaction
.Compared with copy-on-write, mark-delete and insert will have a slightly lower read performance, but a larger write performance improvement.
#9618
Beta Was this translation helpful? Give feedback.
All reactions