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

rfcs: add RFC for timeline archival #8221

Merged
merged 13 commits into from
Jul 11, 2024
Merged

Conversation

jcsp
Copy link
Contributor

@jcsp jcsp commented Jul 1, 2024

A design for a cheap low-resource state for idle timelines:

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

@jcsp jcsp added c/storage/pageserver Component: storage: pageserver t/tech_design_rfc Issue type: tech design RFC labels Jul 1, 2024
Copy link

github-actions bot commented Jul 1, 2024

3117 tests run: 3002 passed, 0 failed, 115 skipped (full report)


Flaky tests (2)

Postgres 16

Postgres 14

  • test_lsn_lease_size[False]: debug

Code coverage* (full report)

  • functions: 32.6% (6938 of 21280 functions)
  • lines: 50.0% (54545 of 109057 lines)

* collected from Rust tests only


The comment gets automatically updated with the latest test results
f7338e2 at 2024-07-09T18:16:41.194Z :recycle:

Copy link
Contributor

@VladLazar VladLazar left a comment

Choose a reason for hiding this comment

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

Agree with the overal approach


Got some clarification requests, suggestions, and a concern about integrity of tenant manifest updates.

docs/rfcs/033-timeline-archive.md Outdated Show resolved Hide resolved
docs/rfcs/033-timeline-archive.md Outdated Show resolved Hide resolved
docs/rfcs/033-timeline-archive.md Outdated Show resolved Hide resolved
docs/rfcs/033-timeline-archive.md Outdated Show resolved Hide resolved
docs/rfcs/033-timeline-archive.md Outdated Show resolved Hide resolved
docs/rfcs/033-timeline-archive.md Outdated Show resolved Hide resolved
docs/rfcs/033-timeline-archive.md Outdated Show resolved Hide resolved
docs/rfcs/033-timeline-archive.md Outdated Show resolved Hide resolved
docs/rfcs/033-timeline-archive.md Outdated Show resolved Hide resolved
@jcsp jcsp marked this pull request as ready for review July 3, 2024 21:14
@jcsp jcsp requested a review from a team as a code owner July 3, 2024 21:14
@jcsp jcsp requested review from arssher and arpad-m and removed request for arssher July 3, 2024 21:14
docs/rfcs/033-timeline-archive.md Outdated Show resolved Hide resolved
safekeeper/src/timelines_global_map.rs Outdated Show resolved Hide resolved
docs/rfcs/033-timeline-archive.md Outdated Show resolved Hide resolved
docs/rfcs/033-timeline-archive.md Outdated Show resolved Hide resolved
docs/rfcs/033-timeline-archive.md Outdated Show resolved Hide resolved
Copy link
Contributor

@VladLazar VladLazar left a comment

Choose a reason for hiding this comment

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

very nice

@jcsp
Copy link
Contributor Author

jcsp commented Jul 4, 2024

What is the "visible set" though? That's what I was trying to get at.

Added a sentence to make that clearer -- it's a concept I want to add soon and use a few different places (see also: https://neondb.slack.com/archives/C06Q6MQ2QSC/p1719825156554879)

@jcsp jcsp force-pushed the jcsp/issue-8218-timeline-archive-rfc branch from bc0ad6a to f214285 Compare July 4, 2024 09:27
Copy link
Member

@arpad-m arpad-m left a comment

Choose a reason for hiding this comment

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

this is a well written RFC, it is thought through and I think a good plan forward. Thinking of it, the feature is bigger than I thought, it touches so many components of the pageserver, but I think there is a clear path to getting it implemented piece by piece.

I'd like to see a description of the deletion flow for a timeline, now that it is mentioned in the manifest. Should we first delete the timeline folder and then remove it from the manifest, or should it be the other way around?

And how does that interact with timelines that are either in the process of being offloaded or in the process of being archived, i.e. if we first delete in the manifest and then crash, will it look after a restart like a non-offloaded but archived timeline?

docs/rfcs/033-timeline-archive.md Outdated Show resolved Hide resolved
docs/rfcs/033-timeline-archive.md Outdated Show resolved Hide resolved
docs/rfcs/033-timeline-archive.md Outdated Show resolved Hide resolved
docs/rfcs/033-timeline-archive.md Outdated Show resolved Hide resolved
docs/rfcs/033-timeline-archive.md Outdated Show resolved Hide resolved
docs/rfcs/033-timeline-archive.md Outdated Show resolved Hide resolved
docs/rfcs/033-timeline-archive.md Outdated Show resolved Hide resolved
docs/rfcs/033-timeline-archive.md Outdated Show resolved Hide resolved
@jcsp jcsp enabled auto-merge (squash) July 8, 2024 15:47
@jcsp jcsp merged commit 69b6675 into main Jul 11, 2024
66 checks passed
@jcsp jcsp deleted the jcsp/issue-8218-timeline-archive-rfc branch July 11, 2024 07:23
skyzh pushed a commit that referenced this pull request Jul 15, 2024
A design for a cheap low-resource state for idle timelines:
- #8088
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c/storage/pageserver Component: storage: pageserver t/tech_design_rfc Issue type: tech design RFC
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants