[
https://issues.apache.org/jira/browse/KAFKA-20219?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alieh Saeedi updated KAFKA-20219:
---------------------------------
Description:
Clarify and align the behavior of getPosition() and query() in the
TimestampedKeyValueStoreWithHeaders state store, in particular
MeteredKeyValueStoreWithHeaders:
* For getPosition(), verify whether we actually need to override it. If we do
override, it should _not_ throw, but delegate to the inner store (i.e., forward
the call) rather than raising an exception. Also confirm whether we already
inherit a suitable overridden implementation from a parent type; if so, we
should rely on that instead of adding another override.
* Investigate why our existing integration tests did not fail in this scenario
and add/adjust tests so that incorrect getPosition behavior is caught going
forward.
* For query(), decide whether we should throw or instead return a
FailedQueryResult for unsupported cases. Prefer the cleaner FailedQueryResult
approach and, if sufficient, implement this behavior only in
MeteredKeyValueStoreWithHeaders as the outer layer, since all calls should go
through it.
was:
Clarify and align the behavior of getPosition() and query() in the header-aware
state stores, in particular MeteredKeyValueStoreWithHeaders:
* For getPosition(), verify whether we actually need to override it. If we do
override, it should _not_ throw, but delegate to the inner store (i.e., forward
the call) rather than raising an exception. Also confirm whether we already
inherit a suitable overridden implementation from a parent type; if so, we
should rely on that instead of adding another override.
* Investigate why our existing integration tests did not fail in this scenario
and add/adjust tests so that incorrect getPosition/query behavior is caught
going forward.
* For query(), decide whether we should throw or instead return a
FailedQueryResult for unsupported cases. Prefer the cleaner FailedQueryResult
approach (we likely already have an IQ-related ticket for this) and, if
sufficient, implement this behavior only in MeteredKeyValueStoreWithHeaders as
the outer layer, since all calls should go through it.
> Override `getPosition` correctly for TimestampedKeyValueStoreWithHeaders
> ------------------------------------------------------------------------
>
> Key: KAFKA-20219
> URL: https://issues.apache.org/jira/browse/KAFKA-20219
> Project: Kafka
> Issue Type: Sub-task
> Components: streams
> Reporter: Alieh Saeedi
> Priority: Major
>
> Clarify and align the behavior of getPosition() and query() in the
> TimestampedKeyValueStoreWithHeaders state store, in particular
> MeteredKeyValueStoreWithHeaders:
> * For getPosition(), verify whether we actually need to override it. If we
> do override, it should _not_ throw, but delegate to the inner store (i.e.,
> forward the call) rather than raising an exception. Also confirm whether we
> already inherit a suitable overridden implementation from a parent type; if
> so, we should rely on that instead of adding another override.
> * Investigate why our existing integration tests did not fail in this
> scenario and add/adjust tests so that incorrect getPosition behavior is
> caught going forward.
> * For query(), decide whether we should throw or instead return a
> FailedQueryResult for unsupported cases. Prefer the cleaner FailedQueryResult
> approach and, if sufficient, implement this behavior only in
> MeteredKeyValueStoreWithHeaders as the outer layer, since all calls should go
> through it.
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)