Skip to content

Page::reset_for: stop zeroing pages#2804

Merged
cloutiertyler merged 1 commit into
masterfrom
centril/stop-zeroing-pages
May 28, 2025
Merged

Page::reset_for: stop zeroing pages#2804
cloutiertyler merged 1 commit into
masterfrom
centril/stop-zeroing-pages

Conversation

@Centril

@Centril Centril commented May 28, 2025

Copy link
Copy Markdown
Contributor

Description of Changes

Fixes #2803.

API and ABI breaking changes

None

Expected complexity level and risk

The main risk here is that if we continue doing this, we have to give up

Testing

Any semantically meaningful logic should be covered by existing tests.

@Centril Centril requested a review from gefjon May 28, 2025 12:07
@joshua-spacetime joshua-spacetime added this pull request to the merge queue May 28, 2025
@cloutiertyler cloutiertyler removed this pull request from the merge queue due to a manual request May 28, 2025
@cloutiertyler cloutiertyler merged commit 800af9b into master May 28, 2025
21 checks passed
@Centril Centril deleted the centril/stop-zeroing-pages branch May 28, 2025 14:22
Comment thread crates/table/src/page.rs
// If we ever decide to add such an ABI, we must start zeroing again.
//
// // SAFETY: We just reset the page header.
// unsafe { self.zero_data() };

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We do not need to zero pages as long as the pages aren't shared between modules. If the page pool is specific to a single tenant, we're okay.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's true, but in our current setup, we do share pages between modules.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The page pool is very much global right now. We don't currently expose pages' raw bytes to customers, as we don't expose a way to download snapshots nor have a raw page ABI for modules. We would like to do both of those things in the future, though, and so we'll need to either revert this change, or make it configurable. I'll make a ticket.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Speed up PagePool::take_with_fixed_row_size

4 participants