Hi Konstantin,
thanks for detailed answer. I also thought about CoFunction, but it is a
bit too heavy for us for the moment (each state would have to have
additional kafka producer/consumer).
Guess we'll use QueryableState for now and try to phase it out slowly...
thanks,
maciek
On 09.03.2021 17:42, Konstantin Knauf wrote:
Hi Maciek,
Thank you for reaching out. I'll try to answer your questions separately.
- nothing comparable. You already mention the State Processor API.
Besides that, I can only think of a side channel (CoFunction) that is
used to request a certain state that is then send to a side output and
ultimate to a sink, e.g. Kafka State Request Topic -> Flink -> Kafka
State Response Topic. This puts this complexity into the Flink Job,
though.
- I think it is a combination of both. Queryable State works well
within its limitations. In the case of the RocksDBStatebackend this is
mainly the availability of the job and the fact that you might read
"uncommitted" state updates. In case of the heap-backed statebackends
there are also synchronization issues, e.g. you might read stale
values. You also mention the fact that queryable state has been an
afterthought when it comes to more recent deployment options. I am not
aware of any Committer who currently has the time to work on this to
the degree that would be required. So, we thought, it would be more
fair and realistic to mark Queryable State as "approaching end of
life" in the sense that there is no active development on that
component anymore.
Best,
Konstantin
On Tue, Mar 9, 2021 at 7:08 AM Maciek Próchniak <m...@touk.pl
<mailto:m...@touk.pl>> wrote:
Hello,
We are using QueryableState in some of Nussknacker deployments as
a nice
addition, allowing end users to peek inside job state for a given key
(we mostly use custom operators).
Judging by mailing list and feature radar proposition by Stephan:
https://github.com/StephanEwen/flink-web/blob/feature_radar/img/flink_feature_radar.svg
<https://github.com/StephanEwen/flink-web/blob/feature_radar/img/flink_feature_radar.svg>
this feature is not widely used/supported. I'd like to ask:
- are there any alternative ways of accessing state during job
execution? State API is very nice, but it operates on checkpoints and
loading whole state to lookup one key seems a bit heavy?
- are there any inherent problems in QueryableState design (e.g. it's
not feasible to use it in K8 settings, performance considerations) or
just lack of interest/support (in that case we may offer some help)?
thanks,
maciek
--
Konstantin Knauf
https://twitter.com/snntrable <https://twitter.com/snntrable>
https://github.com/knaufk <https://github.com/knaufk>