[ 
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)

Reply via email to