mirror of
https://github.com/MariaDB/server.git
synced 2025-11-30 01:19:40 +01:00
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.
|
||
|---|---|---|
| .. | ||
| archive | ||
| blackhole | ||
| columnstore | ||
| connect | ||
| csv | ||
| example | ||
| federated | ||
| federatedx | ||
| heap | ||
| innobase | ||
| maria | ||
| mroonga | ||
| myisam | ||
| myisammrg | ||
| oqgraph | ||
| perfschema | ||
| rocksdb | ||
| sequence | ||
| sphinx | ||
| spider | ||
| test_sql_discovery | ||