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

Concurrently appending to a tree

    • Type: Icon: Task Task
    • Resolution: Done
    • WT2.5.0
    • Affects Version/s: None
    • Component/s: None

      One reasonably common workload is for applications to append to a tree from multiple threads. For example the YCSB load phase does that.

      What generally happens is that pages grow quickly to reach the configured memory_page_max, and then forced eviction is triggered. One thread is assigned evicting the page, and all the other threads tend to end up waiting for that page to be evicted. That behavior is exhibited when profiling shows many threads waiting in

      Unable to find source-code formatter for language: __wt_page_in. Available languages are: actionscript, ada, applescript, bash, c, c#, c++, cpp, css, erlang, go, groovy, haskell, html, java, javascript, js, json, lua, none, nyan, objc, perl, php, python, r, rainbow, ruby, scala, sh, sql, swift, visualbasic, xml, yaml
      
      

      .

      I'm not sure if there is anything we could do to avoid having all threads waiting for reconciliation to complete. Perhaps we could switch in a new page, if operations are appends. Then proceed to reconcile (or in-memory split) the page that is now no longer the last page in the tree.

            Assignee:
            keith.bostic@mongodb.com Keith Bostic (Inactive)
            Reporter:
            alexander.gorrod@mongodb.com Alexander Gorrod
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: