summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorInaam Rana <inaam.rana@oracle.com>2011-02-07 18:43:00 -0500
committerInaam Rana <inaam.rana@oracle.com>2011-02-07 18:43:00 -0500
commit41ddf242e34d117abca9cf58819278993538f5ac (patch)
tree91cd48c29705e82e94022e3abd7faf3956e3aefb
parentda687193b602a9f77bf61e2431f0795dabf56ceb (diff)
downloadmariadb-git-41ddf242e34d117abca9cf58819278993538f5ac.tar.gz
Bug #59472 increase AIO requests per IO thread limit to 256 from 32
rb://566 approved by: Sunny When using native aio on linux each IO helper thread should be able to handle upto 256 IO requests. The number 256 is the same which is used for simulated aio as well. In case of windows where we also use native aio this limit is 32 because of OS constraints. It seems that we are using the limit of 32 for all the platforms where we are using native aio. The fix is to use 256 on all platforms except windows (when native aio is enabled on windows)
-rw-r--r--storage/innobase/srv/srv0start.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/storage/innobase/srv/srv0start.c b/storage/innobase/srv/srv0start.c
index acb448a1a67..2a9ad0e7541 100644
--- a/storage/innobase/srv/srv0start.c
+++ b/storage/innobase/srv/srv0start.c
@@ -1327,13 +1327,16 @@ innobase_start_or_create_for_mysql(void)
ut_a(srv_n_file_io_threads <= SRV_MAX_N_IO_THREADS);
- /* TODO: Investigate if SRV_N_PENDING_IOS_PER_THREAD (32) limit
- still applies to windows. */
- if (!srv_use_native_aio) {
- io_limit = 8 * SRV_N_PENDING_IOS_PER_THREAD;
- } else {
+ io_limit = 8 * SRV_N_PENDING_IOS_PER_THREAD;
+
+ /* On Windows when using native aio the number of aio requests
+ that a thread can handle at a given time is limited to 32
+ i.e.: SRV_N_PENDING_IOS_PER_THREAD */
+# ifdef __WIN__
+ if (srv_use_native_aio) {
io_limit = SRV_N_PENDING_IOS_PER_THREAD;
}
+# endif /* __WIN__ */
os_aio_init(io_limit,
srv_n_read_io_threads,