Allocate pages using a mult-tenant lock-free pool
Description of Changes
Fixes https://github.com/clockworklabs/SpacetimeDB/issues/2016.
This PR implements page allocation through a lock-free multi-tenant pool,
using crossbeam_queue::ArrayQueue as the basis of the pool.
This lock-free queue is bounded. And this PR sets that bound to to 32 GiB. After that, pages will be dropped.
API and ABI breaking changes
None
Expected complexity level and risk
2
Testing
Most of the testing is done by adjusting existing tests.
benchmarks please
Criterion benchmark results
Error when comparing benchmarks: Couldn't find AWS credentials in environment, credentials file, or IAM role.
Caused by: Couldn't find AWS credentials in environment, credentials file, or IAM role.
Callgrind benchmark in progress...
Callgrind benchmark in progress...
Criterion benchmark results
Error when comparing benchmarks: Couldn't find AWS credentials in environment, credentials file, or IAM role.
Caused by: Couldn't find AWS credentials in environment, credentials file, or IAM role.