Asynchronous Commit Setup

After creating and starting your active data center(s), you can add a passive data center through the following steps:

  1. Obtain a data center in a remote location that contains suitable machines and reliable storage.

  2. Start one or more Admin Processes in that data center. For protection from single-point failures, it is best to run 3 Admin Processes.

    The configuration of each AP in each datacenter of the database should include an "initialMembership" property that includes one AP from each data center. See notes about initialMembership.

  3. Create as many archives as you want to run observers. For protection from single-point failures, it is best to create 2 archives on distinct storage volumes and run 2 Storage Managers.

    Specify the --observers option for these archives. For example,

    nuocmd create archive --observers unpartitioned --db-name ... --server-id ... --archive-path ...
    Archive(archive_path=..., db_name=..., id=..., server_id=..., state=PROVISIONED)

    When using storage groups, specify the names of all storage groups to be observed after --observers.

  4. Start Storage Managers to serve each archive. They will be Asynchronous Storage Managers because their archives have the observers property for all storage groups that they serve. For example,

    nuocmd start database --db-name ... --incremental
  5. Establish your procedures for deciding when the active data center is unusable and handing off responsibility to the passive data center.

Storage Groups

When using storage groups, you can make each Asynchronous Storage Manager serve all storage groups, or you can improve performance by spreading the load across SMs.

Each archive in the passive data center serves a subset of storage groups and is an observer for a subset of storage groups. We recommend that these two subsets be identical. This ensures that all SMs in the passive data center are asynchronous SMs so long-distance network latency has no impact on database performance.

For protection from single-point failures, it is best to create 2 archives on distinct storage volumes for each distinct subset of storage groups. Archives that serve different subsets of storage groups can share a volume if the storage hardware provides sufficient performance.

Kubernetes

TBD how to setup when using kubernetes will be filled in later once it has been implemented