A computer program product for performing an action on data in databases of a multi-node system, each node including an indicia engine, each node having access to a respectively associated database, each of the databases having a first subset of data that match each other and which are kept in synchronization with each other, at least one of the databases having a second subset of data that intentionally does not match a subset of data in at least one of the other databases and which is not kept in synchronization with the at least one of the other databases, the computer program product comprising a non-transitory computer readable storage medium tangibly embodying non-transitory computer executable program instructions thereon, that, when executed by one or more processors, cause one or more computing devices to:
- (a) receive at each node a plurality of matching requests to perform an action on data in the database associated with each node,
- wherein at least one of the matching requests is a request to perform an action on at least a part of the first subset of data that match each other and which is kept in synchronization with each other, and
- wherein at least one of the matching requests is a request to perform an action on at least a part of the second subset of data that intentionally does not match a subset of data in at least one of the other databases and which is not kept in synchronization with the at least one of the other databases;
- (b) compute, in the indicia engine at each node, for each of the matching requests, indicia of the request to be performed on data in the database associated with each node;
- (c) send the indicia computed at each node for each of the matching requests to a comparator;
- (d) output, by the comparator, for each of the matching requests a result of a comparison of the indicia;
- (e) perform either a first follow-up action or a second follow-up action depending upon the result of the comparison for each of the matching requests,
- wherein the first follow-up action is performed when the result of the comparison shows a match, the match indicating that the request to be performed is performed only on the first subset of data in the database associated with each node that match each other and which are kept in synchronization with each other, and
- wherein the second follow-up action is performed when the result of the comparison shows a mismatch, the mismatch indicating that the request to be performed is performed at least in part on the second subset of data in the database associated with one of the nodes that intentionally does not match a subset of data in at least one of the other databases and which is not kept in synchronization with the at least one of the other databases.