cockroach
cockroach copied to clipboard
release-22.2: storage: remove Engine interface cruft
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
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?
tftrs!