1. 15 5月, 2014 2 次提交
    • I
      Define kInlineSize in .cc file instead of header · 35a8873a
      Igor Canadi 提交于
      35a8873a
    • S
      Arena to inline 2KB of data in it. · 3e4a9ec2
      sdong 提交于
      Summary:
      In order to use arena to a use case that the total allocation size might be small (LogBuffer is already such a case), inline 1KB of data in it, so that it can be mostly in stack or inline in another class.
      
      If always inlining 2KB is a concern, I could make it a template to determine what to inline. However, dependents need to changes. Doesn't go with it for now
      
      Test Plan: make all check.
      
      Reviewers: haobo, igor, yhchiang, dhruba
      
      Reviewed By: haobo
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D18609
      3e4a9ec2
  2. 06 5月, 2014 1 次提交
  3. 05 5月, 2014 1 次提交
  4. 04 5月, 2014 1 次提交
  5. 01 5月, 2014 1 次提交
  6. 15 3月, 2014 1 次提交
    • I
      Fix HashSkipList and HashLinkedList SIGSEGV · 3c75cc15
      Igor Canadi 提交于
      Summary:
      Original Summary:
      Yesterday, @ljin and I were debugging various db_stress issues. We suspected one of them happens when we concurrently call NewIterator without prefix_seek on HashSkipList. This test demonstrates it.
      
      Update:
      Arena is not thread-safe!! When creating a new full iterator, we *have* to create a new arena, otherwise we're doomed.
      
      Test Plan: SIGSEGV and assertion-throwing test now works!
      
      Reviewers: ljin, haobo, sdong
      
      Reviewed By: sdong
      
      CC: leveldb, ljin
      
      Differential Revision: https://reviews.facebook.net/D16857
      3c75cc15
  7. 13 3月, 2014 1 次提交
    • K
      A heuristic way to check if a memtable is full · 11da8bc5
      Kai Liu 提交于
      Summary:
      This is is based on https://reviews.facebook.net/D15027. It's not finished but I would like to give a prototype to avoid arena over-allocation while making better use of the already allocated memory blocks.
      
      Instead of check approximate memtable size, we will take a deeper look at the arena, which incorporate essential idea that @sdong suggests: flush when arena has allocated its last and the last is "almost full"
      
      Test Plan: N/A
      
      Reviewers: haobo, sdong
      
      Reviewed By: sdong
      
      CC: leveldb, sdong
      
      Differential Revision: https://reviews.facebook.net/D15051
      11da8bc5
  8. 04 3月, 2014 1 次提交
  9. 31 1月, 2014 1 次提交
    • K
      Clean up arena API · 4e0298f2
      kailiu 提交于
      Summary:
      Easy thing goes first. This patch moves arena to internal dir; based
      on which, the coming patch will deal with memtable_rep.
      
      Test Plan: make check
      
      Reviewers: haobo, sdong, dhruba
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D15615
      4e0298f2
  10. 09 1月, 2014 1 次提交
  11. 17 10月, 2013 1 次提交
  12. 06 10月, 2013 1 次提交
  13. 05 10月, 2013 1 次提交
  14. 24 8月, 2013 1 次提交
  15. 01 8月, 2013 1 次提交
    • X
      Make arena block size configurable · 0f0a24e2
      Xing Jin 提交于
      Summary:
      Add an option for arena block size, default value 4096 bytes. Arena will allocate blocks with such size.
      
      I am not sure about passing parameter to skiplist in the new virtualized framework, though I talked to Jim a bit. So add Jim as reviewer.
      
      Test Plan:
      new unit test, I am running db_test.
      
      For passing paramter from configured option to Arena, I tried tests like:
      
        TEST(DBTest, Arena_Option) {
        std::string dbname = test::TmpDir() + "/db_arena_option_test";
        DestroyDB(dbname, Options());
      
        DB* db = nullptr;
        Options opts;
        opts.create_if_missing = true;
        opts.arena_block_size = 1000000; // tested 99, 999999
        Status s = DB::Open(opts, dbname, &db);
        db->Put(WriteOptions(), "a", "123");
        }
      
      and printed some debug info. The results look good. Any suggestion for such a unit-test?
      
      Reviewers: haobo, dhruba, emayanke, jpaton
      
      Reviewed By: dhruba
      
      CC: leveldb, zshao
      
      Differential Revision: https://reviews.facebook.net/D11799
      0f0a24e2
  16. 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
  17. 20 4月, 2011 2 次提交
  18. 19 4月, 2011 1 次提交
  19. 13 4月, 2011 1 次提交
  20. 19 3月, 2011 1 次提交