memtable中是skiplist,本来是有序的。
memtable转成immutable memtable后就不能写了。
然后immutable memtable刷L0的时候,导致有重叠。
然后compact到l1的时候,再把重叠的搞成有序的。
大概是这样:
memtable: key1–key5
转换成
immutablememtable1: key1–key5
过了一会儿,又写了个memtable: key3–key6
然后又转成了immutable memtable2:key3–key6
然后flush成l0的sst,就成了2个sst: key1–key5 key3–key6
然后l0再compact到l1
就变成了 key1-key6了。
明白了吗小伙砸?