Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-2318

Configurable thread wake up time

    • Type: Icon: Improvement Improvement
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • WT2.8.0
    • Affects Version/s: WT2.7.0
    • Component/s: None
    • None

      Threads such as __log_wrlsn_server and __evict_server use conditional pthread_cond_wait() timeout value of 100ms that is passed via __wt_cond_wait(). Others threads like __log_file_server, __log_server are 1 second.

      Problem comes when a large number of databases are opened, in our case we end with 38 opened which has 80 __log_wrlsn_server and __evict_server threads waking up every 100ms. Due to the large number of thread count, a completely idle process ends up continuously consuming 1% of a single core.

      What would you think is best possible way to solve this? Ability to configure wait time or allow switching to fully blocking mode for rarely accessed sessions? Or in between heuristic dynamically adjusting sleep time based on the workload?

            alexander.gorrod@mongodb.com Alexander Gorrod
            sarunas Sarunas Vancevicius
            0 Vote for this issue
            7 Start watching this issue