Apama 10.15.4 | Deploying and Managing Apama Applications | Deploying and Managing Queries | Running queries on correlator clusters | Deploying queries on multiple correlators
 
Deploying queries on multiple correlators
When using multiple correlators to deploy an Apama query application, it is the administrator's responsibility to keep the resources of the exported project up to date. If changes are made to a query, if queries are added or removed from a project, then all correlators should be updated to reflect the new state. It is possible to inject queries into a live running correlator, or delete queries from a correlator. Make sure that the injections and deletions are performed on all correlators in the cluster. Use engine_delete -F query-name to delete a query (see also Deleting code from a correlator). Note that this will also delete any queries using that query's output event (see also Using the output of another query as query input).
The queries runtime assumes that all members of a cluster:
*Share access to the same distributed MemoryStore state - by using a TCStore or BigMemory Terracotta Server Array.
Note:
Terracotta's TCStore is the recommended MemoryStore driver for Apama queries. Support for using BigMemory Max for Apama queries is deprecated and will be removed in a future release.
*Can connect freely between nodes.
*Run with clocks synchronized to within 1 second of each other. Apama recommends the use of the Network Time Protocol (NTP) to synchronize clocks.
The queries runtime will nominate a single member of the cluster to be primary, which will handle book keeping tasks such as garbage collecting nodes or handling failed cluster nodes.
If a correlator member of a cluster is using external clocking, then some functionality may not be available. The members will be able to share the same data, but an externally clocked node cannot be the primary node and timers will not be failed over from an externally clocked node. In normal operation, external clocking should only be used for testing purposes on a single node (where failover and scalability is not required).
A production deployment of multiple nodes would not use external clocking for routine processing of events. Use the source timestamp feature if the events may be delayed or delivered out of order. For more information, see Using source timestamps of events.