1. 29 11月, 2012 1 次提交
    • A
      Fix all the lint errors. · d29f1819
      Abhishek Kona 提交于
      Summary:
      Scripted and removed all trailing spaces and converted all tabs to
      spaces.
      
      Also fixed other lint errors.
      All lint errors from this point of time should be taken seriously.
      
      Test Plan: make all check
      
      Reviewers: dhruba
      
      Reviewed By: dhruba
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D7059
      d29f1819
  2. 20 10月, 2012 1 次提交
    • D
      This is the mega-patch multi-threaded compaction · 1ca05843
      Dhruba Borthakur 提交于
      published in https://reviews.facebook.net/D5997.
      
      Summary:
      This patch allows compaction to occur in multiple background threads
      concurrently.
      
      If a manual compaction is issued, the system falls back to a
      single-compaction-thread model. This is done to ensure correctess
      and simplicity of code. When the manual compaction is finished,
      the system resumes its concurrent-compaction mode automatically.
      
      The updates to the manifest are done via group-commit approach.
      
      Test Plan: run db_bench
      1ca05843
  3. 04 10月, 2012 1 次提交
    • D
      An configurable option to write data using write instead of mmap. · c1006d42
      Dhruba Borthakur 提交于
      Summary:
      We have seen that reading data via the pread call (instead of
      mmap) is much faster on Linux 2.6.x kernels. This patch makes
      an equivalent option to switch off mmaps for the write path
      as well.
      
      db_bench --mmap_write=0 will use write() instead of mmap() to
      write data to a file.
      
      This change is backward compatible, the default
      option is to continue using mmap for writing to a file.
      
      Test Plan: "make check all"
      
      Differential Revision: https://reviews.facebook.net/D5781
      c1006d42
  4. 25 9月, 2012 1 次提交
    • D
      The BackupAPI should also list the length of the manifest file. · ae36e509
      Dhruba Borthakur 提交于
      Summary:
      The GetLiveFiles() api lists the set of sst files and the current
      MANIFEST file. But the database continues to append new data to the
      MANIFEST file even when the application is backing it up to the
      backup location. This means that the database-version that is
      stored in the MANIFEST FILE in the backup location
      does not correspond to the sst files returned by GetLiveFiles.
      
      This API adds a new parameter to GetLiveFiles. This new parmeter
      returns the current size of the MANIFEST file.
      
      Test Plan: Unit test attached.
      
      Reviewers: heyongqiang
      
      Reviewed By: heyongqiang
      
      Differential Revision: https://reviews.facebook.net/D5631
      ae36e509
  5. 20 9月, 2012 1 次提交
    • D
      Allow a configurable number of background threads. · 9e84834e
      Dhruba Borthakur 提交于
      Summary:
      The background threads are necessary for compaction.
      For slower storage, it might be necessary to have more than
      one compaction thread per DB. This patch allows creating
      a configurable number of worker threads.
      The default reamins at 1 (to maintain backward compatibility).
      
      Test Plan:
      run all unit tests. changes to db-bench coming in
      a separate patch.
      
      Reviewers: heyongqiang
      
      Reviewed By: heyongqiang
      
      CC: MarkCallaghan
      
      Differential Revision: https://reviews.facebook.net/D5559
      9e84834e
  6. 17 9月, 2012 1 次提交
  7. 15 9月, 2012 1 次提交
    • M
      Remove use of mmap for random reads · 33323f21
      Mark Callaghan 提交于
      Summary:
      Reads via mmap on concurrent workloads are much slower than pread.
      For example on a 24-core server with storage that can do 100k IOPS or more
      I can get no more than 10k IOPS with mmap reads and 32+ threads.
      
      Test Plan: db_bench benchmarks
      
      Reviewers: dhruba, heyongqiang
      
      Reviewed By: heyongqiang
      
      Differential Revision: https://reviews.facebook.net/D5433
      33323f21
  8. 14 9月, 2012 2 次提交
  9. 13 9月, 2012 1 次提交
  10. 28 8月, 2012 1 次提交
    • D
      Introduce a new method Env->Fsync() that issues fsync (instead of fdatasync). · fc20273e
      Dhruba Borthakur 提交于
      Summary:
      Introduce a new method Env->Fsync() that issues fsync (instead of fdatasync).
      This is needed for data durability when running on ext3 filesystems.
      Added options to the benchmark db_bench to generate performance numbers
      with either fsync or fdatasync enabled.
      
      Cleaned up Makefile to build leveldb_shell only when building the thrift
      leveldb server.
      
      Test Plan: build and run benchmark
      
      Reviewers: heyongqiang
      
      Reviewed By: heyongqiang
      
      Differential Revision: https://reviews.facebook.net/D4911
      fc20273e
  11. 22 8月, 2012 1 次提交
  12. 21 8月, 2012 1 次提交
    • D
      Prevent concurrent multiple opens of leveldb database. · e56b2c5a
      Dhruba Borthakur 提交于
      Summary:
      The fcntl call cannot detect lock conflicts when invoked multiple times
      from the same thread.
      Use a static lockedFile Set to record the paths that are locked.
      A lockfile request checks to see if htis filename already exists in
      lockedFiles, if so, then it triggers an error. Otherwise, it inserts
      the filename in the lockedFiles Set.
      A unlock file request verifies that the filename is in the lockedFiles
      set and removes it from lockedFiles set.
      
      Test Plan: unit test attached
      
      Reviewers: heyongqiang
      
      Reviewed By: heyongqiang
      
      Differential Revision: https://reviews.facebook.net/D4755
      e56b2c5a
  13. 30 5月, 2012 1 次提交
  14. 16 3月, 2012 1 次提交
  15. 01 11月, 2011 1 次提交
    • H
      A number of fixes: · 36a5f8ed
      Hans Wennborg 提交于
      - Replace raw slice comparison with a call to user comparator.
        Added test for custom comparators.
      
      - Fix end of namespace comments.
      
      - Fixed bug in picking inputs for a level-0 compaction.
      
        When finding overlapping files, the covered range may expand
        as files are added to the input set.  We now correctly expand
        the range when this happens instead of continuing to use the
        old range.  For example, suppose L0 contains files with the
        following ranges:
      
            F1: a .. d
            F2:    c .. g
            F3:       f .. j
      
        and the initial compaction target is F3.  We used to search
        for range f..j which yielded {F2,F3}.  However we now expand
        the range as soon as another file is added.  In this case,
        when F2 is added, we expand the range to c..j and restart the
        search.  That picks up file F1 as well.
      
        This change fixes a bug related to deleted keys showing up
        incorrectly after a compaction as described in Issue 44.
      
      (Sync with upstream @25072954)
      36a5f8ed
  16. 21 7月, 2011 1 次提交
    • G
      Speed up Snappy uncompression, new Logger interface. · 60bd8015
      gabor@google.com 提交于
      - Removed one copy of an uncompressed block contents changing
        the signature of Snappy_Uncompress() so it uncompresses into a
        flat array instead of a std::string.
              
        Speeds up readrandom ~10%.
      
      - Instead of a combination of Env/WritableFile, we now have a
        Logger interface that can be easily overridden applications
        that want to supply their own logging.
      
      - Separated out the gcc and Sun Studio parts of atomic_pointer.h
        so we can use 'asm', 'volatile' keywords for Sun Studio.
      
      
      
      
      git-svn-id: https://leveldb.googlecode.com/svn/trunk@39 62dab493-f737-651d-591e-8d6aee1b9529
      60bd8015
  17. 15 7月, 2011 1 次提交
    • G
      Small tweaks and bugfixes for Issue 18 and 19. · 6699c7eb
      gabor@google.com 提交于
      Slight tweak to the no-overlap optimization: only push to
      level 2 to reduce the amount of wasted space when the same
      small key range is being repeatedly overwritten.
      
      Fix for Issue 18: Avoid failure on Windows by avoiding
      deletion of lock file until the end of DestroyDB().
      
      Fix for Issue 19: Disregard sequence numbers when checking for 
      overlap in sstable ranges. This fixes issue 19: when writing 
      the same key over and over again, we would generate a sequence 
      of sstables that were never merged together since their sequence
      numbers were disjoint.
      
      Don't ignore map/unmap error checks.
      
      Miscellaneous fixes for small problems Sanjay found while diagnosing
      issue/9 and issue/16 (corruption_testr failures).
      - log::Reader reports the record type when it finds an unexpected type.
      - log::Reader no longer reports an error when it encounters an expected
        zero record regardless of the setting of the "checksum" flag.
      - Added a missing forward declaration.
      - Documented a side-effects of larger write buffer sizes
        (longer recovery time).
      
      
      
      git-svn-id: https://leveldb.googlecode.com/svn/trunk@37 62dab493-f737-651d-591e-8d6aee1b9529
      6699c7eb
  18. 21 5月, 2011 1 次提交
  19. 20 4月, 2011 2 次提交
  20. 19 4月, 2011 1 次提交
  21. 13 4月, 2011 1 次提交
  22. 31 3月, 2011 1 次提交
  23. 29 3月, 2011 1 次提交
  24. 22 3月, 2011 1 次提交
  25. 19 3月, 2011 1 次提交