beam-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kenneth Knowles (JIRA)" <>
Subject [jira] [Commented] (BEAM-1612) Support real Bundle in Flink runner
Date Sun, 07 May 2017 16:18:04 GMT


Kenneth Knowles commented on BEAM-1612:

This is probably already obvious and taken into account in all of this discussion, but I want
to raise deliberately that the requirement on bundling is one-way:

 - it is required that there is a finish bundle / flush call in between processing an element
and including it in a checkpoint
 - it is not required to actually checkpoint with each flush

So unless I have miscalculated, I do think it is fine to set a timer and periodically call
"finish bundle" and then only include those elements that preceded it as part of the checkpoint,
if such bookkeeping is reasonable. I can't comment on the other ideas.

> Support real Bundle in Flink runner
> -----------------------------------
>                 Key: BEAM-1612
>                 URL:
>             Project: Beam
>          Issue Type: Improvement
>          Components: runner-flink
>            Reporter: Jingsong Lee
> The Bundle is very important in the beam model. Users can use the bundle to flush buffer,
can reuse many heavyweight resources in a bundle. Most IO plugins use the bundle to flush.

> Moreover, FlinkRunner can also use Bundle to reduce access to the FlinkState, such as
first placed in JavaHeap, flush into RocksDbState when invoke finishBundle , this can reduce
the number of serialization.
> But now FlinkRunner calls the finishBundle every processElement. We need support real
> I think we can have the following implementations:
> 1.Invoke finishBundle and next startBundle in {{snapshot}} of Flink. But sometimes this
"Bundle" maybe too big. This depends on the user's checkpoint configuration.
> 2.Manually control the size of the bundle. The half-bundle will be flushed to a full-bundle
by count or eventTime or processTime or {{snapshot}}. We do not need to wait, just call the
startBundle and finishBundle at the right time.

This message was sent by Atlassian JIRA

View raw message