• I
    Break stalls when no bg work is happening · d52f334c
    Islam AbdelRahman 提交于
    Summary:
    Current stall will keep sleeping even if there is no Flush/Compactions to wait for, I changed the logic to break the stall if we are not flushing or compacting
    
    db_bench command used
    ```
    # fillrandom
    # memtable size = 10MB
    # value size = 1 MB
    # num = 1000
    # use /dev/shm
    ./db_bench --benchmarks="fillrandom,stats" --value_size=1048576 --write_buffer_size=10485760 --num=1000 --delayed_write_rate=XXXXX  --db="/dev/shm/new_stall" | grep "Cumulative stall"
    ```
    
    ```
    Current results
    
    # delayed_write_rate = 1000 Kb/sec
    Cumulative stall: 00:00:9.031 H:M:S
    
    # delayed_write_rate = 200 Kb/sec
    Cumulative stall: 00:00:22.314 H:M:S
    
    # delayed_write_rate = 100 Kb/sec
    Cumulative stall: 00:00:42.784 H:M:S
    
    # delayed_write_rate = 50 Kb/sec
    Cumulative stall: 00:01:23.785 H:M:S
    
    # delayed_write_rate = 25 Kb/sec
    Cumulative stall: 00:02:45.702 H:M:S
    ```
    
    ```
    New results
    
    # delayed_write_rate = 1000 Kb/sec
    Cumulative stall: 00:00:9.017 H:M:S
    
    # delayed_write_rate = 200 Kb/sec
    Cumulative stall: 00
    Closes https://github.com/facebook/rocksdb/pull/1884
    
    Differential Revision: D4585439
    
    Pulled By: IslamAbdelRahman
    
    fbshipit-source-id: aed2198
    d52f334c
db_impl.cc 232.5 KB