Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master

Jan 21, 2012

  1. Kresten Krab Thorup

    Merge pull request #8 from jlouis/qc-sync-range

    Qc sync range
    krestenkrab authored
  2. Jesper Louis Andersen

    Fix a bug in lsm_tree:close/1.

    There is a race condition based on the monitor set in a call. We might
    get a normal exit from the monitor message deep inside gen_server.
    This has to be handled. I've seen this race in my QC tests.
    authored
  3. Jesper Louis Andersen

    Make the sync_range call test work.

    Currently, we are also synchronizing all the key collection in the
    call. But in the future we might want to interleave that with other
    operations.
    authored
  4. Jesper Louis Andersen

    Build a record for the trees.

    This is a needed step to support range-queries since we may collect
    range queries at a later time, interleaved with the normal operations.
    authored
  5. Jesper Louis Andersen

    Provide a target for an eunit_console.

    authored

Jan 20, 2012

  1. Kresten Krab Thorup

    Make proper range fold in nursery

    krestenkrab authored
  2. Kresten Krab Thorup

    Make close/1 resilient to noproc

    Getting noproc exceptions here is ok, we simply
    ignore such errors.
    krestenkrab authored
  3. Kresten Krab Thorup

    Use ?BTREE_SIZE macro everywhere

    krestenkrab authored
  4. Kresten Krab Thorup

    Finish renaming lsm_btree_merger2

    krestenkrab authored
  5. Kresten Krab Thorup

    Rename merger2 -> merger

    krestenkrab authored
  6. Kresten Krab Thorup

    Remove unused merger

    krestenkrab authored

Jan 19, 2012

  1. Kresten Krab Thorup

    Use ?TOMBSTONE macro everywhere

    krestenkrab authored
  2. Kresten Krab Thorup

    Add both sync and async range fold

    Sync blocks insert/lookup while doing a range
    query, but still buffers the results in a
    per-range query process.  
    
    Async fold runs on a hard link copy of the
    underlying tree data.
    
    This commit and also fixes a number of bugs 
    related to folding; it was not taking nursery 
    data into account.
    krestenkrab authored
  3. Kresten Krab Thorup

    Make lsm_btree:close/1 stop more processes

    Closing a tree did not stop ongoing merge
    processes beyond the current top level.
    Now close synchronously calls down through all
    levels and closes each one.
    krestenkrab authored
  4. Kresten Krab Thorup

    Update readme

    krestenkrab authored
  5. Kresten Krab Thorup

    Close trees before cleanup

    Problem is that we sometimes get errors resulting
    from files being written as a result of pending
    merges.  Closing a tree should stop all such
    file-level activity.
    krestenkrab authored

Jan 16, 2012

  1. Kresten Krab Thorup

    Rename lsm_btree:range/3 to lsm_btree:async_range/3

    krestenkrab authored

Jan 15, 2012

  1. Erik Søe Sørensen

    Clarify level handling in writer.

    eriksoe authored krestenkrab committed
  2. README: Explain 'LSM' and provide link to paper.

    Erik Søe Sørensen authored krestenkrab committed
  3. Kresten Krab Thorup

    Implement lsm_btree:fold_range/5

    First implementation of range fold
    
    Range folding doesn't prohibit insert/lookup or
    merge operations, but each level can only have
    one range fold operation active.
    
    Thus, worst case active range folds can double
    space requirements, because it holds hard-linked
    copies of used btree files.
    krestenkrab authored

Jan 11, 2012

  1. Kresten Krab Thorup

    Bugfix merged in basho/ebloom

    so we can go back to depending on basho/ebloom
    krestenkrab authored

Jan 10, 2012

  1. Kresten Krab Thorup

    Improve nursery handling

    - 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
    krestenkrab authored

Jan 08, 2012

  1. Kresten Krab Thorup

    Merge branch 'statem-failing-lookups' of https://github.com/jlouis/ls…

    krestenkrab authored

Jan 07, 2012

  1. Jesper Louis Andersen

    Optimize open dict check.

    A dict is open and with keys if its size is greater than 0. Go through
    the dicts one by one with lists:any/2 and use that to optimize the
    check. Ought to run faster than traversing the full set.
    authored
  2. Jesper Louis Andersen

    Implement failing key lookup.

    We generate a set of names that are highly unlikely to be in the tree
    as well because this makes it way easier for the ?SUCHTHAT macro to
    succeed.
    authored
  3. Jesper Louis Andersen

    Work on failing keys. Optimize generator.

    To make failing keys work we must be able to produce a key in fewer
    failures then currently. So encode the picker for non-empty trees
    directly so it is much faster and doesn't try to do it by generating a
    case and then asking "is this one good enough?". A simple
    dict:filter/2 does it.
    authored
  4. Jesper Louis Andersen

    Implement failing lookups in the driver.

    authored
  5. Kresten Krab Thorup

    Minor typo

    krestenkrab authored
  6. Kresten Krab Thorup

    Update REAME

    krestenkrab authored
  7. Kresten Krab Thorup

    Rename modules fractal_btree -> lsm_btree

    krestenkrab authored
  8. Kresten Krab Thorup

    Rename fractal_btree -> lsm_btree, phase I

    krestenkrab authored
  9. Kresten Krab Thorup

    Add option to test with 'TRIQ' or 'PROPER'

    krestenkrab authored
  10. Kresten Krab Thorup

    Add close to shame tests

    krestenkrab authored
  11. Kresten Krab Thorup

    Allow put(Key, Binary|'deleted')

    Last missing piece to make delete work it seems
    krestenkrab authored
  12. Kresten Krab Thorup

    Remove warning

    krestenkrab authored
Something went wrong with that request. Please try again.