[ 
https://issues.apache.org/jira/browse/FLINK-2808?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14948347#comment-14948347
 ] 

ASF GitHub Bot commented on FLINK-2808:
---------------------------------------

Github user gyfora commented on the pull request:

    https://github.com/apache/flink/pull/1239#issuecomment-146467354
  
    So my argument is that the overhead of implementing the Checkpointed 
interface for simple counters , offsets and the like is simply too much (and 
annoying).
    
    We can also introduce some annotations that the user can use to tag the 
state with. Then the only thing we need to make sure is so that these support 
some custom checkpointing logic. (like the state checkpointer interface)
    
    Another thing we should consider is that the Checkpointed interface will 
never allow any lazy state access logic.


> Rework / Extend the StatehandleProvider
> ---------------------------------------
>
>                 Key: FLINK-2808
>                 URL: https://issues.apache.org/jira/browse/FLINK-2808
>             Project: Flink
>          Issue Type: Improvement
>          Components: Streaming
>    Affects Versions: 0.10
>            Reporter: Stephan Ewen
>            Assignee: Stephan Ewen
>             Fix For: 0.10
>
>
> I would like to make some changes (mostly additions) to the 
> {{StateHandleProvider}}. Ideally for the upcoming release, as it is somewhat 
> part of the public API.
> The rational behind this is to handle in a nice and extensible way the 
> creation of key/value state backed by various implementations (FS, 
> distributed KV store, local KV store with FS backup, ...) and various 
> checkpointing ways (full dump, append, incremental keys, ...)
> The changes would concretely be:
> 1.  There should be a default {{StateHandleProvider}} set on the execution 
> environment. Functions can later specify the {{StateHandleProvider}} when 
> grabbing the {{StreamOperatorState}} from the runtime context (plus 
> optionally a {{Checkpointer}})
> 2.  The {{StreamOperatorState}} is created from the {{StateHandleProvider}}. 
> That way, a KeyValueStore state backend can create a {{StreamOperatorState}} 
> that directly updates data in the KV store on every access, if that is 
> desired (and filter accesses by timestamps to only show committed data)
> 3.  The StateHandleProvider should have methods to get an output stream that 
> writes to the state checkpoint directly (and returns a StateHandle upon 
> closing). That way we can convert and dump large state into the checkpoint 
> without crating a full copy in memory before.
> Lastly, I would like to change some names
>   - {{StateHandleProvider}} to either {{StateBackend}}, {{StateStore}}, or 
> {{StateProvider}} (simpler name).
>   - {{StreamOperatorState}} to either {{State}} or {{KVState}}.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to