Redundancy

SciDB supports replication of array data for availability. The goals of data replication are:

  • Protect against data loss due to server failures.
  • Support read and analytic queries in failure scenarios.

Replication is specified in the config.ini file via the redundancy setting (where (r) is the redundancy level), which is the number of additional copies of data SciDB maintains within the cluster. 

  • The new value specified in config.ini becomes active after SciDB restart.

    Only the arrays created after the redundancy change maintain the new redundancy level. The existing arrays retain the redundancy level specified prior to the change.

  • The total number of copies (1 + r) must not exceed the size of the cluster membership (and r <= 8). The maximum number of failures tolerated by such a cluster is at most r. That is, SciDB's replication guarantees that there is no data loss for up to r server failures. In  SciDB, the server has failed when one or more hosted instances fail.

Replicas are created as part of update transactions. An update transaction commits successfully only if all replicas are committed on all instances. If the update transaction encounters an error (at any instance), then transaction rollback occurs and all pending changes revert.

Not all queries are update transactions. AFL update transactions are performed with the operators insert(), load(), and store().