1. 18 4月, 2017 1 次提交
  2. 17 4月, 2017 1 次提交
  3. 10 4月, 2017 1 次提交
  4. 07 4月, 2017 4 次提交
    • S
      Refactor compaction picker code · ff972870
      Siying Dong 提交于
      Summary:
      1. Move universal compaction picker to separate files compaction_picker_universal.cc and compaction_picker_universal.h.
      2. Rename some functions to make the code easier to understand.
      3. Move leveled compaction picking code to a dedicated class, so that we we don't need to pass some common variable around when calling functions. It also allowed us to break down LevelCompactionPicker::PickCompaction() to smaller functions.
      Closes https://github.com/facebook/rocksdb/pull/2100
      
      Differential Revision: D4845948
      
      Pulled By: siying
      
      fbshipit-source-id: efa0ab4
      ff972870
    • S
      Move various string utility functions into string_util · 343b59d6
      Sagar Vemuri 提交于
      Summary:
      This is an effort to club all string related utility functions into one common place, in string_util, so that it is easier for everyone to know what string processing functions are available. Right now they seem to be spread out across multiple modules, like logging and options_helper.
      
      Check the sub-commits for easier reviewing.
      Closes https://github.com/facebook/rocksdb/pull/2094
      
      Differential Revision: D4837730
      
      Pulled By: sagar0
      
      fbshipit-source-id: 344278a
      343b59d6
    • Y
      Move memtable related files into memtable directory · df6f5a37
      Yi Wu 提交于
      Summary:
      Move memtable related files into memtable directory.
      Closes https://github.com/facebook/rocksdb/pull/2087
      
      Differential Revision: D4829242
      
      Pulled By: yiwu-arbug
      
      fbshipit-source-id: ca70ab6
      df6f5a37
    • T
      CMake: more MinGW fixes · 107c5f6a
      Tamir Duberstein 提交于
      Summary:
      siying this is a resubmission of #2081 with the 4th commit fixed. From that commit message:
      
      > Note that the previous use of quotes in PLATFORM_{CC,CXX}FLAGS was
      incorrect and caused GCC to produce the incorrect define:
      >
      >  #define ROCKSDB_JEMALLOC -DJEMALLOC_NO_DEMANGLE 1
      >
      > This was the cause of the Linux build failure on the previous version
      of this change.
      
      I've tested this locally, and the Linux build succeeds now.
      Closes https://github.com/facebook/rocksdb/pull/2097
      
      Differential Revision: D4839964
      
      Pulled By: siying
      
      fbshipit-source-id: cc51322
      107c5f6a
  5. 06 4月, 2017 2 次提交
  6. 05 4月, 2017 3 次提交
  7. 04 4月, 2017 2 次提交
  8. 31 3月, 2017 1 次提交
  9. 30 3月, 2017 1 次提交
  10. 04 3月, 2017 1 次提交
  11. 01 3月, 2017 1 次提交
  12. 28 2月, 2017 1 次提交
  13. 24 2月, 2017 1 次提交
  14. 07 2月, 2017 1 次提交
    • D
      Windows thread · 0a4cdde5
      Dmitri Smirnov 提交于
      Summary:
      introduce new methods into a public threadpool interface,
      - allow submission of std::functions as they allow greater flexibility.
      - add Joining methods to the implementation to join scheduled and submitted jobs with
        an option to cancel jobs that did not start executing.
      - Remove ugly `#ifdefs` between pthread and std implementation, make it uniform.
      - introduce pimpl for a drop in replacement of the implementation
      - Introduce rocksdb::port::Thread typedef which is a replacement for std::thread.  On Posix Thread defaults as before std::thread.
      - Implement WindowsThread that allocates memory in a more controllable manner than windows std::thread with a replaceable implementation.
      - should be no functionality changes.
      Closes https://github.com/facebook/rocksdb/pull/1823
      
      Differential Revision: D4492902
      
      Pulled By: siying
      
      fbshipit-source-id: c74cb11
      0a4cdde5
  15. 03 2月, 2017 1 次提交
  16. 26 1月, 2017 1 次提交
    • A
      Generalize Env registration framework · 17c11806
      Andrew Kryczka 提交于
      Summary:
      The Env registration framework supports registering client Envs and selecting which one to instantiate according to a text field. This enabled things like adding the -env_uri argument to db_bench, so the same binary could be reused with different Envs just by changing CLI config.
      
      Now this problem has come up again in a non-Env context, as I want to instantiate a client Statistics implementation from db_bench, which is configured entirely via text parameters. Also, in the future we may wish to use it for deserializing client objects when loading OPTIONS file.
      
      This diff generalizes the Env registration logic to work with arbitrary types.
      
      - Generalized registration and instantiation code by templating them
      - The entire implementation is in a header file as that's Google style guide's recommendation for template definitions
      - Pattern match with std::regex_match rather than checking prefix, which was the previous behavior
      - Rename functions/files to be non-Env-specific
      Closes https://github.com/facebook/rocksdb/pull/1776
      
      Differential Revision: D4421933
      
      Pulled By: ajkr
      
      fbshipit-source-id: 34647d1
      17c11806
  17. 25 1月, 2017 1 次提交
    • A
      Version librocksdb.so · fba726e5
      Arun Sharma 提交于
      Summary:
      After make install, I see a directory hierarchy that looks like
      
      ```
      ./usr
      ./usr/include
      ./usr/include/rocksdb
      ./usr/include/rocksdb/filter_policy.h
      [..]
      ./usr/include/rocksdb/iterator.h
      ./usr/include/rocksdb/utilities
      ./usr/include/rocksdb/utilities/ldb_cmd_execute_result.h
      ./usr/include/rocksdb/utilities/lua
      ./usr/include/rocksdb/utilities/lua/rocks_lua_custom_library.h
      ./usr/include/rocksdb/utilities/lua/rocks_lua_util.h
      ./usr/include/rocksdb/utilities/lua/rocks_lua_compaction_filter.h
      ./usr/include/rocksdb/utilities/backupable_db.h
      [..]
      ./usr/include/rocksdb/utilities/env_registry.h
      [..]
      ./usr/include/rocksdb/env.h
      ./usr/lib64
      ./usr/lib64/librocksdb.so.5
      ./usr/lib64/librocksdb.so.5.0.0
      ./usr/lib64/librocksdb.so
      ./usr/lib64/librocksdb.a
      ```
      Closes https://github.com/facebook/rocksdb/pull/1798
      
      Differential Revision: D4456536
      
      Pulled By: yiwu-arbug
      
      fbshipit-source-id: 5494e91
      fba726e5
  18. 21 1月, 2017 2 次提交
  19. 17 12月, 2016 1 次提交
  20. 02 12月, 2016 1 次提交
  21. 30 11月, 2016 1 次提交
  22. 19 11月, 2016 1 次提交
  23. 17 11月, 2016 1 次提交
    • Y
      Introduce Lua Extension: RocksLuaCompactionFilter · 647eafdc
      Yueh-Hsuan Chiang 提交于
      Summary:
      This diff includes an implementation of CompactionFilter that allows
      users to write CompactionFilter in Lua.  With this ability, users can
      dynamically change compaction filter logic without requiring building
      the rocksdb binary and restarting the database.
      
      To compile, WITH_LUA_PATH must be specified to the base directory
      of lua.
      Closes https://github.com/facebook/rocksdb/pull/1478
      
      Differential Revision: D4150138
      
      Pulled By: yhchiang
      
      fbshipit-source-id: ed84222
      647eafdc
  24. 16 11月, 2016 1 次提交
  25. 14 11月, 2016 1 次提交
    • Y
      Optimize sequential insert into memtable - Part 1: Interface · 1ea79a78
      Yi Wu 提交于
      Summary:
      Currently our skip-list have an optimization to speedup sequential
      inserts from a single stream, by remembering the last insert position.
      We extend the idea to support sequential inserts from multiple streams,
      and even tolerate small reordering wihtin each stream.
      
      This PR is the interface part adding the following:
      - Add `memtable_insert_prefix_extractor` to allow specifying prefix for each key.
      - Add `InsertWithHint()` interface to memtable, to allow underlying
        implementation to return a hint of insert position, which can be later
        pass back to optimize inserts.
      - Memtable will maintain a map from prefix to hints and pass the hint
        via `InsertWithHint()` if `memtable_insert_prefix_extractor` is non-null.
      Closes https://github.com/facebook/rocksdb/pull/1419
      
      Differential Revision: D4079367
      
      Pulled By: yiwu-arbug
      
      fbshipit-source-id: 3555326
      1ea79a78
  26. 01 11月, 2016 1 次提交
  27. 29 10月, 2016 1 次提交
  28. 26 10月, 2016 1 次提交
    • K
      Makefile: generate util/build_version.cc from .in file (#1384) · 60a2bbba
      Kefu Chai 提交于
      * util/build_verion.cc.in: add this file, so cmake and make can share the
        template file for generating util/build_version.cc.
      * CMakeLists.txt: also, cmake v2.8.11 does not support file(GENERATE ...),
        so we are using configure_file() for creating build_version.cc.
      * Makefile: use util/build_verion.cc.in for creating build_version.cc.
      Signed-off-by: NKefu Chai <tchaikov@gmail.com>
      60a2bbba
  29. 21 10月, 2016 1 次提交
    • I
      Support IngestExternalFile (remove AddFile restrictions) · 869ae5d7
      Islam AbdelRahman 提交于
      Summary:
      Changes in the diff
      
      API changes:
      - Introduce IngestExternalFile to replace AddFile (I think this make the API more clear)
      - Introduce IngestExternalFileOptions (This struct will encapsulate the options for ingesting the external file)
      - Deprecate AddFile() API
      
      Logic changes:
      - If our file overlap with the memtable we will flush the memtable
      - We will find the first level in the LSM tree that our file key range overlap with the keys in it
      - We will find the lowest level in the LSM tree above the the level we found in step 2 that our file can fit in and ingest our file in it
      - We will assign a global sequence number to our new file
      - Remove AddFile restrictions by using global sequence numbers
      
      Other changes:
      - Refactor all AddFile logic to be encapsulated in ExternalSstFileIngestionJob
      
      Test Plan:
      unit tests (still need to add more)
      addfile_stress (https://reviews.facebook.net/D65037)
      
      Reviewers: yiwu, andrewkr, lightmark, yhchiang, sdong
      
      Reviewed By: sdong
      
      Subscribers: jkedgar, hcz, andrewkr, dhruba
      
      Differential Revision: https://reviews.facebook.net/D65061
      869ae5d7
  30. 19 10月, 2016 1 次提交
    • A
      Compaction Support for Range Deletion · 6fbe96ba
      Andrew Kryczka 提交于
      Summary:
      This diff introduces RangeDelAggregator, which takes ownership of iterators
      provided to it via AddTombstones(). The tombstones are organized in a two-level
      map (snapshot stripe -> begin key -> tombstone). Tombstone creation avoids data
      copy by holding Slices returned by the iterator, which remain valid thanks to pinning.
      
      For compaction, we create a hierarchical range tombstone iterator with structure
      matching the iterator over compaction input data. An aggregator based on that
      iterator is used by CompactionIterator to determine which keys are covered by
      range tombstones. In case of merge operand, the same aggregator is used by
      MergeHelper. Upon finishing each file in the compaction, relevant range tombstones
      are added to the output file's range tombstone metablock and file boundaries are
      updated accordingly.
      
      To check whether a key is covered by range tombstone, RangeDelAggregator::ShouldDelete()
      considers tombstones in the key's snapshot stripe. When this function is used outside of
      compaction, it also checks newer stripes, which can contain covering tombstones. Currently
      the intra-stripe check involves a linear scan; however, in the future we plan to collapse ranges
      within a stripe such that binary search can be used.
      
      RangeDelAggregator::AddToBuilder() adds all range tombstones in the table's key-range
      to a new table's range tombstone meta-block. Since range tombstones may fall in the gap
      between files, we may need to extend some files' key-ranges. The strategy is (1) first file
      extends as far left as possible and other files do not extend left, (2) all files extend right
      until either the start of the next file or the end of the last range tombstone in the gap,
      whichever comes first.
      
      One other notable change is adding release/move semantics to ScopedArenaIterator
      such that it can be used to transfer ownership of an arena-allocated iterator, similar to
      how unique_ptr is used for malloc'd data.
      
      Depends on D61473
      
      Test Plan: compaction_iterator_test, mock_table, end-to-end tests in D63927
      
      Reviewers: sdong, IslamAbdelRahman, wanning, yhchiang, lightmark
      
      Reviewed By: lightmark
      
      Subscribers: andrewkr, dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D62205
      6fbe96ba
  31. 13 10月, 2016 1 次提交
  32. 11 10月, 2016 1 次提交