It doesn't seem Spark has workarounds other than storing output into
external storages, so +1 on having this.

My major concern on implementing queryable state in structured streaming is
"Are all states available on executors at any time while query is running?"
Querying state shouldn't affect the running query. Given that state is huge
and default state provider is loading state in memory, we may not want to
load one more redundant snapshot of state: we want to always load "current
state" which query is also using. (For sure, Queryable state should be
read-only.)

Regarding improvement of local state, I guess it is ideal to leverage
embedded db, like Kafka and Flink are doing. The difference will not be
only reading state from non-heap, but also how to take a snapshot and store
delta. We may want to check snapshotting works well with small batch
interval, and find alternative approach when it doesn't. Sounds like it is
a huge item and can be handled individually.

- Jungtaek Lim (HeartSaVioR)

2017년 12월 9일 (토) 오후 10:51, Stavros Kontopoulos <st.kontopou...@gmail.com>님이
작성:

> Nice I was looking for a jira. So I agree we should justify why we are
> building something. Now to that direction here is what I have seen from my
> experience.
> People quite often use state within their streaming app and may have large
> states (TBs). Shortening the pipeline by not having to copy data (to
> Cassandra for example for serving) is an advantage, in terms of at least
> latency and complexity.
> This can be true if we advantage of state checkpointing (locally could be
> RocksDB or in general HDFS the latter is currently supported)  along with
> an API to efficiently query data.
> Some use cases I see:
>
> - real-time dashboards and real-time reporting, the faster the better
> - monitoring of state for operational reasons, app health etc...
> - integrating with external services via an API eg. making accessible
>  aggregations over time windows to some third party service within your
> system
>
> Regarding requirements here are some of them:
> - support of an API to expose state (could be done at the spark driver),
> like rest.
> - supporting dynamic allocation (not sure how it affects state management)
> - an efficient way to talk to executors to get the state (rpc?)
> - making local state more efficient and easier accessible with an embedded
> db (I dont think this is supported from what I see, maybe wrong)?
> Some people are already working with such techs and some stuff could be
> re-used: https://issues.apache.org/jira/browse/SPARK-20641
>
> Best,
> Stavros
>
>
> On Fri, Dec 8, 2017 at 10:32 PM, Michael Armbrust <mich...@databricks.com>
> wrote:
>
>> https://issues.apache.org/jira/browse/SPARK-16738
>>
>> I don't believe anyone is working on it yet.  I think the most useful
>> thing is to start enumerating requirements and use cases and then we can
>> talk about how to build it.
>>
>> On Fri, Dec 8, 2017 at 10:47 AM, Stavros Kontopoulos <
>> st.kontopou...@gmail.com> wrote:
>>
>>> Cool Burak do you have a pointer, should I take the initiative for a
>>> first design document or Databricks is working on it?
>>>
>>> Best,
>>> Stavros
>>>
>>> On Fri, Dec 8, 2017 at 8:40 PM, Burak Yavuz <brk...@gmail.com> wrote:
>>>
>>>> Hi Stavros,
>>>>
>>>> Queryable state is definitely on the roadmap! We will revamp the
>>>> StateStore API a bit, and a queryable StateStore is definitely one of the
>>>> things we are thinking about during that revamp.
>>>>
>>>> Best,
>>>> Burak
>>>>
>>>> On Dec 8, 2017 9:57 AM, "Stavros Kontopoulos" <st.kontopou...@gmail.com>
>>>> wrote:
>>>>
>>>>> Just to re-phrase my question: Would query-able state make a viable
>>>>> SPIP?
>>>>>
>>>>> Regards,
>>>>> Stavros
>>>>>
>>>>> On Thu, Dec 7, 2017 at 1:34 PM, Stavros Kontopoulos <
>>>>> st.kontopou...@gmail.com> wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> Maybe this has been discussed before. Given the fact that many
>>>>>> streaming apps out there use state extensively, could be a good idea to
>>>>>> make Spark expose streaming state with an external API like other
>>>>>> systems do (Kafka streams, Flink etc), in order to facilitate
>>>>>> interactive queries?
>>>>>>
>>>>>> Regards,
>>>>>> Stavros
>>>>>>
>>>>>
>>>>>
>>>
>>
>

Reply via email to