https://bugs.openldap.org/show_bug.cgi?id=9618

          Issue ID: 9618
           Summary: Sync'ing is not happening in MDB_WRITEMAP mode on
                    Windows with mdb.master3
           Product: LMDB
           Version: 0.9.29
          Hardware: All
                OS: Windows
            Status: UNCONFIRMED
          Severity: normal
          Priority: ---
         Component: liblmdb
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: ---

Created attachment 831
  --> https://bugs.openldap.org/attachment.cgi?id=831&action=edit
Revert back to using standard FlushViewOfFile/FlushFileBuffers to sync data
with WRITEMAP mode on Windows

With ITS#9017, Windows sync'ing is performed by using the write-through (and
overlapped) writes, as it performs much better than
FlushViewOfFile/FlushFileBuffers. However, this functionality has regressed on
mdb.master3 because performing the writes is dependent on tracking and writing
the list of dirty pages, which is not tracked in WRITEMAP mode. This means that
on mdb.master3, with MDB_WRITEMAP, sync'ing is not really happening on Windows.
I think it is probably preferable to not try to maintain an exception for dirty
page tracking in WRITEMAP mode just for Windows. The attached patch reverts
back to using the standard map/file sync procedure
(FlushViewOfFile/FlushFileBuffers) to sync data when in WRITEMAP on Windows.
This still maintains the (better performing) write-through based sync technique
for standard, non-WRITEMAP mode on Windows.

-- 
You are receiving this mail because:
You are on the CC list for the issue.

Reply via email to