Marko Mäkelä
45ed9dd957
MDEV-23855: Remove fil_system.LRU and reduce fil_system.mutex contention
...
Also fixes MDEV-23929: innodb_flush_neighbors is not being ignored
for system tablespace on SSD
When the maximum configured number of file is exceeded, InnoDB will
close data files. We used to maintain a fil_system.LRU list and
a counter fil_node_t::n_pending to achieve this, at the huge cost
of multiple fil_system.mutex operations per I/O operation.
fil_node_open_file_low(): Implement a FIFO replacement policy:
The last opened file will be moved to the end of fil_system.space_list,
and files will be closed from the start of the list. However, we will
not move tablespaces in fil_system.space_list while
i_s_tablespaces_encryption_fill_table() is executing
(producing output for INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION)
because it may cause information of some tablespaces to go missing.
We also avoid this in mariabackup --backup because datafiles_iter_next()
assumes that the ordering is not changed.
IORequest: Fold more parameters to IORequest::type.
fil_space_t::io(): Replaces fil_io().
fil_space_t::flush(): Replaces fil_flush().
OS_AIO_IBUF: Remove. We will always issue synchronous reads of the
change buffer pages in buf_read_page_low().
We will always ignore some errors for background reads.
This should reduce fil_system.mutex contention a little.
fil_node_t::complete_write(): Replaces fil_node_t::complete_io().
On both read and write completion, fil_space_t::release_for_io()
will have to be called.
fil_space_t::io(): Do not acquire fil_system.mutex in the normal
code path.
xb_delta_open_matching_space(): Do not try to open the system tablespace
which was already opened. This fixes a file sharing violation in
mariabackup --prepare --incremental.
Reviewed by: Vladislav Vaintroub
2020-10-26 17:09:01 +02:00
..
2019-04-01 19:47:24 +03:00
2019-02-05 01:34:17 +01:00
2020-05-05 20:33:10 +03:00
2020-05-04 09:35:38 +05:30
2020-05-04 09:35:38 +05:30
2020-05-04 09:35:38 +05:30
2020-05-04 09:35:38 +05:30
2019-01-24 14:43:29 +02:00
2020-04-19 17:33:51 +03:00
2020-05-26 11:54:55 +03:00
2019-04-01 19:47:24 +03:00
2019-05-24 13:21:14 +04:00
2017-03-30 12:48:42 +02:00
2019-04-05 11:41:03 +03:00
2019-07-10 12:43:51 +05:30
2020-03-20 22:06:55 +02:00
2018-07-02 12:45:02 +05:30
2020-01-21 19:10:12 +02:00
2018-07-02 12:45:02 +05:30
2018-07-02 12:45:02 +05:30
2018-07-02 12:45:02 +05:30
2018-07-02 12:45:02 +05:30
2018-05-07 15:39:29 +03:00
2018-05-10 13:01:42 +02:00
2020-03-31 17:42:34 +02:00
2020-07-23 17:41:44 +03:00
2020-03-03 22:25:20 +02:00
2020-09-23 11:32:43 +03:00
2019-02-21 14:40:52 +01:00
2020-05-15 15:10:58 +03:00
2019-08-12 18:50:54 +03:00
2019-07-23 10:58:56 +03:00
2019-04-01 19:47:24 +03:00
2019-07-02 15:18:12 +03:00
2020-01-15 18:06:24 +01:00
2020-03-20 22:06:55 +02:00
2019-07-18 18:01:04 +03:00
2019-07-18 18:01:04 +03:00
2019-07-18 18:01:04 +03:00
2019-07-18 18:01:04 +03:00
2019-07-18 18:01:04 +03:00
2020-03-23 16:41:48 +05:30
2019-09-01 19:17:35 +03:00
2019-07-22 15:28:05 +03:00
2018-03-07 17:49:42 +02:00
2018-12-21 12:12:57 +02:00
2017-12-07 14:35:32 +02:00
2018-01-08 12:25:31 +02:00
2020-08-04 11:49:52 +03:00
2020-08-04 11:49:52 +03:00
2020-08-04 11:49:52 +03:00
2018-08-03 15:57:23 +03:00
2018-03-12 22:08:08 +02:00
2018-12-13 21:58:35 +02:00
2018-12-13 21:58:35 +02:00
2016-06-30 23:56:18 -04:00
2018-05-02 15:44:52 +03:00
2019-04-01 19:47:24 +03:00
2019-04-01 19:47:24 +03:00
2018-03-13 08:15:06 +02:00
2020-05-09 20:36:58 +02:00
2020-10-22 17:08:49 +03:00
2020-09-03 15:53:38 +03:00
2020-03-27 03:58:32 +02:00
2017-06-29 23:03:39 +03:00
2017-06-29 23:03:39 +03:00
2018-01-10 13:53:44 +02:00
2018-01-10 13:53:44 +02:00
2016-09-02 13:22:28 +03:00
2020-10-15 17:04:56 +03:00
2020-04-14 18:43:03 +03:00
2020-04-14 18:43:03 +03:00
2020-07-02 09:41:44 +03:00
2019-04-01 19:47:24 +03:00
2017-01-18 08:43:11 +02:00
2019-07-02 15:24:23 +03:00
2020-04-14 18:43:03 +03:00
2020-08-04 06:59:29 +03:00
2018-02-02 16:15:13 +02:00
2018-02-02 16:15:13 +02:00
2018-12-09 09:22:00 +05:30
2018-07-04 19:13:55 +02:00
2016-09-02 13:22:28 +03:00
2020-02-13 13:42:01 +02:00
2020-02-13 13:42:01 +02:00
2020-02-13 13:42:01 +02:00
2017-02-10 06:30:42 -05:00
2017-09-18 10:12:23 +02:00
2019-07-30 21:57:48 +04:00
2018-07-04 19:13:55 +02:00
2018-12-09 09:22:00 +05:30
2020-02-13 13:42:01 +02:00
2019-04-01 19:47:24 +03:00
2017-11-03 23:40:35 -07:00
2020-01-15 18:06:24 +01:00
2019-08-13 17:19:00 +03:00
2017-03-16 10:24:53 +02:00
2019-04-01 19:47:24 +03:00
2019-04-01 19:47:24 +03:00
2019-07-30 21:57:48 +04:00
2019-08-23 08:06:17 +03:00
2019-08-21 15:23:45 +03:00
2020-01-15 18:06:24 +01:00
2019-05-23 17:34:47 +03:00
2020-04-19 17:33:51 +03:00
2019-04-01 19:47:24 +03:00
2019-03-25 17:18:15 +02:00
2018-04-20 14:33:24 +02:00
2020-01-24 14:50:23 +01:00
2019-08-13 13:32:27 +03:00
2017-11-20 16:05:41 +02:00
2017-11-20 16:05:41 +02:00
2017-11-20 16:05:41 +02:00
2020-01-15 18:06:24 +01:00
2020-02-13 13:42:01 +02:00
2020-02-13 13:42:01 +02:00
2020-07-23 10:54:33 +03:00
2020-02-13 13:42:01 +02:00
2017-02-10 06:30:42 -05:00
2020-03-17 16:28:16 +02:00
2019-04-01 19:47:24 +03:00
2020-04-14 18:43:03 +03:00
2018-06-06 11:25:33 +03:00
2019-04-01 19:47:24 +03:00
2020-07-31 18:09:08 +03:00
2020-06-14 19:39:42 +03:00
2020-02-13 13:42:01 +02:00
2020-06-05 12:35:46 +03:00
2020-01-22 08:04:53 +04:00
2019-05-23 10:25:12 +03:00
2019-12-09 15:09:41 +01:00
2019-12-09 15:09:41 +01:00
2020-08-04 06:59:29 +03:00
2019-04-01 19:47:24 +03:00
2018-06-18 14:26:37 +05:30
2020-03-03 13:50:33 +03:00
2020-10-26 17:09:01 +02:00
2017-01-27 12:21:31 +02:00
2017-01-27 12:21:31 +02:00
2020-10-26 17:09:01 +02:00
2019-04-01 19:47:24 +03:00
2020-10-22 13:27:18 +03:00
2019-04-01 19:47:24 +03:00
2018-12-09 09:22:00 +05:30
2019-04-25 16:05:20 +03:00
2018-12-09 09:22:00 +05:30
2019-11-01 15:23:18 +02:00
2018-12-09 09:22:00 +05:30
2020-04-01 11:19:12 +03:00
2020-01-15 18:06:24 +01:00
2020-04-28 16:09:07 +03:00
2020-02-13 13:42:01 +02:00
2016-06-30 16:38:05 +02:00
2020-01-22 08:04:53 +04:00
2020-04-14 18:43:03 +03:00
2019-07-16 18:39:21 +03:00
2019-12-09 15:09:41 +01:00
2019-07-25 18:42:06 +03:00
2019-12-09 15:09:41 +01:00
2020-08-13 18:48:41 +03:00
2019-10-30 13:21:36 +02:00
2020-05-22 19:56:55 +03:00
2019-10-30 16:47:43 +01:00
2018-12-09 09:22:00 +05:30
2019-04-01 19:47:24 +03:00
2020-04-28 11:59:32 +05:30
2020-10-20 11:16:40 +03:00
2020-04-25 21:57:52 +03:00
2019-04-01 19:47:24 +03:00
2019-11-01 15:23:18 +02:00
2017-02-15 08:07:20 +02:00
2020-02-11 14:40:35 +01:00
2017-01-18 08:43:11 +02:00
2017-01-18 08:43:11 +02:00
2020-10-15 17:04:56 +03:00
2018-07-02 12:27:28 +03:00
2017-09-06 16:13:20 +03:00
2017-01-26 08:05:23 +02:00
2019-11-20 13:18:31 +03:00
2020-05-29 11:57:59 +03:00
2018-01-30 21:33:56 +02:00
2019-04-01 19:47:24 +03:00
2020-08-13 18:18:25 +03:00
2017-08-31 09:30:40 +03:00
2019-07-30 21:57:48 +04:00
2017-04-24 14:03:22 +03:00
2017-08-31 09:30:40 +03:00
2017-09-17 11:05:33 +03:00
2019-04-03 18:36:33 +02:00
2018-10-06 13:43:13 +03:00
2020-08-13 18:48:41 +03:00
2020-03-27 03:58:32 +02:00
2019-04-01 19:47:24 +03:00
2018-09-14 08:47:22 +02:00
2018-01-15 16:22:35 +02:00
2019-09-01 19:17:35 +03:00
2016-09-02 13:22:28 +03:00
2019-12-09 15:09:41 +01:00
2018-02-06 14:50:50 +01:00
2020-03-20 18:12:17 +02:00
2019-04-01 19:47:24 +03:00
2020-04-14 18:43:03 +03:00
2019-04-01 19:47:24 +03:00
2019-04-01 19:47:24 +03:00
2019-04-01 19:47:24 +03:00
2020-04-14 18:43:03 +03:00
2019-04-01 19:47:24 +03:00
2019-04-01 19:47:24 +03:00
2019-08-29 08:23:19 +03:00
2020-01-15 18:06:24 +01:00
2019-02-19 16:12:00 +02:00
2020-01-15 18:06:24 +01:00
2019-07-04 00:09:16 +03:00
2020-04-25 21:57:52 +03:00
2019-09-06 14:25:20 +03:00
2017-09-25 09:50:24 +03:00
2019-03-06 09:00:52 +02:00
2017-03-22 19:08:24 +04:00
2017-01-24 14:40:58 +02:00
2019-05-04 17:04:55 +02:00
2018-12-16 02:21:41 +04:00
2017-05-09 19:44:10 +02:00
2019-09-10 16:14:50 +03:00
2019-07-30 21:57:48 +04:00
2020-01-10 22:50:19 +07:00
2020-09-17 14:08:41 +03:00
2019-02-19 18:50:19 +02:00
2019-02-19 18:50:19 +02:00
2020-03-21 11:37:10 +02:00
2020-04-25 21:57:52 +03:00
2019-07-18 17:01:59 +03:00
2020-08-20 12:52:44 +03:00
2017-04-26 23:03:29 +03:00
2020-10-22 17:08:49 +03:00
2019-06-22 14:09:12 +03:00
2020-07-29 06:12:31 +03:00
2019-05-23 01:20:18 +03:00
2020-07-13 17:05:13 +03:00
2020-07-20 14:15:56 +03:00
2020-07-20 14:15:56 +03:00
2019-02-11 17:55:25 +02:00
2020-02-13 15:10:25 +03:00
2017-10-06 09:50:10 +03:00
2020-05-26 20:27:13 +05:30
2020-05-26 20:27:13 +05:30
2020-05-27 12:16:58 +05:30
2020-05-26 20:27:13 +05:30
2020-05-26 20:27:13 +05:30
2019-11-14 13:22:29 +02:00
2018-12-13 22:23:49 +02:00
2018-11-23 18:36:44 +02:00
2019-12-10 15:42:50 +02:00
2019-04-01 19:47:24 +03:00
2020-05-05 21:16:22 +03:00
2020-04-14 18:43:03 +03:00
2020-04-14 18:43:03 +03:00
2017-11-15 02:41:45 +02:00
2020-05-05 21:16:22 +03:00
2019-03-20 19:18:21 +01:00
2019-04-01 19:47:24 +03:00
2020-04-14 18:43:03 +03:00
2018-05-29 08:54:33 +03:00
2020-02-19 12:21:59 +03:00
2016-12-30 13:48:22 +02:00
2020-05-05 21:16:22 +03:00
2019-09-01 19:17:35 +03:00
2020-02-19 12:21:59 +03:00
2020-02-19 12:21:59 +03:00
2019-07-05 17:02:21 +03:00
2019-07-05 17:02:21 +03:00
2019-07-05 17:02:21 +03:00
2019-07-05 17:02:21 +03:00
2019-07-05 17:02:21 +03:00
2019-07-05 17:02:21 +03:00
2019-07-05 17:02:21 +03:00
2019-07-05 17:02:21 +03:00
2019-07-05 17:02:21 +03:00
2019-07-05 17:02:21 +03:00
2019-07-05 17:02:21 +03:00
2019-07-05 17:02:21 +03:00
2019-07-05 17:02:21 +03:00
2019-07-05 17:02:21 +03:00
2019-07-05 17:02:21 +03:00
2019-02-08 12:32:31 -08:00
2018-04-08 21:32:02 +00:00
2019-06-27 15:39:04 +03:00
2020-10-26 17:09:01 +02:00
2020-07-31 13:51:28 +03:00
2019-06-28 18:58:52 +05:30
2019-04-29 15:11:06 +03:00
2020-10-15 17:04:56 +03:00
2019-11-15 18:09:30 +01:00
2019-06-24 17:07:20 +03:00
2020-08-03 14:44:06 +02:00
2019-04-01 19:47:24 +03:00
2019-04-01 19:47:24 +03:00
2019-09-06 11:53:10 +02:00
2020-10-26 17:09:01 +02:00
2019-04-01 19:47:24 +03:00
2019-04-01 19:47:24 +03:00
2019-04-01 19:47:24 +03:00
2020-09-23 11:32:43 +03:00
2017-02-10 06:30:42 -05:00
2020-01-07 11:02:12 +02:00
2019-10-30 23:14:44 +01:00
2018-05-11 18:35:03 +03:00
2019-07-16 18:39:21 +03:00
2019-04-01 19:47:24 +03:00
2020-10-26 17:09:01 +02:00
2018-11-06 09:40:39 +02:00
2018-11-06 09:40:39 +02:00
2018-11-06 09:40:39 +02:00
2018-11-06 09:40:39 +02:00
2018-11-06 09:40:39 +02:00
2020-09-23 11:32:43 +03:00
2016-12-04 01:59:08 +01:00
2020-06-08 12:55:04 +03:00
2017-01-18 08:42:57 +02:00
2020-03-27 03:58:32 +02:00
2020-03-27 03:58:32 +02:00
2017-03-18 21:37:36 +02:00
2016-12-02 16:44:53 +02:00
2019-04-01 19:47:24 +03:00
2020-07-31 15:07:43 +05:30
2019-07-02 21:44:58 +03:00
2020-09-22 14:33:03 +03:00
2019-09-05 16:37:32 +03:00
2019-11-20 19:48:03 +07:00
2019-08-16 14:35:32 +03:00
2019-05-23 17:34:47 +03:00
2019-04-01 19:47:24 +03:00
2019-04-01 19:47:24 +03:00
2018-02-07 10:39:12 +02:00
2019-05-04 17:04:55 +02:00
2020-04-16 12:12:26 +03:00
2020-06-05 18:05:22 +03:00