Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

At the beginning, Odysseus translates the query in a logical graph. This logical graph is preprocessed and then partitioned. The result of the Partition phase is a collection of query parts, which are individually modified in the Modification phase. However, the Modification-phase is optional an can be omitted. After that, the Allocation phase decides, which query part should be executed on which OdysseusNode. Finally, the query parts are transmitted to the selected nodes. Preprocess, Partition, Modification, Allocation and Postprocess have provide multiple strategies the user can select from (individually for each query, if needed).
Partition The strategies are explained in the next sections. Partition and Allocation allows allow only one selected strategy at a time. The other phases can be used multiple times with different strategiesper query

One example for query distribution is as follows:

Code Block
languagejava
linenumberstrue
/// Indication that we want to distribute queries
#CONFIG DISTRIBUTE true 

#NODE_PARTITION OPERATORCLOUD			/// Select OperatorCloud strategy for Partition phase
#NODE_MODIFICATION REPLICATION			/// Select Replication-strategy for Modification phase
#NODE_ALLOCATION USER					/// Select User-strategy for Allocation phase
#NODE_POSTPROCESSOR LOCALSOURCES		/// Select multiple strategies for post processing
#NODE_POSTPROCESSOR LOCALSINKS
#NODE_POSTPROCESSOR MERGE

/// "Typical" query definition here
#METADATA TimeInterval
#PARSER PQL
#ADDQUERY
<Query>

If the user had not specified strategies for some phases, OdysseusNet will use specific strategies as default (configurable):

PhaseDefault strategy
Preprocess<none>
Partitionquerycloud
Modification<none>
Allocationquerycount
Postprocessmerge

The Transmission phase cannot be altered. 

Preprocess

 

Partition

 

Modification

...