Matthias J. Sax created KAFKA-16158:
---------------------------------------
Summary: Cleanup usage of `TimestampedBytesStore` interface
Key: KAFKA-16158
URL: https://issues.apache.org/jira/browse/KAFKA-16158
Project: Kafka
Issue Type: Improvement
Components: streams
Reporter: Matthias J. Sax
We added `TimestampedBytesStore` interface many release ago. It's purpose is to
indicate if a byte-store's binary value contains a "plain value" or a
"<ts><value>" format. Stores with "<ts><value>" format should implement the
interface, however not all stores which this format do.
We tried to fix one occurrence via
https://issues.apache.org/jira/browse/KAFKA-15629 by adding
`TimestampedBytesStore` to `KeyValueToTimestampedKeyValueByteStoreAdapter`,
whoever this change broke the restore code path (cf
https://issues.apache.org/jira/browse/KAFKA-16141) and thus we reverted the
change.
During the investigation, we also notices that
`InMemoryTimestampedKeyValueStoreMarker` implements `TimestampedBytesStore` but
does not do a byte-array translation (it's unclear why no byte array
translation happens) – and it's also unclear if in-memory store is testes
properly.
We should try to clean this all up, adding `TimestampedBytesStore` to
`KeyValueToTimestampedKeyValueByteStoreAdapter` and figure out how avoid
breaking the restore code path. In addition, we should verify if
`InMemoryTimestampedKeyValueStoreMarker` is correct or not, and if the restore
code path (and maybe also IQv2 code path) is tested properly and correct.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)