Skip to content
  • Lingjing You's avatar
    Add insert hints for each writebatch (#5728) · 1a928c22
    Lingjing You authored
    Summary:
    Add insert hints for each writebatch so that they can be used in concurrent write, and add write option to enable it.
    
    Bench result (qps):
    
    `./db_bench --benchmarks=fillseq -allow_concurrent_memtable_write=true -num=4000000 -batch-size=1 -threads=1 -db=/data3/ylj/tmp -write_buffer_size=536870912 -num_column_families=4`
    
    master:
    
    | batch size \ thread num | 1       | 2       | 4       | 8       |
    | ----------------------- | ------- | ------- | ------- | ------- |
    | 1                       | 387883  | 220790  | 308294  | 490998  |
    | 10                      | 1397208 | 978911  | 1275684 | 1733395 |
    | 100                     | 2045414 | 1589927 | 1798782 | 2681039 |
    | 1000                    | 2228038 | 1698252 | 1839877 | 2863490 |
    
    fillseq with writebatch hint:
    
    | batch size \ thread num | 1       | 2       | 4       | 8       |
    | ----------------------- | ------- | ------- | ------- | ------- |
    | 1                       | 286005  | 223570  | 300024  | 466981  |
    | 10                      | 970374  | 813308  | 1399299 | 1753588 |
    | 100                     | 1962768 | 1983023 | 2676577 | 3086426 |
    | 1000                    | 2195853 | 2676782 | 3231048 | 3638143 |
    Pull Request resolved: https://github.com/facebook/rocksdb/pull/5728
    
    Differential Revision: D17297240
    
    fbshipit-source-id: b053590a6d77871f1ef2f911a7bd013b3899b26c
    1a928c22