diff options
Diffstat (limited to 'storage/innobase/os')
-rw-r--r-- | storage/innobase/os/os0file.cc | 8 |
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)); |