summaryrefslogtreecommitdiff
path: root/storage/innobase/os/os0file.cc
diff options
context:
space:
mode:
Diffstat (limited to 'storage/innobase/os/os0file.cc')
-rw-r--r--storage/innobase/os/os0file.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/storage/innobase/os/os0file.cc b/storage/innobase/os/os0file.cc
index a077f5736da..7406775b0eb 100644
--- a/storage/innobase/os/os0file.cc
+++ b/storage/innobase/os/os0file.cc
@@ -2220,6 +2220,8 @@ os_file_create_func(
? FILE_FLAG_OVERLAPPED : 0;
if (type == OS_LOG_FILE) {
+ ut_a(read_only || srv_thread_pool);
+ attributes|= FILE_FLAG_OVERLAPPED;
if(srv_flush_log_at_trx_commit != 2 && !log_sys.is_opened())
attributes|= FILE_FLAG_NO_BUFFERING;
if (srv_file_flush_method == SRV_O_DSYNC)
@@ -3706,7 +3708,11 @@ int os_aio_init()
OS_AIO_N_PENDING_IOS_PER_THREAD);
int max_read_events= int(srv_n_read_io_threads *
OS_AIO_N_PENDING_IOS_PER_THREAD);
- int max_events= max_read_events + max_write_events;
+
+ /* Count one extra aiocb for innodb async redo writes, which
+ bypasses the slots.*/
+
+ int max_events= max_read_events + max_write_events + 1;
read_slots.reset(new io_slots(max_read_events, srv_n_read_io_threads));
write_slots.reset(new io_slots(max_write_events, srv_n_write_io_threads));