mariadb/tpool
Vladislav Vaintroub 18bb45f4b1 MDEV-36234 Cleanup, refactor Innodb's use of tpool AIO, move logic to tpool
This commit refactors InnoDB to remove its dependency on tpool internals
logic and significantly reduce platform-specific #ifdefs
(HAVE_URING, _WIN32,__linux__)

Key changes:
- Encapsulated AIO support checks into tpool::is_aio_supported().
- Centralized Linux AIO implementation choice and fallback within
  tpool::create_linux_aio(), removing complex #ifdef mazes from
  os0file.cc.
- Linux-specific AIO source files are now:
    - aio_libaio.cc: Exports create_libaio(). Previously, this logic
      was in confusingly named aio_linux.cc (confusingly since uring
      introduction)
    - aio_liburing.cc: Exports create_liburing(), and not
      create_linux_io()
    - aio_linux.cc: Exports create_linux_aio(), handles Linux AIO
      implementation selection and fallbacks.

- Simplified/modernized CMake build 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.

- LINUX_NATIVE_AIO preprocessor constant is renamed to HAVE_LIBAIO,
  analog to existing HAVE_URING.
  Ever since we got a second Linux native aio with uring implementation,
  this name because very confusing.
2025-06-11 20:28:22 +02:00
..
aio_libaio.cc MDEV-36234 Cleanup, refactor Innodb's use of tpool AIO, move logic to tpool 2025-06-11 20:28:22 +02:00
aio_liburing.cc MDEV-36234 Cleanup, refactor Innodb's use of tpool AIO, move logic to tpool 2025-06-11 20:28:22 +02:00
aio_linux.cc MDEV-36234 Cleanup, refactor Innodb's use of tpool AIO, move logic to tpool 2025-06-11 20:28:22 +02:00
aio_simulated.cc MDEV-36234: Add innodb_linux_aio 2025-05-26 13:53:41 +03:00
aio_win.cc MDEV-36234: Add innodb_linux_aio 2025-05-26 13:53:41 +03:00
CMakeLists.txt MDEV-36234 Cleanup, refactor Innodb's use of tpool AIO, move logic to tpool 2025-06-11 20:28:22 +02:00
task.cc MDEV-24512 fixup: Remove after_task_callback 2021-09-14 16:23:23 +03:00
task_group.cc MDEV-11026 Make InnoDB number of IO write/read threads dynamic 2022-06-27 12:00:31 +02:00
tpool.h MDEV-36234 Cleanup, refactor Innodb's use of tpool AIO, move logic to tpool 2025-06-11 20:28:22 +02:00
tpool_generic.cc MDEV-36234 Cleanup, refactor Innodb's use of tpool AIO, move logic to tpool 2025-06-11 20:28:22 +02:00
tpool_structs.h Merge 10.6 into 10.11 2023-11-22 18:14:11 +02:00
tpool_win.cc MDEV-36234: Add innodb_linux_aio 2025-05-26 13:53:41 +03:00
wait_notification.cc tpool - misc fixes 2020-01-12 21:34:59 +01:00