DAOS-11146 object: cache dc_pool and dc_cont
Whenever we want to access pool and container pointer in daos client stack, looking a per-proccess handle hash table by daos handle is required. Performance could not scale well for multiple threads because of pthread read lock scability.
To avoid above issue, It is possible to store container and pool pointers in dc_object directly, extra reference will be held for pool/cont if object is opened. during IO, accessing these pointers are safe, even pool/cont are closed, server will return errors.
One of side-effect is if object is not closed properly, dc_pool/dc_cont memory will be leaked.
Benchmarking showed fio 4k random write(32 threads) improved from 381k iops to 1500k iops on Rocky8.
Required-githooks: true
Signed-off-by: Wang Shilong [email protected]
Bug-tracker data: Ticket title is 'Single DAOS client IOPS performance benchmarking' Status is 'In Review' Job should run at elevated priority (3) https://daosio.atlassian.net/browse/DAOS-11146
Test stage Functional Hardware Medium completed with status FAILURE. https://build.hpdd.intel.com/job/daos-stack/job/daos/job/PR-10558/6/display/redirect
Test stage Functional Hardware Medium completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10558/7/execution/node/302/log
Test stage Functional Hardware Medium completed with status FAILURE. https://build.hpdd.intel.com//job/daos-stack/job/daos/view/change-requests/job/PR-10558/8/execution/node/1083/log