mariadb/storage/innobase
Marko Mäkelä a87bb96ecb MDEV-36234: Add innodb_linux_aio
This controls which linux implementation to use for
innodb_use_native_aio=ON.

innodb_linux_aio=auto is equivalent to innodb_linux_aio=io_uring when
it is available, and falling back to innodb_linux_aio=aio when not.

Debian packaging is no longer aio exclusive or uring, so
for those older Debian or Ubuntu releases, its a remove_uring directive.
For more recent releases, add mandatory liburing for consistent packaging.

WITH_LIBAIO is now an independent option from WITH_URING.

LINUX_NATIVE_AIO preprocessor constant is renamed to HAVE_LIBAIO,
analogous to existing HAVE_URING.

tpool::is_aio_supported(): A common feature check.

is_linux_native_aio_supported(): Remove. This had originally been added in
mysql/mysql-server@0da310b69d in 2012
to fix an issue where io_submit() on CentOS 5.5 would return EINVAL
for a /tmp/#sql*.ibd file associated with CREATE TEMPORARY TABLE.
But, starting with commit 2e814d4702 InnoDB
temporary tables will be written to innodb_temp_data_file_path.
The 2012 commit said that the error could occur on "old kernels".
Any GNU/Linux distribution that we currently support should be based
on a newer Linux kernel; for example, Red Hat Enterprise Linux 7
was released in 2014.

tpool::create_linux_aio(): Wraps the Linux implementations:
create_libaio() and create_liburing(), each defined in separate
compilation units (aio_linux.cc, aio_libaio.cc, aio_liburing.cc).

The CMake definitions are simplified using target_sources() and
target_compile_definitions(), all available since CMake 2.8.12.
With this change, there is no need to include ${CMAKE_SOURCE_DIR}/tpool
or add TPOOL_DEFINES flags anymore, target_link_libraries(lib tpool)
does all that.

This is joint work with Daniel Black and Vladislav Vaintroub.
2025-06-23 13:51:52 +03:00
..
btr MDEV-36017 Alter table aborts when temporary directory is full 2025-05-26 10:12:14 +05:30
buf MDEV-36962 innodb.log_file_overwrite fails with ASAN 2025-06-18 15:31:28 +10:00
data Merge 10.7 into 10.8 2022-11-01 08:50:28 +02:00
dict MDEV-36759: Huge performance drop 2025-05-13 12:27:50 +03:00
eval MDEV-26938 Support descending indexes internally in InnoDB 2022-01-26 18:43:05 +01:00
fil MDEV-36017 Alter table aborts when temporary directory is full 2025-05-26 10:12:14 +05:30
fsp MDEV-35000 preparation: Clean up dict_table_t::stat 2025-02-28 08:55:16 +02:00
fts MDEV-35000: dict_table_close() breaks STATS_AUTO_RECALC 2025-02-28 09:00:16 +02:00
fut MDEV-32175: Reduce page_align(), page_offset() calls 2024-11-21 11:01:30 +02:00
gis Merge 10.5 into 10.6 2025-03-26 17:09:57 +02:00
ha MDEV-35472 Server crash in ha_storage_put_memlim upon reading from INNODB_LOCKS 2024-11-25 10:31:57 +02:00
handler MDEV-36234: Add innodb_linux_aio 2025-06-23 13:51:52 +03:00
ibuf MDEV-29445: Reimplement SET GLOBAL innodb_buffer_pool_size 2025-03-26 17:05:44 +02:00
include MDEV-36234: Add innodb_linux_aio 2025-06-23 13:51:52 +03:00
lock MDEV-36639 innodb_snapshot_isolation=1 gives error for not committed row changes 2025-04-22 20:41:43 +03:00
log MDEV-37019 MSAN_STAT_WORKAROUND macro remove 2025-06-18 16:46:21 +10:00
mem Cleanup: Remove duplicated code 2024-11-29 14:16:34 +02:00
mtr MDEV-36760 log_t::append_prepare_wait(): Bogus assertion on write_lsn 2025-05-13 12:27:41 +03:00
mysql-test/storage_engine Remove dates from all rdiff files 2025-01-05 16:40:11 +02:00
os MDEV-36234: Add innodb_linux_aio 2025-06-23 13:51:52 +03:00
page Merge 10.6 into 10.11 2024-11-29 13:43:17 +02:00
pars Merge 10.6 into 10.11 2025-02-25 10:23:24 +02:00
que MDEV-24035 Failing assertion: UT_LIST_GET_LEN(lock.trx_locks) == 0 causing disruption and replication failure 2024-12-12 18:02:00 +02:00
read MDEV-34515: Contention between purge and workload 2024-08-26 12:23:06 +03:00
rem Merge 10.6 into 10.11 2024-03-28 09:16:57 +02:00
row MDEV-37033 UBSAN: row_log_table_apply_ops runtime error: applying non-zero offset 1048576 to null pointer 2025-06-23 17:25:45 +10:00
srv MDEV-36234: Add innodb_linux_aio 2025-06-23 13:51:52 +03:00
sync Merge 10.6 into 10.11 2024-10-03 10:55:08 +03:00
trx MDEV-36771 Assertion 'bulk_insert == TRX_NO_BULK' failed in trx_t::assert_freed 2025-05-26 12:13:01 +05:30
unittest MDEV-35587 unit.innodb_sync leaks memory on mac 2024-12-12 10:27:36 +11:00
ut MDEV-36759: Huge performance drop 2025-05-13 12:27:50 +03:00
.clang-format-old switch off storage/innobase/.clang-format: InnoDB uses a common formatting style for all new code 2021-03-17 11:01:15 +03:00
CMakeLists.txt MDEV-36234: Add innodb_linux_aio 2025-06-23 13:51:52 +03:00
COPYING.Google
COPYING.Percona