[ https://issues.apache.org/jira/browse/KAFKA-7420?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16671639#comment-16671639 ]
Nikolay Izhikov commented on KAFKA-7420: ---------------------------------------- [~mjsax] I've implemented initial PR. Can you take a look? > Global stores should be guarded as read-only for regular tasks > -------------------------------------------------------------- > > Key: KAFKA-7420 > URL: https://issues.apache.org/jira/browse/KAFKA-7420 > Project: Kafka > Issue Type: Improvement > Components: streams > Reporter: Matthias J. Sax > Assignee: Nikolay Izhikov > Priority: Minor > Labels: newbie++ > > Global stores should only be update by the global thread. Any other task, > should only read from a global store. However, when getting a reference to a > global store, all tasks have full read/write access to the store. > We should put a guard in place and only return either _(a)_ a read-only > store, or _(b)_ wrap the store but throw an exception on write for regular > tasks. > While the read-only store idea might be cleaner from an API point of view, we > should consider the second approach for 2 reasons: (1) it's backwards > compatible (of course, code might fail at runtime, but this seems to be ok, > as it indicates a bug in the user code anyway) (2) with regard to > [KIP-358|https://cwiki.apache.org/confluence/display/KAFKA/KIP-358%3A+Migrate+Streams+API+to+Duration+instead+of+long+ms+times], > we should have the more runtime efficient methods at this level (currently, > global stores are only key-value stores and this argument falls a little > short though—however, it might be a good idea to stay future proof; at least, > we should discuss it). -- This message was sent by Atlassian JIRA (v7.6.3#76005)