You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@beam.apache.org by "Balogh, György" <bo...@ultinous.com> on 2022/05/17 08:35:09 UTC

[Question] Is message order preserved in windows?

Hi,

I have video analytic data:
- time
- object type (car, person, etc)
- object bounding box (x,y,width,height)
- track id

I'd like to do transformations where I need to process detections belonging
to the same track in time order.

My input data is ordered by time. I do some filtering first (eg.: filter
cars) than apply sliding windows (eg.: 10 sec window size, with 5 sec step)
and group by track id.

Can we assume anything about the order of events in the windows? Is the
order preserved? I need to process them in time order, if the order is not
preserved what would be the best approach? I can of course collect and sort
the data but it has significant performance and memory impact. (I need to
process events on the billion scale).

Thank you,
Gyorgy


-- 

György Balogh
CEO
E gyorgy.balogh@ultinous.com <zs...@ultinous.com>
M +36 30 270 8342 <+36%2030%20270%208342>
A HU, 1117 Budapest, Budafoki út 209.
W www.ultinous.com

Re: [Question] Is message order preserved in windows?

Posted by Evan Galpin <eg...@apache.org>.
Hi Gyorgy,

To my knowledge, ordering of elements is not guaranteed. To order your
elements in each window by time, you would need to sort the iterables
produced by the groupByKey. You might use SortValues[1] to do that.

[1]
https://beam.apache.org/documentation/sdks/java-extensions/#example-usage-of-sortvalues

Thanks,
Evan


On Tue, May 17, 2022 at 04:35 Balogh, György <bo...@ultinous.com> wrote:

> Hi,
>
> I have video analytic data:
> - time
> - object type (car, person, etc)
> - object bounding box (x,y,width,height)
> - track id
>
> I'd like to do transformations where I need to process detections
> belonging to the same track in time order.
>
> My input data is ordered by time. I do some filtering first (eg.: filter
> cars) than apply sliding windows (eg.: 10 sec window size, with 5 sec step)
> and group by track id.
>
> Can we assume anything about the order of events in the windows? Is the
> order preserved? I need to process them in time order, if the order is not
> preserved what would be the best approach? I can of course collect and sort
> the data but it has significant performance and memory impact. (I need to
> process events on the billion scale).
>
> Thank you,
> Gyorgy
>
>
> --
>
> György Balogh
> CEO
> E gyorgy.balogh@ultinous.com <zs...@ultinous.com>
> M +36 30 270 8342 <+36%2030%20270%208342>
> A HU, 1117 Budapest, Budafoki út 209
> <https://www.google.com/maps/search/HU,+1117+Budapest,+Budafoki+%C3%BAt+209?entry=gmail&source=g>
> .
> W www.ultinous.com
>