guozhangwang commented on a change in pull request #8964: URL: https://github.com/apache/kafka/pull/8964#discussion_r459850212
########## File path: streams/src/main/java/org/apache/kafka/streams/processor/internals/ProcessorStateManager.java ########## @@ -454,6 +456,41 @@ public void flush() { } } + public void flushCache() { + RuntimeException firstException = null; + // attempting to flush the stores + if (!stores.isEmpty()) { + log.debug("Flushing all store caches registered in the state manager: {}", stores); + for (final StateStoreMetadata metadata : stores.values()) { + final StateStore store = metadata.stateStore; + + try { + // buffer should be flushed to send all records to changelog + if (store instanceof TimeOrderedKeyValueBuffer) { + store.flush(); + } else if (store instanceof CachedStateStore) { + ((CachedStateStore) store).flushCache(); + } + log.trace("Flushed cache or buffer {}", store.name()); + } catch (final RuntimeException exception) { + if (firstException == null) { + // do NOT wrap the error if it is actually caused by Streams itself + if (exception instanceof StreamsException) + firstException = exception; + else + firstException = new ProcessorStateException( Review comment: Ack ---------------------------------------------------------------- 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. For queries about this service, please contact Infrastructure at: us...@infra.apache.org