-
Type: Task
-
Resolution: Done
-
Affects Version/s: None
-
Component/s: None
-
None
A recent change has caused LSM inserts to become throttled due to checkpoint delays. I reproduced this by comparing this older revision to this newer revision.
I ran the wtperf medium-lsm.wtperf workload with the following modifications:
--- a/bench/wtperf/runners/medium-lsm.wtperf +++ b/bench/wtperf/runners/medium-lsm.wtperf @@ -1,8 +1,8 @@ # wtperf options file: medium lsm configuration -conn_config="cache_size=1G,lsm_manager=(worker_thread_max=6)" +conn_config="cache_size=1G,lsm_manager=(worker_thread_max=6),statistics=[all],statistics_log=(wait=10)" table_config="lsm=(chunk_size=100MB),type=lsm,os_cache_dirty_max=16MB" icount=50000000 report_interval=5 -run_time=120 +run_time=0 populate_threads=1 threads=((count=16,reads=1))
This reliably shows a load time of 191 seconds with the recent version, and a load time of between 70 and 93 seconds with the older version. Looking at the statistics from the newer version I see:
0 WT_TEST LSM: sleep for LSM checkpoint throttle 0 WT_TEST LSM: sleep for LSM checkpoint throttle 4268541 WT_TEST LSM: sleep for LSM checkpoint throttle 9585508 WT_TEST LSM: sleep for LSM checkpoint throttle 11302548 WT_TEST LSM: sleep for LSM checkpoint throttle 16111426 WT_TEST LSM: sleep for LSM checkpoint throttle 24486204 WT_TEST LSM: sleep for LSM checkpoint throttle 32732854 WT_TEST LSM: sleep for LSM checkpoint throttle 40813056 WT_TEST LSM: sleep for LSM checkpoint throttle 49329066 WT_TEST LSM: sleep for LSM checkpoint throttle 58206389 WT_TEST LSM: sleep for LSM checkpoint throttle 63431713 WT_TEST LSM: sleep for LSM checkpoint throttle 67025681 WT_TEST LSM: sleep for LSM checkpoint throttle 72764320 WT_TEST LSM: sleep for LSM checkpoint throttle 81677852 WT_TEST LSM: sleep for LSM checkpoint throttle 87054242 WT_TEST LSM: sleep for LSM checkpoint throttle 93103667 WT_TEST LSM: sleep for LSM checkpoint throttle 99943623 WT_TEST LSM: sleep for LSM checkpoint throttle 108588119 WT_TEST LSM: sleep for LSM checkpoint throttle 112786881 WT_TEST LSM: sleep for LSM checkpoint throttle 120708096 WT_TEST LSM: sleep for LSM checkpoint throttle 127593771 WT_TEST LSM: sleep for LSM checkpoint throttle
With the older revision I see:
0 WT_TEST LSM: sleep for LSM checkpoint throttle 0 WT_TEST LSM: sleep for LSM checkpoint throttle 0 WT_TEST LSM: sleep for LSM checkpoint throttle 0 WT_TEST LSM: sleep for LSM checkpoint throttle 0 WT_TEST LSM: sleep for LSM checkpoint throttle 0 WT_TEST LSM: sleep for LSM checkpoint throttle 0 WT_TEST LSM: sleep for LSM checkpoint throttle 0 WT_TEST LSM: sleep for LSM checkpoint throttle
I'll dig deeper to figure out which of the recent changes triggered this different behavior.
- related to
-
WT-1406 Fixup LSM workers, so evicting old chunks doesn't stop checkpoints.
- Closed