Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: pevm-crc-check
Commits on Mar 8, 2013
  1. Evan Vigil-McClanahan
Commits on Mar 7, 2013
  1. Evan Vigil-McClanahan
  2. Evan Vigil-McClanahan

    - restructure the hintfile fold loop to not do an extra destructure

    evanmcc authored
    per loop invocation
     - move some errors into other clauses for clarity
  3. Evan Vigil-McClanahan

    Using an empty fold as a validity check is expensive, write some

    evanmcc authored
    code to do the check (which should also warm the cache).
    
    benches at ~120s -> ~70s so far.
Commits on Mar 5, 2013
  1. Scott Lystig Fritchie

    Merge pull request #74 from basho/jdb-fix-travis-failure

    slfritchie authored
    Fix Travis CI failure of multiple_merges_during_fold_test
    
    After many intermittent timing failures over in TravisCI land, we have this:
    
        BUILD PASSED: [bitcask jdb-fix-travis-failure:771c92d] by Scott Lystig Fritchie https://travis-ci.org/basho/bitcask/builds/5266676
  2. Scott Lystig Fritchie
  3. Scott Lystig Fritchie
Commits on Feb 8, 2013
  1. Jared Morrow

    Merge branch '1.6'

    jaredmorrow authored
Commits on Feb 6, 2013
  1. Joseph Blomstedt
  2. Joseph Blomstedt

    Make Bitcask I/O mode configurable: Erlang vs NIF

    jtuple authored
    The recent changes to revert Bitcask to using pure Erlang file I/O
    have lead to noticeable performance regressions in certain workloads.
    This change makes the file mode configurable, setting the default to
    the previous NIF-based approach. Users can switch to the Erlang-based
    I/O mode if they run into situations where the NIF-approach leads to
    scheduler collapse.
    
    The option is determined based on the Bitcask application variable
    'io_mode'. When missing or set to 'nif', the NIF-approach is used.
    When set to 'erlang', standard Erlang efile is used.
Commits on Jan 29, 2013
  1. Jared Morrow

    Roll bitcask version 1.6.0

    jaredmorrow authored
Commits on Dec 3, 2012
  1. Joseph Blomstedt

    Fix Travis CI failure of multiple_merges_during_fold_test

    jtuple authored
    The environment that Travis runs test under unfortunately does not
    immediately pick up the expected number of files to merge for the
    different merge operations in the multiple_merges_during_fold_test.
    This commit changes the test to re-try merging until the expected
    result is seen (or eventually have the test timeout).
  2. Joseph Blomstedt

    Merge branch 'jdb-avoid-file-nifs'

    jtuple authored
    Conflicts:
    	test/bitcask_timeshift.erl
  3. Joseph Blomstedt
  4. Joseph Blomstedt
Commits on Nov 29, 2012
  1. Joseph Blomstedt
  2. Joseph Blomstedt
  3. Joseph Blomstedt
Commits on Nov 28, 2012
  1. Joseph Blomstedt
  2. Joseph Blomstedt

    Use Erlang file I/O from dedicated procs rather than NIFs

    jtuple authored
    Bitcask previously used raw file I/O to read/write files. However, since
    raw file I/O uses a non-optimized selective receive to wait for a reply
    back from the efile driver, this approach had numerous problems when
    Bitcask was used within processes with many incoming messages (such as how
    Bitcask is used in Riak).
    
    In commit 79d5eb3, NIFs were introduced
    to solve this problem. The file I/O NIFs would block the Erlang scheduler,
    but solve the issue encountered with selective receive. Unfortunately,
    using blocking NIFs is much worse than originally thought. Thus, NIFs are
    not the right solution to this problem.
    
    This commit changes Bitcask to once again use Erlang's built-in file I/O,
    but now wraps each open file in a separate gen_server that interacts with
    the raw port. The original process now waits on a gen_server reply which
    uses an optimized selective receive, while the file process handles the
    unoptimized selective receive from the port driver. In our usage, the file
    process only has a single request outstanding, and therefore does not run
    into the selective receive issue.
Commits on Nov 27, 2012
  1. Scott Lystig Fritchie
  2. Scott Lystig Fritchie
Commits on Nov 16, 2012
  1. Scott Lystig Fritchie

    Merge pull request #70 from basho/slf-dialyzer20121116

    slfritchie authored
    Clear all Dialyzer warnings
  2. Scott Lystig Fritchie

    Remove type inference cruft

    slfritchie authored
  3. Scott Lystig Fritchie

    Minimal changes to get zero Dialyzer warnings

    slfritchie authored
    Nice to see that Dialyzer caught a bug from parallel development,
    adding the is_empty_estimate/1 function, and today's merge of
    the new QuickCheck model.
  4. Scott Lystig Fritchie
  5. Scott Lystig Fritchie
  6. Scott Lystig Fritchie

    Add usage example to comments at top of Run-eunit-loop.expect

    slfritchie authored
    For the record, the versions of QuickCheck & PULSE that I
    was using for this testing:
    
    * QuickCheck 1.27.2
    * PULSE 1.27.2
    * git://github.com/Quviq/pulse_otp.git
      commit dff6ea12af94c0320d4a5beabc16a1fa50abf688
      Author: Hans Svensson <hanssv@gmail.com>
      Date:   Mon Aug 27 15:42:43 2012 +0200
Commits on Nov 15, 2012
  1. Scott Lystig Fritchie
  2. Scott Lystig Fritchie
  3. Scott Lystig Fritchie
  4. Scott Lystig Fritchie
  5. Scott Lystig Fritchie
Commits on Nov 14, 2012
  1. Scott Lystig Fritchie

    Merge pull request #66 from basho/slf-crc-error-spam

    slfritchie authored
    Fix log spam introduced by branch 'gh62-badrecord-mstate'
  2. Scott Lystig Fritchie
Something went wrong with that request. Please try again.