Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Simple rolling bounce upgrade is sufficient. For PAPI uses, nothing changes at all. For DSL users, the internal RocksDBWithTimestampStore (as one example) will upgrade the store data lazily in the background. Only if users provide a custom XxxByteStoreSupplier no upgrade happens (but users can opt-in implementing RecordConverter interface) but the old format is kept. We use a proxy store that removes/add timestamp on read/write.

To keep interactive queries feature compatible, the new XxxWithTimestampStores can be queried with and without timestamp. This is important for DSL users, that might query a store as KeyValueStore while the DSL switches the store internally to a KeyValueWithTimestampStore. Thus, we allow to query a KeyValueWithTimestampStore with queryable story type "key-value" and remove the timestamp under the hood on read. Compatibility for window/session stores are handled similarly.

Test Plan

This feature can be mainly tested via unit and integration tests:

...