JongHyok Lee created GEARPUMP-31:
------------------------------------

             Summary: Dynamic processor deletion of DAG
                 Key: GEARPUMP-31
                 URL: https://issues.apache.org/jira/browse/GEARPUMP-31
             Project: Apache Gearpump
          Issue Type: New Feature
            Reporter: JongHyok Lee


Dynamic processor deletion of DAG required as a part of Dynamic DAG.

Here's my usecase sample.

First, let's assume that there is an application which is consisted with 
several processes

(A) : Source which reads from Kafka
(B) : Filter input with specific value
(C) : Filter input with another specific value
(D) : Sink input to HDFS
(E) : Evaluate value of f(x1, x2, ...) where x1, x2, ... is part of input
(F) : Transform input to another form
(G) : Merge two input stream to one
(H) : Sink input to Kafka topic
(I) : Sink input to another Kafka topic
(J) : Sink input to the third Kafka topic

and the graph is
(A) ~> (D)
(A) ~> (B) ~> (E) ~> (H)
(E) ~> (G) ~> (I)
(A) ~> (C) ~> (F) ~> (J)
(F) ~> (G)

While the application is running, let's assume that there was a request from 
the consuming component (it can be UI or other system which consumes kafka 
message) of the data stream that they don't need merged data any more. Then 
maybe (G) ~> (I) part of the graph should be removed from DAG. Also, if 
consuming component says they don't need different 'value' to filter, then 
processor (C) should be removed and (F) should receive input from (F) (input 
might be explicitly described in this case).

This kind of functionality is really important for the system dealing with 
really huge data streams, and so cannot let even part of DAG processors use CPU 
power when not needed.




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to