AIX
From PostgreSQL wiki
Jump to navigationJump to searchOpportunities to improve AIX support in PostgreSQL
- we don't have the current version of AIX, namely 7.3, in the build farm so we have no idea if it still works...
- based on experience with epoll and kqueue, large AIX systems would probably benefit from using pollset for latch.c (to reduce contention on eg the postmaster pipe in the poll set which otherwise gets locked with high frequency and concurrency across many processes via the poll() system call); here is an experimental patch that seems to work OK, but I have lost access to serious AIX equipment; if there is demand we could propose this and I bet it would speed up NUMA systems (because every network wait with ye olde poll() will do inter-socket locking ping pong on the postmaster pipe without this patch)
- PostgreSQL scales a lot better with huge memory pages; here is an experimental patch that needs to be finished and tested by someone with access to AIX + the ability to get the CAP_BYPASS_RAC_VMM privilege, to test
- PostgreSQL is in the process of gaining optional direct I/O support; see debug_io_direct settings in PostgreSQL 16, with more support features (asynchronous I/O) to follow in 17+. Should we be using O_CIO instead of O_DIRECT on AIX to avoid per-file serialization, or should it be an option, and what does it all mean?
And for the POWER architecture generally (ie would benefit Linux on POWER too):
- some SIMD support was added (see src/include/port/simd.h) to speed up various operations on amd64 and aarch64 architectures, but POWER altivec was not included (early patches that might have some starting points)