This change makes incremental merge be concurrent
with filling up the nursery. So in stead of waiting
for an incremental merge to complete before returning
from insert, it
- blocks waiting for a possible previous incremental merge to complete
- issues a new incremental merge.
This improves put latencies, but not throughput.
This slows down insert to be log2(N), where N is
the total number of objects in the store. The upside
is that it also removes the terrible worst case
scenarios for insert.
* Added copyright notices to files
* Added Apache 2.0 License file with permission from Kresten/Trifork
* Changed the handle from "Db" to "Tree" because... it made me feel better
* Other minor changes here and there
This allows specifying ranges with from/to
being inclusive or not, and providing a result
limit (latter not implemented yet).
This change just makes all current tests pass.
- Code moved to separate module
- Recovery now operational; re-opening a
tree will actually read the nursery log.
We use a sequential log file for the nursery
and also keep inserted {K,V} in memory
only 32 K/V pairs at a time.
NURSERY_SIZE = (1 bsl TOP_LEVEL)
configured in src/lsm_btree.htl