Matthias J. Sax created KAFKA-7420:
--------------------------------------

             Summary: 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


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)

Reply via email to