neon icon indicating copy to clipboard operation
neon copied to clipboard

Epic: improved compaction and compaction algorithms framework

Open arpad-m opened this issue 1 year ago • 2 comments

Motivation

The algorithms in the pageserver's compaction component aren't perfect and can be improved.

DoD

We have implemented pluggable compaction support, see #5234. We also have implemented some (default off) algorithms and done some initial experiments with them, but commitment to rolling out any larger algorithm changes is optional, not required. The goal is to have the pluggable support merged before we go GA.

Implementation ideas

### Tasks
- [ ] #5234
- [ ] https://github.com/neondatabase/neon/pull/6830
- [ ] Making sure the files aren't too large: https://github.com/neondatabase/neon/pull/5234#discussion_r1333986725

Other related tasks and Epics

  • Earlier PR #4539

arpad-m avatar Feb 15 '24 01:02 arpad-m

This week:

  • Get the existing PR green for merge.

jcsp avatar Feb 19 '24 11:02 jcsp

Last week: got PR rebased, polished, reviewed, and addressed reviews. This week: merge the PR, work on analyzing the new compaction's characteristics, reading the literature, and work on followups.

arpad-m avatar Feb 26 '24 14:02 arpad-m

  • read more literature
  • follow-ups
    • PR this week, need to confer with Heikki about some aspects of the code

problame avatar Mar 04 '24 11:03 problame

This week:

  • Compare old/new on gc_feedback (staircasing) test case.
  • Fix the edge case where too many deltas on one key can result in oversized layer files.

Deferring work to make all the tests work with new style compaction (as far as we know these are test assumption issues rather than issues with new compaction) -- the near term goal is to reach "no known issues" status with new compaction.

jcsp avatar Mar 18 '24 11:03 jcsp

Redefined this issue as the work that has been done in Q1:

~~Epic: improved compaction and compaction algorithms framework~~ Epic: import compaction framework & tiered compaction code

And moved the uncompleted items into section

Future Work / Punted into Q2 https://github.com/neondatabase/neon/issues/7554

problame avatar Apr 30 '24 09:04 problame