Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pageserver: add direct io config to virtual file #9214

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

yliang412
Copy link
Contributor

@yliang412 yliang412 commented Oct 1, 2024

Problem

We need a way to incrementally switch to direct IO. During the rollout we might want to switch to O_DIRECT on image and delta layer read path first before others.

Summary of changes

  • Added a wrapper around VirtualFile, current implementation become VirtualFileInner
  • Use open_v2, create_v2, open_with_options_v2 when we want to use the IO mode specified in PS config.

As an example, we are using open_v2 with virtual_file::IoMode::Direct in #9169

Checklist before requesting a review

  • I have performed a self-review of my code.
  • If it is a core feature, I have added thorough tests.
  • Do we need to implement analytics? if so did you add the relevant metrics to the dashboard?
  • If this PR requires public announcement, mark it with /release-notes label and add several sentences in this section.

Checklist before merging

  • Do not forget to reformat commit message to not include the above checklist

Copy link

github-actions bot commented Oct 1, 2024

5013 tests run: 4855 passed, 0 failed, 158 skipped (full report)


Flaky tests (5)

Postgres 17

Postgres 16

Postgres 14

Code coverage* (full report)

  • functions: 31.5% (7535 of 23931 functions)
  • lines: 49.6% (60231 of 121410 lines)

* collected from Rust tests only


The comment gets automatically updated with the latest test results
a85bd88 at 2024-10-01T04:55:03.861Z :recycle:

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.

1 participant