This page is meant as a template for writing a KIP. To create a KIP choose Tools->Copy on this page and modify with your content and replace the heading with the next KIP number and a description of your issue. Replace anything in italics with your own description.
Current state: Adopted (2.2.0)
Discussion thread: link
JIRA: NA
Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).
When fixing the issue in regarding the wrong old values being flushed to downstream, I realized the root cause was that we are trying to fetch the exact session's key with the provided key, start-time, end-time, but since there's no single-fetch API we are mimicking it with a range buggy query. On the other hand, like WindowStore, if users know which session they are querying exactly, they should be able to issue a "single-point" query, which should be much less costly as well compared to a range query. Such API could also help fixing the immediate issue of KAFKA-7652 as well.
Public Interfaces
This KIP would propose to add a single fetch API to the SessionStore interface:
AGG fetchSession(K key, long startTime, long endTime); |
Internally, this function will be used in 1) caching store flush listener, to read the old value from underlying store; 2) for accessing values from the session store in storeGetter.
Proposed Changes
As above.