[
https://issues.apache.org/jira/browse/KAFKA-3229?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15176570#comment-15176570
]
Guozhang Wang commented on KAFKA-3229:
--------------------------------------
[~tom_dearman] Sorry my previous message was incorrect, indeed I meant {code}
StateStore.init() {code} not {code} ProcessorContext.register() {code}, and I
was not worrying about "users" but "developers" who, say, want to add a new
state store implementation into it, whether it is more complex for them to
reason about which store to use calling init(). Maybe I was over-thinking about
programmability, but would like to bring it up so people can ponder whether it
is worthwhile doing :)
> Root statestore is not registered with ProcessorStateManager, inner state
> store is registered instead
> -----------------------------------------------------------------------------------------------------
>
> Key: KAFKA-3229
> URL: https://issues.apache.org/jira/browse/KAFKA-3229
> Project: Kafka
> Issue Type: Bug
> Components: kafka streams
> Affects Versions: 0.10.0.0
> Environment: MacOS El Capitan
> Reporter: Tom Dearman
> Assignee: Tom Dearman
> Fix For: 0.10.0.0
>
>
> When the hierarchy of nested StateStores are created, init is called on the
> root store, but parent StateStores such as MeteredKeyValueStore just call
> the contained StateStore until a store such as MemoryStore calls
> ProcessorContext.register, but it passes 'this' to the method so only that
> inner state store (MemoryStore in this case) is registered with
> ProcessorStateManager. As state is added to the store none of the parent
> stores code will be called, metering, or even StoreChangeLogger to put the
> state on the kafka topic.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)