Skip to content
Commits on Apr 15, 2012
  1. @krestenkrab
  2. @krestenkrab

    Add #btree_range to all fold ops

    lets you specify this for fold operations
    
      #btree_range { 
         from_key :: binary(),
         from_inclusive = true :: boolean(),
         to_key :: binary() | undefined,
         to_inclusive = false :: boolean(),
         limit = undefined :: pos_integer() | undefined
      }
    krestenkrab committed Apr 15, 2012
Commits on Mar 18, 2012
  1. Update to use latest ebloom

    Gregory Burd committed Mar 18, 2012
Commits on Jan 23, 2012
  1. @krestenkrab

    Simplify KEY_IN_RANGE macro

    krestenkrab committed Jan 23, 2012
Commits on Jan 22, 2012
  1. @krestenkrab

    Introduce btree_range record for range queries

    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.
    krestenkrab committed Jan 23, 2012
  2. @krestenkrab
  3. @krestenkrab
  4. @krestenkrab

    Merge pull request #9 from jlouis/qc-sync-fold-range

    Qc sync fold range
    krestenkrab committed Jan 22, 2012
  5. @jlouis
  6. @jlouis
Commits on Jan 21, 2012
  1. @krestenkrab

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

    Qc sync range
    krestenkrab committed Jan 21, 2012
  2. @jlouis

    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.
    jlouis committed Jan 21, 2012
  3. @jlouis

    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.
    jlouis committed Jan 21, 2012
  4. @jlouis

    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.
    jlouis committed Jan 21, 2012
  5. @jlouis
Commits on Jan 20, 2012
  1. @krestenkrab
  2. @krestenkrab

    Make close/1 resilient to noproc

    Getting noproc exceptions here is ok, we simply
    ignore such errors.
    krestenkrab committed Jan 20, 2012
  3. @krestenkrab
  4. @krestenkrab
  5. @krestenkrab

    Rename merger2 -> merger

    krestenkrab committed Jan 20, 2012
  6. @krestenkrab

    Remove unused merger

    krestenkrab committed Jan 20, 2012
Commits on Jan 19, 2012
  1. @krestenkrab
  2. @krestenkrab

    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 committed Jan 19, 2012
  3. @krestenkrab

    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 committed Jan 19, 2012
  4. @krestenkrab

    Update readme

    krestenkrab committed Jan 19, 2012
  5. @krestenkrab

    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 committed Jan 19, 2012
Commits on Jan 16, 2012
  1. @krestenkrab
Commits on Jan 15, 2012
  1. @eriksoe @krestenkrab
  2. @krestenkrab

    README: Explain 'LSM' and provide link to paper.

    Erik Søe Sørensen committed with krestenkrab Jan 8, 2012
  3. @krestenkrab

    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 committed Jan 16, 2012
Commits on Jan 11, 2012
  1. @krestenkrab

    Bugfix merged in basho/ebloom

    so we can go back to depending on basho/ebloom
    krestenkrab committed Jan 11, 2012
Commits on Jan 10, 2012
  1. @krestenkrab

    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 committed Jan 10, 2012
Commits on Jan 8, 2012
  1. @krestenkrab
Commits on Jan 7, 2012
  1. @jlouis

    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.
    jlouis committed Jan 8, 2012
  2. @jlouis

    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.
    jlouis committed Jan 7, 2012
Something went wrong with that request. Please try again.