SpacetimeDB icon indicating copy to clipboard operation
SpacetimeDB copied to clipboard

Allocate pages using a mult-tenant lock-free pool

Open Centril opened this issue 8 months ago • 5 comments

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.

Centril avatar Apr 11 '25 12:04 Centril

benchmarks please

gefjon avatar Apr 11 '25 16:04 gefjon

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.

github-actions[bot] avatar Apr 11 '25 16:04 github-actions[bot]

Callgrind benchmark in progress...

github-actions[bot] avatar Apr 11 '25 16:04 github-actions[bot]

Callgrind benchmark in progress...

github-actions[bot] avatar Apr 11 '25 16:04 github-actions[bot]

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.

github-actions[bot] avatar Apr 11 '25 16:04 github-actions[bot]