more interesting questions

Signed-off-by: Alex Chi <iskyzh@gmail.com>
This commit is contained in:
Alex Chi
2024-05-21 23:47:50 -04:00
parent 7d69cab60b
commit 14518aa7a8
4 changed files with 5 additions and 0 deletions

View File

@@ -119,6 +119,7 @@ You can implement helper functions like `range_overlap` and `key_within` to simp
* What happens if a user requests to delete a key twice?
* How much memory (or number of blocks) will be loaded into memory at the same time when the iterator is initialized?
* Some crazy users want to *fork* their LSM tree. They want to start the engine to ingest some data, and then fork it, so that they get two identical dataset and then operate on them separately. An easy but not efficient way to implement is to simply copy all SSTs and the in-memory structures to a new directory and start the engine. However, note that we never modify the on-disk files, and we can actually reuse the SST files from the parent engine. How do you think you can implement this fork functionality efficiently without copying data? (Check out [Neon Branching](https://neon.tech/docs/introduction/branching)).
We do not provide reference answers to the questions, and feel free to discuss about them in the Discord community.