@Pablo: Thanks for following up with the PR! :)

@Brian: I was wondering about this as well. It makes the Python state code a bit unnatural. I'd suggest to add a ValueState wrapper around ListState/CombiningState.

@Robert: Like Reuven pointed out, we can disallow ValueState for merging windows with state.

@Reza: Great. Let's make sure it has Python examples out of the box. Either Pablo or me could help there.

Thanks,
Max

On 25.04.19 04:14, Reza Ardeshir Rokni wrote:
Pablo, Kenneth and I have a new blog ready for publication which covers how to create a "looping timer" it allows for default values to be created in a window when no incoming elements exists. We just need to clear a few bits before publication, but would be great to have that also include a python example, I wrote it in java...

Cheers

Reza

On Thu, 25 Apr 2019 at 04:34, Reuven Lax <re...@google.com <mailto:re...@google.com>> wrote:

    Well state is still not implemented for merging windows even for
    Java (though I believe the idea was to disallow ValueState there).

    On Wed, Apr 24, 2019 at 1:11 PM Robert Bradshaw <rober...@google.com
    <mailto:rober...@google.com>> wrote:

        It was unclear what the semantics were for ValueState for merging
        windows. (It's also a bit weird as it's inherently a race condition
        wrt element ordering, unlike Bag and CombineState, though you can
        always implement it as a CombineState that always returns the latest
        value which is a bit more explicit about the dangers here.)

        On Wed, Apr 24, 2019 at 10:08 PM Brian Hulette
        <bhule...@google.com <mailto:bhule...@google.com>> wrote:
         >
         > That's a great idea! I thought about this too after those
        posts came up on the list recently. I started to look into it,
        but I noticed that there's actually no implementation of
        ValueState in userstate. Is there a reason for that? I started
        to work on a patch to add it but I was just curious if there was
        some reason it was omitted that I should be aware of.
         >
         > We could certainly replicate the example without ValueState
        by using BagState and clearing it before each write, but it
        would be nice if we could draw a direct parallel.
         >
         > Brian
         >
         > On Fri, Apr 12, 2019 at 7:05 AM Maximilian Michels
        <m...@apache.org <mailto:m...@apache.org>> wrote:
         >>
         >> > It would probably be pretty easy to add the corresponding
        code snippets to the docs as well.
         >>
         >> It's probably a bit more work because there is no section
        dedicated to
         >> state/timer yet in the documentation. Tracked here:
         >> https://jira.apache.org/jira/browse/BEAM-2472
         >>
         >> > I've been going over this topic a bit. I'll add the
        snippets next week, if that's fine by y'all.
         >>
         >> That would be great. The blog posts are a great way to get
        started with
         >> state/timers.
         >>
         >> Thanks,
         >> Max
         >>
         >> On 11.04.19 20:21, Pablo Estrada wrote:
         >> > I've been going over this topic a bit. I'll add the
        snippets next week,
         >> > if that's fine by y'all.
         >> > Best
         >> > -P.
         >> >
         >> > On Thu, Apr 11, 2019 at 5:27 AM Robert Bradshaw
        <rober...@google.com <mailto:rober...@google.com>
         >> > <mailto:rober...@google.com <mailto:rober...@google.com>>>
        wrote:
         >> >
         >> >     That's a great idea! It would probably be pretty easy
        to add the
         >> >     corresponding code snippets to the docs as well.
         >> >
         >> >     On Thu, Apr 11, 2019 at 2:00 PM Maximilian Michels
        <m...@apache.org <mailto:m...@apache.org>
         >> >     <mailto:m...@apache.org <mailto:m...@apache.org>>> wrote:
         >> >      >
         >> >      > Hi everyone,
         >> >      >
         >> >      > The Python SDK still lacks documentation on state
        and timers.
         >> >      >
         >> >      > As a first step, what do you think about updating
        these two blog
         >> >     posts
         >> >      > with the corresponding Python code?
         >> >      >
         >> >      >
        https://beam.apache.org/blog/2017/02/13/stateful-processing.html
         >> >      >
        https://beam.apache.org/blog/2017/08/28/timely-processing.html
         >> >      >
         >> >      > Thanks,
         >> >      > Max
         >> >

Reply via email to