Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Commits on Apr 15, 2012
  1. @krestenkrab
  2. @krestenkrab

    Add #btree_range to all fold ops

    krestenkrab authored
    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
      }
Commits on Mar 18, 2012
  1. Update to use latest ebloom

    Gregory Burd authored
Commits on Jan 23, 2012
  1. @krestenkrab
Commits on Jan 22, 2012
  1. @krestenkrab

    Introduce btree_range record for range queries

    krestenkrab authored
    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.
  2. @krestenkrab
  3. @krestenkrab
  4. @krestenkrab

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

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

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

    krestenkrab authored
    Qc sync range
  2. @jlouis

    Fix a bug in lsm_tree:close/1.

    jlouis authored
    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.
  3. @jlouis

    Make the sync_range call test work.

    jlouis authored
    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.
  4. @jlouis

    Build a record for the trees.

    jlouis authored
    This is a needed step to support range-queries since we may collect
    range queries at a later time, interleaved with the normal operations.
  5. @jlouis
Commits on Jan 20, 2012
  1. @krestenkrab
  2. @krestenkrab

    Make close/1 resilient to noproc

    krestenkrab authored
    Getting noproc exceptions here is ok, we simply
    ignore such errors.
  3. @krestenkrab
  4. @krestenkrab
  5. @krestenkrab

    Rename merger2 -> merger

    krestenkrab authored
  6. @krestenkrab

    Remove unused merger

    krestenkrab authored
Commits on Jan 19, 2012
  1. @krestenkrab
  2. @krestenkrab

    Add both sync and async range fold

    krestenkrab authored
    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.
  3. @krestenkrab

    Make lsm_btree:close/1 stop more processes

    krestenkrab authored
    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.
  4. @krestenkrab

    Update readme

    krestenkrab authored
  5. @krestenkrab

    Close trees before cleanup

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

    Clarify level handling in writer.

    eriksoe authored krestenkrab committed
  2. @krestenkrab

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

    Erik Søe Sørensen authored krestenkrab committed
  3. @krestenkrab

    Implement lsm_btree:fold_range/5

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

    Bugfix merged in basho/ebloom

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

    Improve nursery handling

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

    Optimize open dict check.

    jlouis authored
    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.
  2. @jlouis

    Implement failing key lookup.

    jlouis authored
    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.
Something went wrong with that request. Please try again.