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

checkpoint_sync=false does *not* prevent flushes/sync to disk.

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

      From github.com/stephan-hof:

      Hi,

      I'm opening wiredtiger with the described setting above. I'm aware of the consequences: In a power-off scenario my database is corrupted or not usable anymore, but in my case this is acceptable (strong replication).

      Still I can see on each checkpoint interval (60 seconds):

      heavy disk usage
      decreased throughput in my application

      I looked a bit through the wiredtiger code and found out that this line of code is the culprit:
      https://github.com/wiredtiger/wiredtiger/blob/2.7.0/src/btree/bt_sync.c#L253

      I would consider this as a bug, this setting says "Please do not sync", but still the code does.

      Another thing, the comment there says

      Start a flush to stable storage, but don't wait for it

      Which is not entirely true. If you look at the man-page it says that the call can block if there is already much disk IO happening.
      http://man7.org/linux/man-pages/man2/sync_file_range.2.html

            Assignee:
            keith.bostic@mongodb.com Keith Bostic (Inactive)
            Reporter:
            sue.loverso@mongodb.com Susan LoVerso
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: