Repository: kafka Updated Branches: refs/heads/trunk 406071c2b -> b604540fb
MINOR: improve StateStore JavaDocs Clarify that state directory must use `storeName` Author: Matthias J. Sax <[email protected]> Reviewers: Bill Bejeck <[email protected]>, Guozhang Wang <[email protected]> Closes #4228 from mjsax/minor-state-store-javadoc Project: http://git-wip-us.apache.org/repos/asf/kafka/repo Commit: http://git-wip-us.apache.org/repos/asf/kafka/commit/b604540f Tree: http://git-wip-us.apache.org/repos/asf/kafka/tree/b604540f Diff: http://git-wip-us.apache.org/repos/asf/kafka/diff/b604540f Branch: refs/heads/trunk Commit: b604540fbde818025afac85c3e96be76f212503e Parents: 406071c Author: Matthias J. Sax <[email protected]> Authored: Fri Nov 17 11:49:09 2017 -0800 Committer: Guozhang Wang <[email protected]> Committed: Fri Nov 17 11:49:09 2017 -0800 ---------------------------------------------------------------------- .../org/apache/kafka/streams/processor/StateStore.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kafka/blob/b604540f/streams/src/main/java/org/apache/kafka/streams/processor/StateStore.java ---------------------------------------------------------------------- diff --git a/streams/src/main/java/org/apache/kafka/streams/processor/StateStore.java b/streams/src/main/java/org/apache/kafka/streams/processor/StateStore.java index cb8139c..f098cd0 100644 --- a/streams/src/main/java/org/apache/kafka/streams/processor/StateStore.java +++ b/streams/src/main/java/org/apache/kafka/streams/processor/StateStore.java @@ -20,13 +20,22 @@ import org.apache.kafka.streams.errors.StreamsException; /** * A storage engine for managing state maintained by a stream processor. - * + * <p> + * If the store is implemented as a persistent store, it <em>must</em> use the store name as directory name and write + * all data into this store directory. + * The store directory must be created with the state directory. + * The state directory can be obtained via {@link ProcessorContext#stateDir() #stateDir()} using the + * {@link ProcessorContext} provided via {@link #init(ProcessorContext, StateStore) init(...)}. + * <p> + * Using nested store directories within the state directory isolates different state stores. + * If a state store would write into the state directory directly, it might conflict with others state stores and thus, + * data might get corrupted and/or Streams might fail with an error. + * Furthermore, Kafka Streams relies on using the store name as store directory name to perform internal cleanup tasks. * <p> * This interface does not specify any query capabilities, which, of course, * would be query engine specific. Instead it just specifies the minimum * functionality required to reload a storage engine from its changelog as well * as basic lifecycle management. - * </p> */ public interface StateStore {
