Memtables are conceptually a very simple thing. You have the list of values that you were provided, as well as a skip list for searches. Complications: Memtables are meant to be used concurrently. We are going to have to have to hold all of our values in memory. And I am really not sure that I want to be doing that. When we switch between mem tables (and under write conditions, we might be doing that a lot), I want to immediately clear the used memory, not wait for the GC to kick in.