cockroach icon indicating copy to clipboard operation
cockroach copied to clipboard

release-22.2: storage: remove Engine interface cruft

Open jbowens opened this issue 2 years ago • 2 comments

Backport 3/3 commits from #88063.

/cc @cockroachdb/release


Remove a few methods from the Engine interface type that don't belong.

storage: remove Engine.InMem

Remove storage.Engine's InMem method. This method was a hole in the abstraction. Clients should not need to distinguish between on-disk and in-memory engines.

storage: remove Engine.WriteFile

Remove the WriteFile method on the Engine interface, converting call sites to use the storage/fs.WriteFile function. The Engine itself should only expose primitives, and higher-level utilities like a WriteFile routine can be implemented in terms of those primitives.

storage/fs: move Engine.ReadFile to fs.ReadFile

Move the Engine's ReadFile method off of the Engine interface and into a storage/fs helper function written it terms of existing Engine methods.

Release justification: Non-production code changes and low-risk bug fix

jbowens avatar Sep 21 '22 20:09 jbowens

Thanks for opening a backport.

Please check the backport criteria before merging:

  • [x] Patches should only be created for serious issues or test-only changes.
  • [x] Patches should not break backwards-compatibility.
  • [x] Patches should change as little code as possible.
  • [x] Patches should not change on-disk formats or node communication protocols.
  • [x] Patches should not add new functionality.
  • [x] Patches must not add, edit, or otherwise modify cluster versions; or add version gates.
If some of the basic criteria cannot be satisfied, ensure that the exceptional criteria are satisfied within.
  • [ ] There is a high priority need for the functionality that cannot wait until the next release and is difficult to address in another way.
  • [ ] The new functionality is additive-only and only runs for clusters which have specifically “opted in” to it (e.g. by a cluster setting).
  • [ ] New code is protected by a conditional check that is trivial to verify and ensures that it only runs for opt-in clusters.
  • [ ] The PM and TL on the team that owns the changed code have signed off that the change obeys the above rules.

Add a brief release justification to the body of your PR to justify this backport.

Some other things to consider:

  • What did we do to ensure that a user that doesn’t know & care about this backport, has no idea that it happened?
  • Will this work in a cluster of mixed patch versions? Did we test that?
  • If a user upgrades a patch version, uses this feature, and then downgrades, what happens?

blathers-crl[bot] avatar Sep 21 '22 20:09 blathers-crl[bot]

This change is Reviewable

cockroach-teamcity avatar Sep 21 '22 20:09 cockroach-teamcity

tftrs!

jbowens avatar Sep 23 '22 20:09 jbowens