1. 15 Feb, 2020 1 commit
  2. 04 Feb, 2020 2 commits
    • yiwu-arbug's avatar
      Reconstruct GC stats on reopen (#130) · ffaa9d1a
      yiwu-arbug authored
      Summary:
      * On DB reopen, iterate all SST file's properties and sum up live data size of all blob files to use as GC stats.
      * Remove previous logic to set GC mark on blob files on reopen.
      * Refactor `OnFlushCompleted` and `OnCompactionCompleted`. Check file state is `kPendingLSM` before transit file state. 
      * Refactor `BlobFileMeta`.
      
      Test Plan:
      Updated unit tests
      Signed-off-by: 's avatarYi Wu <yiwu@pingcap.com>
      ffaa9d1a
    • yiwu-arbug's avatar
      Sync titan directory when adding blob files (#136) · 3b267dc5
      yiwu-arbug authored
      Summary:
      When adding new blob file, titan directory need to be fsync, otherwise files can be lost after power outage.
      
      Test Plan:
      run `strace -yfe fsync ./titan_titan_db_test --gtest_filter=*.Snapshot` and see titan directory being fsync-ed in the output.
      Signed-off-by: 's avatarYi Wu <yiwu@pingcap.com>
      3b267dc5
  3. 31 Jan, 2020 1 commit
    • kennytm's avatar
      Fix build on Windows (#138) · 01f293da
      kennytm authored
      1. use `#include "port/port.h"` instead of `#include "port/port_posix.h"`
      2. added an "install" target for CMake to workaround alexcrichton/cmake-rs#18
      3. MSVC reported 2 warnings in Titan (and tons of warnings in RocksDB), and these are fixed.
      01f293da
  4. 30 Jan, 2020 1 commit
  5. 31 Dec, 2019 1 commit
  6. 06 Dec, 2019 1 commit
  7. 03 Dec, 2019 1 commit
  8. 26 Nov, 2019 1 commit
    • Wu Jiayu's avatar
      Use prefetcher for level merge (#116) · 812e1977
      Wu Jiayu authored
      since level merge will read blob files sequentially, we should use prefetcher to accelerate merging.
      
      experiment result:
      
      Load 300GB (average value size 1KB) on Huawei NVME device, time to read blob file reduced about 50%.
      Signed-off-by: 's avatarwujy-cs <wujy.cs@gmail.com>
      812e1977
  9. 25 Nov, 2019 1 commit
    • yiwu-arbug's avatar
      TitanDBImpl::Open only open base DB once (#114) · 0fc61eec
      yiwu-arbug authored
      Summary:
      Refactor `TitanDBImpl::Open` to open base DB only once. Previously we open the DB twice - the first time only to obtain `cf_id` for each CF, and then initialize internals before open base DB for real. The patch change to open base DB only once, initialize internals after that. Before `TitanDBImpl` is initialized, `BaseDbListener` will be no-op and `TableBuilder` will not output blob files.
      
      Test Plan:
      Added new tests
      0fc61eec
  10. 21 Nov, 2019 1 commit
    • Phoebe Bell's avatar
      Update blob file format for ZSTD dictionary compression (#109) · e5731f44
      Phoebe Bell authored
      Adding a new version to blob file format. v2 blob files come with 4 more bytes in the header to hold future flags. In particular if `kHasUncompressionDictionary` is set, the whole file is compressed using dictionary compression and the per-blob compression type should be ignored.
      
      Also update `BlobEncoder` and `BlobDecoder` to allow passing in a dictionary and use it to  compress/decompress. Add unit test for it.
      e5731f44
  11. 19 Nov, 2019 1 commit
  12. 18 Nov, 2019 1 commit
  13. 15 Nov, 2019 1 commit
  14. 12 Nov, 2019 1 commit
  15. 06 Nov, 2019 1 commit
  16. 04 Nov, 2019 2 commits
  17. 02 Nov, 2019 1 commit
    • Wu Jiayu's avatar
      Implement basic range merge to maintain last level sorted run number (#92) · e8bc9254
      Wu Jiayu authored
      With level merge enabled, we expect there are no more than 10 sorted runs of blob files in both of last two levels. But 
      
      - Since we force using level_compaction_dynamic_level_bytes, last level blob files won't be merged again, sorted run number in last level will increase infinitely.
      - Some hot range may contain more sorted runs.
      
      This patch implement range merge:
      
      - Check sorted run number of compaction range after last level compaction
      - Mark blob files to merge in next compaction if sorted run number > max_sorted_runs
      e8bc9254
  18. 31 Oct, 2019 3 commits
  19. 25 Oct, 2019 1 commit
    • yiwu-arbug's avatar
      titandb_stress print git hash (#99) · 69d79667
      yiwu-arbug authored
      Summary:
      Make titandb_stress print rocksdb and titan git hash at the beginning. This is useful in schordinger test to verify which version is being tested.
      
      Test Plan:
      run titandb_stress, which prints the following at the beginning:
      ```
      2019/10/25-05:59:22  Initializing db_stress
      RocksDB version           : 6.4
      RocksDB hash              : rocksdb_build_git_sha:@9ab5a5f9e70d2ea5fc9bd22a455d52a5d082fd57@
      Titan hash                : titan_build_git_sha:@b497731e@
      ```
      Signed-off-by: 's avatarYi Wu <yiwu@pingcap.com>
      69d79667
  20. 17 Oct, 2019 1 commit
  21. 16 Oct, 2019 2 commits
  22. 08 Oct, 2019 1 commit
  23. 27 Sep, 2019 1 commit
    • yiwu-arbug's avatar
      Adjust daily benchmark script (#84) · 280b59d6
      yiwu-arbug authored
      Summary:
      Adjusting daily benchmark script:
      * Default params are more close to what we use for TiKV
      * change bulkload to receive `NUM_THREADS` param, also bulkload disable titan GC.
      
      Test Plan:
      local test.
      Signed-off-by: 's avatarYi Wu <yiwu@pingcap.com>
      280b59d6
  24. 26 Sep, 2019 1 commit
  25. 24 Sep, 2019 3 commits
  26. 22 Sep, 2019 1 commit
  27. 20 Sep, 2019 1 commit
  28. 18 Sep, 2019 3 commits
    • yiwu-arbug's avatar
      Fix new CF missing BlobFileSizeCollector (#78) · fc4106d4
      yiwu-arbug authored
      Summary:
      On `CreateColumnFamilies` we should set `BlobFileSizeCollectorFactory`. Fixing it.
      
      Test Plan:
      added test
      Signed-off-by: 's avatarYi Wu <yiwu@pingcap.com>
      fc4106d4
    • Connor's avatar
      Add more metrics (#79) · 10710bb1
      Connor authored
      * add more metrics
      Signed-off-by: 's avatarConnor1996 <zbk602423539@gmail.com>
      10710bb1
    • yiwu-arbug's avatar
      Prevent CF being dropped while GC is running (#72) · 8768067e
      yiwu-arbug authored
      Summary:
      If `DropColumnFamilies` is called while GC is running, GC can fail because the CF is gone. The GC job will then set background error which halts Titan as a whole. To prevent it, we let `DropColumnFamilies` wait till there no running GC before proceed, and let GC job wait for pending drop CF requests before start running. Fixes #71.
      
      Also fix `DropColumnFamilies` mark obsolete file as obsolete again, which will cause assert failure.
      
      Test Plan:
      Run titandb_stress and the above issues don't reproduce.
      8768067e
  29. 16 Sep, 2019 3 commits