summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/src/os_win/os_fs.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/third_party/wiredtiger/src/os_win/os_fs.c')
-rw-r--r--src/third_party/wiredtiger/src/os_win/os_fs.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/third_party/wiredtiger/src/os_win/os_fs.c b/src/third_party/wiredtiger/src/os_win/os_fs.c
index 7ab7178114b..6c74f2f411f 100644
--- a/src/third_party/wiredtiger/src/os_win/os_fs.c
+++ b/src/third_party/wiredtiger/src/os_win/os_fs.c
@@ -521,10 +521,16 @@ __win_open_file(WT_FILE_SYSTEM *file_system, WT_SESSION *wt_session,
FLD_ISSET(conn->txn_logsync, WT_LOG_DSYNC))
f |= FILE_FLAG_WRITE_THROUGH;
- /* Disable read-ahead on trees: it slows down random read workloads. */
- if (file_type == WT_FS_OPEN_FILE_TYPE_DATA)
+ /* If the user indicated a random workload, disable read-ahead. */
+ if (file_type == WT_FS_OPEN_FILE_TYPE_DATA &&
+ LF_ISSET(WT_FS_OPEN_ACCESS_RAND))
f |= FILE_FLAG_RANDOM_ACCESS;
+ /* If the user indicated a sequential workload, set that. */
+ if (file_type == WT_FS_OPEN_FILE_TYPE_DATA &&
+ LF_ISSET(WT_FS_OPEN_ACCESS_SEQ))
+ f |= FILE_FLAG_SEQUENTIAL_SCAN;
+
win_fh->filehandle = CreateFileW(name_wide->data, desired_access,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL, dwCreationDisposition, f, NULL);