patrickstuedi commented on a change in pull request #11541:
URL: https://github.com/apache/kafka/pull/11541#discussion_r759132217



##########
File path: 
streams/src/main/java/org/apache/kafka/streams/state/internals/InMemoryWindowStore.java
##########
@@ -131,6 +149,11 @@ public void put(final Bytes key, final byte[] value, final 
long windowStartTimes
                 });
             }
         }
+
+        if (stateStoreContext != null && 
stateStoreContext.recordMetadata().isPresent()) {

Review comment:
       Optimistically updating position. Position makes sure we never move 
back. Or should we move this into the "value != null" case? 

##########
File path: 
streams/src/test/java/org/apache/kafka/streams/state/internals/InMemorySessionStoreTest.java
##########
@@ -83,4 +88,31 @@ public void shouldNotExpireFromOpenIterator() {
         assertFalse(sessionStore.findSessions("a", "b", 0L, 20L).hasNext());
     }
 
+    @Test
+    public void shouldMatchPositionAfterPut() {
+
+        final List<KeyValue<Windowed<String>, Long>> entries = new 
ArrayList<>();
+        entries.add(new KeyValue<>(new Windowed<String>("a", new 
SessionWindow(0, 0)), 1L));
+        entries.add(new KeyValue<>(new Windowed<String>("aa", new 
SessionWindow(0, 10)), 2L));
+        entries.add(new KeyValue<>(new Windowed<String>("a", new 
SessionWindow(10, 20)), 3L));
+
+        final MonotonicProcessorRecordContext recordContext = new 
MonotonicProcessorRecordContext("input", 0);
+        context.setRecordContext(recordContext);
+
+        final Position expected = Position.emptyPosition();
+        long offset = 0;
+        for (final KeyValue<Windowed<String>, Long> k : entries) {
+            sessionStore.put(k.key, k.value);
+            expected.update("input", 0, offset);
+            offset++;
+        }
+
+        final MeteredSessionStore<String, Long> meteredSessionStore = 
(MeteredSessionStore<String, Long>) sessionStore;

Review comment:
       This is not nice. One way to fix this would be to add getPosition() to 
the StateStore interface.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to