palantir / atlasdb

Transactional Distributed Database Layer
https://palantir.github.io/atlasdb/
Apache License 2.0
44 stars 7 forks source link

TKVSM initialization handles when runtimeConfig is provided as a Supplier #7134

Closed rhuffy closed 3 weeks ago

rhuffy commented 4 weeks ago

General

Before this PR: TransactionKeyValueServiceManager initialization assumes that the Atlas runtime config is provided as a Refreshable. We also support users providing the config as a Supplier under the runtimeConfigSupplier field.

After this PR:

This PR properly handles TKVSM initialization when the runtime config is passed using runtimeConfigSupplier. It is already asserted elsewhere that runtimeConfig XOR runtimeConfigSupplier is present. ==COMMIT_MSG== TKVSM initialization handles when runtimeConfig is provided as a Supplier ==COMMIT_MSG==

Please tag any other people who should be aware of this PR: @jeremyk-91 @jkozlowski

changelog-app[bot] commented 4 weeks ago

Generate changelog in changelog-dir>`changelog/@unreleased`</changelog-dir

What do the change types mean? - `feature`: A new feature of the service. - `improvement`: An incremental improvement in the functionality or operation of the service. - `fix`: Remedies the incorrect behaviour of a component of the service in a backwards-compatible way. - `break`: Has the potential to break consumers of this service's API, inclusive of both Palantir services and external consumers of the service's API (e.g. customer-written software or integrations). - `deprecation`: Advertises the intention to remove service functionality without any change to the operation of the service itself. - `manualTask`: Requires the possibility of manual intervention (running a script, eyeballing configuration, performing database surgery, ...) at the time of upgrade for it to succeed. - `migration`: A fully automatic upgrade migration task with no engineer input required. _Note: only one type should be chosen._
How are new versions calculated? - ❗The `break` and `manual task` changelog types will result in a major release! - 🐛 The `fix` changelog type will result in a minor release in most cases, and a patch release version for patch branches. This behaviour is configurable in autorelease. - ✨ All others will result in a minor version release.

Type

- [ ] Feature - [ ] Improvement - [x] Fix - [ ] Break - [ ] Deprecation - [ ] Manual task - [ ] Migration

Description

TKVSM initialization handles when runtimeConfig is provided as a Supplier **Check the box to generate changelog(s)** - [x] Generate changelog entry
rhuffy commented 3 weeks ago

I've refactored this to use the existing runtimeConfig <-> runtimeConfigSupplier resolution logic