You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flink.apache.org by "Stephan Ewen (JIRA)" <ji...@apache.org> on 2015/10/02 14:56:26 UTC

[jira] [Created] (FLINK-2808) Rework / Extend the StatehandleProvider

Stephan Ewen created FLINK-2808:
-----------------------------------

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