Research Article

FastFlow: Efficient Scalable Model-Driven Framework for Processing Massive Mobile Stream Data

Algorithm 3

Global optimizer.
Input: <<operationModel>>: a set of operation list
: cost of cpu, memory and bandwidth for special operation
: weight of different resources
Output: metaTopology: the optimal execution topology
Step  1. Initialize and split basic operators
(1) Initialize (0-1)-matrix OperationMatrix(, )
(2) Extract basic operators com(operationModel) from <<operation Model>>
Step  2. Set similarity of multiple queries
(3) calculate pairwise JaccardSimilarity(Q1, Q2)
(4) <Query, Query>  order pairwise queries by their similarity score
Step  3. Local optimizer
(5) localoptimalTopology    <>
(6) localoptimalTopology  Meta-Model Local Optimize(<<operationModel>>, , )
Step  4. Global optimizer
(7) metaTopology    <>
(8) for all Q1, Q2 in <Query, Query>  do
(9) if Q1, Q2 not in metaTopology  then
(10) metaTopology  Merge Q1, Q2 and keep global semantic
(11) end for
(12) return  metaTopology