frankvicky commented on code in PR #21512:
URL: https://github.com/apache/kafka/pull/21512#discussion_r2832529439


##########
streams/src/main/java/org/apache/kafka/streams/state/SessionStoreWithHeaders.java:
##########
@@ -0,0 +1,146 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.kafka.streams.state;
+
+import org.apache.kafka.common.header.Headers;
+import org.apache.kafka.streams.internals.ApiUtils;
+import org.apache.kafka.streams.kstream.Window;
+import org.apache.kafka.streams.kstream.Windowed;
+import org.apache.kafka.streams.processor.StateStore;
+
+import java.time.Instant;
+
+import static 
org.apache.kafka.streams.internals.ApiUtils.prepareMillisCheckFailMsgPrefix;
+
+/**
+ * Interface for storing the aggregated values of sessions along with their 
record headers.
+ * <p>
+ * The key is internally represented as {@link Windowed Windowed&lt;K&gt;} 
that comprises the plain
+ * key and the {@link Window} that represents window start- and end-timestamp.
+ * <p>
+ * If two sessions are merged, a new session with new start- and end-timestamp 
must be inserted into
+ * the store while the two old sessions must be deleted.
+ *
+ * @param <K>   type of the record keys
+ * @param <AGG> type of the aggregated values
+ */
+public interface SessionStoreWithHeaders<K, AGG> extends StateStore, 
ReadOnlySessionStore<K, AggregationWithHeaders<AGG>>  {
+
+    /**
+     * Return all the session window entries that ends between the specified 
range (both ends are inclusive).
+     * This function would be used to retrieve all closed and immutable 
windows.
+     *
+     * @param earliestSessionEndTime earliest session end time to search from, 
inclusive
+     * @param latestSessionEndTime   latest session end time to search to, 
inclusive
+     */
+    default KeyValueIterator<Windowed<K>, AggregationWithHeaders<AGG>> 
findSessions(final long earliestSessionEndTime,
+                                                                               
      final long latestSessionEndTime) {

Review Comment:
   nit: indent align



-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to