1. 17 7月, 2015 1 次提交
    • D
      Ensure Windows build w/o port/port.h in public headers · d1a45718
      Dmitri Smirnov 提交于
       - Remove make file defines from public headers and use _WIN32 because it is compiler defined
       - use __GNUC__ and __clang__ to guard non-portable attributes
       - add #include "port/port.h" to some new .cc files.
       - minor changes in CMakeLists to reflect recent changes
      d1a45718
  2. 08 7月, 2015 1 次提交
  3. 03 7月, 2015 1 次提交
    • A
      Introduce InfoLogLevel::HEADER_LEVEL · 35cd75c3
      Ari Ekmekji 提交于
      Summary:
       Introduced a new category in the enum InfoLogLevel in env.h.
       Modifed Log() in env.cc to use the Header()
       when the InfoLogLevel == HEADER_LEVEL.
       Updated tests in auto_roll_logger_test to ensure
       the header is handled properly in these cases.
      
      Test Plan: Augment existing tests in auto_roll_logger_test
      
      Reviewers: igor, sdong, yhchiang
      
      Reviewed By: yhchiang
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D41067
      35cd75c3
  4. 02 7月, 2015 1 次提交
    • D
      Windows Port from Microsoft · 18285c1e
      Dmitri Smirnov 提交于
       Summary: Make RocksDb build and run on Windows to be functionally
       complete and performant. All existing test cases run with no
       regressions. Performance numbers are in the pull-request.
      
       Test plan: make all of the existing unit tests pass, obtain perf numbers.
      
       Co-authored-by: Praveen Rao praveensinghrao@outlook.com
       Co-authored-by: Sherlock Huang baihan.huang@gmail.com
       Co-authored-by: Alex Zinoviev alexander.zinoviev@me.com
       Co-authored-by: Dmitri Smirnov dmitrism@microsoft.com
      18285c1e
  5. 12 6月, 2015 1 次提交
  6. 19 5月, 2015 1 次提交
  7. 07 2月, 2015 1 次提交
  8. 31 10月, 2014 1 次提交
  9. 09 7月, 2014 1 次提交
    • L
      integrate rate limiter into rocksdb · 534357ca
      Lei Jin 提交于
      Summary:
      Add option and plugin rate limiter for PosixWritableFile. The rate
      limiter only applies to flush and compaction. WAL and MANIFEST are
      excluded from this enforcement.
      
      Test Plan: db_test
      
      Reviewers: igor, yhchiang, sdong
      
      Reviewed By: sdong
      
      Subscribers: leveldb
      
      Differential Revision: https://reviews.facebook.net/D19425
      534357ca
  10. 11 4月, 2014 1 次提交
  11. 10 4月, 2014 1 次提交
    • I
      Turn on -Wmissing-prototypes · 4daea663
      Igor Canadi 提交于
      Summary: Compiling for iOS has by default turned on -Wmissing-prototypes, which causes rocksdb to fail compiling. This diff turns on -Wmissing-prototypes in our compile options and cleans up all functions with missing prototypes.
      
      Test Plan: compiles
      
      Reviewers: dhruba, haobo, ljin, sdong
      
      Reviewed By: ljin
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D17649
      4daea663
  12. 18 3月, 2014 1 次提交
    • I
      Optimize fallocation · f26cb0f0
      Igor Canadi 提交于
      Summary:
      Based on my recent findings (posted in our internal group), if we use fallocate without KEEP_SIZE flag, we get superior performance of fdatasync() in append-only workloads.
      
      This diff provides an option for user to not use KEEP_SIZE flag, thus optimizing his sync performance by up to 2x-3x.
      
      At one point we also just called posix_fallocate instead of fallocate, which isn't very fast: http://code.woboq.org/userspace/glibc/sysdeps/posix/posix_fallocate.c.html (tl;dr it manually writes out zero bytes to allocate storage). This diff also fixes that, by first calling fallocate and then posix_fallocate if fallocate is not supported.
      
      Test Plan: make check
      
      Reviewers: dhruba, sdong, haobo, ljin
      
      Reviewed By: dhruba
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D16761
      f26cb0f0
  13. 11 3月, 2014 1 次提交
    • H
      [RocksDB] LogBuffer Cleanup · 66da4679
      Haobo Xu 提交于
      Summary: Moved LogBuffer class to an internal header. Removed some unneccesary indirection. Enabled log buffer for BackgroundCallFlush. Forced log buffer flush right after Unlock to improve time ordering of info log.
      
      Test Plan: make check; db_bench compare LOG output
      
      Reviewers: sdong
      
      Reviewed By: sdong
      
      CC: leveldb, igor
      
      Differential Revision: https://reviews.facebook.net/D16707
      66da4679
  14. 07 3月, 2014 1 次提交
  15. 06 3月, 2014 2 次提交
    • S
      Buffer info logs when picking compactions and write them out after releasing the mutex · ecb1ffa2
      sdong 提交于
      Summary: Now while the background thread is picking compactions, it writes out multiple info_logs, especially for universal compaction, which introduces a chance of waiting log writing in mutex, which is bad. To remove this risk, write all those info logs to a buffer and flush it after releasing the mutex.
      
      Test Plan:
      make all check
      check the log lines while running some tests that trigger compactions.
      
      Reviewers: haobo, igor, dhruba
      
      Reviewed By: dhruba
      
      CC: i.am.jin.lei, dhruba, yhchiang, leveldb, nkg-
      
      Differential Revision: https://reviews.facebook.net/D16515
      ecb1ffa2
    • S
      Allow user to specify log level for info_log · 4405f3a0
      sdong 提交于
      Summary:
      Currently, there is no easy way for user to change log level of info log. Add a parameter in options to specify that.
      Also make the default level to INFO level. Removing the [INFO] tag if it is INFO level as I don't want to cause performance regression. (add [LOG] means another mem-copy and string formatting).
      
      Test Plan:
      make all check
      manual check the levels work as expected.
      
      Reviewers: dhruba, yhchiang
      
      Reviewed By: yhchiang
      
      CC: dhruba, igor, i.am.jin.lei, ljin, haobo, leveldb
      
      Differential Revision: https://reviews.facebook.net/D16563
      4405f3a0
  16. 01 3月, 2014 1 次提交
    • I
      Make Log::Reader more robust · 58ca641d
      Igor Canadi 提交于
      Summary:
      This diff does two things:
      (1) Log::Reader does not report a corruption when the last record in a log or manifest file is truncated (meaning that log writer died in the middle of the write). Inherited the code from LevelDB: https://code.google.com/p/leveldb/source/detail?r=269fc6ca9416129248db5ca57050cd5d39d177c8#
      (2) Turn off mmap writes for all writes to log and manifest files
      
      (2) is necessary because if we use mmap writes, the last record is not truncated, but is actually filled with zeros, making checksum fail. It is hard to recover from checksum failing.
      
      Test Plan:
      Added unit tests from LevelDB
      Actually recovered a "corrupted" MANIFEST file.
      
      Reviewers: dhruba, haobo
      
      Reviewed By: haobo
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D16119
      58ca641d
  17. 27 2月, 2014 1 次提交
    • Y
      Enable log info with different levels. · ccaedd16
      Yueh-Hsuan Chiang 提交于
      Summary:
      * Now each Log related function has a variant that takes an additional
        argument indicating its log level, which is one of the following:
       - DEBUG, INFO, WARN, ERROR, FATAL.
      
      * To ensure backward-compatibility, old version Log functions are kept
        unchanged.
      
      * Logger now has a member variable indicating its log level.  Any incoming
        Log request which log level is lower than Logger's log level will not
        be output.
      
      * The output of the newer version Log will be prefixed by its log level.
      
      Test Plan:
      Add a LogType test in auto_roll_logger_test.cc
      
       = Sample log output =
          2014/02/11-00:03:07.683895 7feded179840 [DEBUG] this is the message to be written to the log file!!
          2014/02/11-00:03:07.683898 7feded179840 [INFO] this is the message to be written to the log file!!
          2014/02/11-00:03:07.683900 7feded179840 [WARN] this is the message to be written to the log file!!
          2014/02/11-00:03:07.683903 7feded179840 [ERROR] this is the message to be written to the log file!!
          2014/02/11-00:03:07.683906 7feded179840 [FATAL] this is the message to be written to the log file!!
      
      Reviewers: dhruba, xjin, kailiu
      
      Reviewed By: kailiu
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D16071
      ccaedd16
  18. 06 2月, 2014 1 次提交
    • I
      [CF] Options -> DBOptions · f276e0e5
      Igor Canadi 提交于
      Summary: Replaced most of occurrences of Options with more specific DBOptions. This brings us very close to supporting different configuration options for each column family.
      
      Test Plan: make check
      
      Reviewers: dhruba, haobo, kailiu, sdong
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D15933
      f276e0e5
  19. 08 11月, 2013 1 次提交
    • I
      Flush the log outside of lock · 444cf88a
      Igor Canadi 提交于
      Summary:
      Added a new call LogFlush() that flushes the log contents to the OS buffers. We never call it with lock held.
      
      We call it once for every Read/Write and often in compaction/flush process so the frequency should not be a problem.
      
      Test Plan: db_test
      
      Reviewers: dhruba, haobo, kailiu, emayanke
      
      Reviewed By: dhruba
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D13935
      444cf88a
  20. 17 10月, 2013 1 次提交
  21. 05 10月, 2013 1 次提交
  22. 24 8月, 2013 1 次提交
  23. 19 6月, 2013 1 次提交
  24. 13 6月, 2013 1 次提交
    • H
      [RocksDB] cleanup EnvOptions · bdf10859
      Haobo Xu 提交于
      Summary:
      This diff simplifies EnvOptions by treating it as POD, similar to Options.
      - virtual functions are removed and member fields are accessed directly.
      - StorageOptions is removed.
      - Options.allow_readahead and Options.allow_readahead_compactions are deprecated.
      - Unused global variables are removed: useOsBuffer, useFsReadAhead, useMmapRead, useMmapWrite
      
      Test Plan: make check; db_stress
      
      Reviewers: dhruba
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D11175
      bdf10859
  25. 21 3月, 2013 1 次提交
    • D
      Ability to configure bufferedio-reads, filesystem-readaheads and mmap-read-write per database. · ad96563b
      Dhruba Borthakur 提交于
      Summary:
      This patch allows an application to specify whether to use bufferedio,
      reads-via-mmaps and writes-via-mmaps per database. Earlier, there
      was a global static variable that was used to configure this functionality.
      
      The default setting remains the same (and is backward compatible):
       1. use bufferedio
       2. do not use mmaps for reads
       3. use mmap for writes
       4. use readaheads for reads needed for compaction
      
      I also added a parameter to db_bench to be able to explicitly specify
      whether to do readaheads for compactions or not.
      
      Test Plan: make check
      
      Reviewers: sheki, heyongqiang, MarkCallaghan
      
      Reviewed By: sheki
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D9429
      ad96563b
  26. 24 1月, 2013 1 次提交
    • C
      Fix a number of object lifetime/ownership issues · 2fdf91a4
      Chip Turner 提交于
      Summary:
      Replace manual memory management with std::unique_ptr in a
      number of places; not exhaustive, but this fixes a few leaks with file
      handles as well as clarifies semantics of the ownership of file handles
      with log classes.
      
      Test Plan: db_stress, make check
      
      Reviewers: dhruba
      
      Reviewed By: dhruba
      
      CC: zshao, leveldb, heyongqiang
      
      Differential Revision: https://reviews.facebook.net/D8043
      2fdf91a4
  27. 26 1月, 2012 1 次提交
  28. 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
  29. 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
  30. 20 4月, 2011 2 次提交
  31. 19 4月, 2011 1 次提交
  32. 13 4月, 2011 1 次提交
  33. 31 3月, 2011 1 次提交
  34. 19 3月, 2011 1 次提交