vinyl: implement single memory level
- In-memory trees are now created per index, not per range as before. - Dump is scheduled per index and writes the whole in-memory tree to a single run file. Upon completion it creates a slice for each range of the index. - Compaction is scheduled per range as before, but now it doesn't include in-memory trees, only on-disk runs (via slices). Compaction and dump of the same index can happen simultaneously. - Range split, just like coalescing, is done immediately by creating new slices and doesn't require long-term operations involving disk writes.
Showing
- src/box/vinyl.c 730 additions, 1051 deletionssrc/box/vinyl.c
- src/box/vy_run.c 33 additions, 0 deletionssrc/box/vy_run.c
- src/box/vy_run.h 13 additions, 0 deletionssrc/box/vy_run.h
- src/errinj.h 1 addition, 2 deletionssrc/errinj.h
- test/box/errinj.result 6 additions, 8 deletionstest/box/errinj.result
- test/vinyl/cache.result 0 additions, 2 deletionstest/vinyl/cache.result
- test/vinyl/cache.test.lua 0 additions, 2 deletionstest/vinyl/cache.test.lua
- test/vinyl/coalesce.result 2 additions, 10 deletionstest/vinyl/coalesce.result
- test/vinyl/coalesce.test.lua 2 additions, 8 deletionstest/vinyl/coalesce.test.lua
- test/vinyl/errinj.result 4 additions, 4 deletionstest/vinyl/errinj.result
- test/vinyl/errinj.test.lua 2 additions, 2 deletionstest/vinyl/errinj.test.lua
Loading
Please register or sign in to comment