[
https://issues.apache.org/jira/browse/KAFKA-16158?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ziyun Fu reassigned KAFKA-16158:
--------------------------------
Assignee: Ziyun Fu
> 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
> Assignee: Ziyun Fu
> Priority: Major
>
> 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)