AFAIK in storm 0.8.2, the trident can emit only one stream.  I don't
know in 0.9 version.
In basic storm u can have different streams emitted.


On 1/11/14, Myidealand account <[email protected]> wrote:
> Hello ,
>
>
> is there any way to achieve chain level transaction using trident that is I
> want below mentioned whole chain to maintain transaction integrity ( at
> chain level )
>
> Batch input -> init()-> tuple ->persistentaggregation -> MultiReduction
> ->complete()
> OR
>
> If I create topology like this
>
> .each() // will call init
> .groupBy(key).persistentAggregate(<>) // aggregation
> // stream 1 output  ---------------------------------------- 1st stream
> chain
> .each() // will call init
> .groupBy(key).persistentAggregate(<>) // aggregation
> // stream 2 output  ---------------------------------------- 2nd stream
> chain
>
> multireduce(s1 and s2).groupBy(key).persistentAggregate(<function3>) //
> aggregation -- final output
>
> Now my problem is my fields are related ,I want to emit aggregated fields
> only if all begin intermediate  and end {indicators of my tuple} fields
> have arrived for that key, that is I want the aggregation to be
> transactional however instead of emitting the whole batch map ,
> only data against  selective keys I want to emit and if for particular key
> begin and end tuple indicator has arrived then data should be pass to next
> multireduce level and if exception occurs at function3 , the whole batch is
> replayed, finally my multireduce should get the same filtered aggregated
> values against keys which it earlier got.
>
> {I am using ITridentSpout}
> How can I achieve this ?
>
>
>
> Regards
>

Reply via email to