One of use cases is a batch application with multiple reduce/aggregate 
operators.

Thank you,
Vlad

Отправлено с iPhone

> On Apr 1, 2017, at 10:23, Munagala Ramanath <r...@datatorrent.com> wrote:
> 
> What's a use case for this ?
> 
> Ram
> 
>> On Sat, Apr 1, 2017 at 8:12 AM, Vlad Rozov <v.ro...@datatorrent.com> wrote:
>> 
>> All,
>> 
>> Currently Apex assumes that an operator can emit on any defined output
>> port and all streams defined by a DAG are active. I'd like to propose an
>> ability for an operator to open and close output ports. By default all
>> ports defined by an operator will be open. In the case an operator for any
>> reason decides that it will not emit tuples on the output port, it may
>> close it. This will make the stream inactive and the application master may
>> undeploy the downstream (for that input stream) operators. If this leads to
>> containers that don't have any active operators, those containers may be
>> undeployed as well leading to better cluster resource utilization and
>> better Apex elasticity. Later, the operator may be in a state where it
>> needs to emit tuples on the closed port. In this case, it needs to re-open
>> the port and wait till the stream becomes active again before emitting
>> tuples on that port. Making inactive stream active again, requires the
>> application master to re-allocate containers and re-deploy the downstream
>> operators.
>> 
>> It should be also possible for an application designer to mark streams as
>> inactive when an application starts. This will allow the application master
>> avoid reserving all containers when the application starts. Later, the port
>> can be open and inactive stream become active.
>> 
>> Thank you,
>> 
>> Vlad
>> 
>> 
> 
> 
> -- 
> 
> _______________________________________________________
> 
> Munagala V. Ramanath
> 
> Software Engineer
> 
> E: r...@datatorrent.com | M: (408) 331-5034 | Twitter: @UnknownRam
> 
> www.datatorrent.com  |  apex.apache.org

Reply via email to