Basic High Availability

Registered by Alexander Yip

Congress needs to support high availability (HA) for API requests so that clients can continue to make successful API requests to Congress even if a congress server becomes unavailable. This proposal describes a basic HA solution that replicates the entire Congress server as-is. Each replica runs the policy engine, contains all the table data, and runs the datasource drivers, meaning that the datasources will send data once for each replica.

Blueprint information

Status:
Complete
Approver:
Tim Hinrichs
Priority:
High
Drafter:
Alexander Yip
Direction:
Approved
Assignee:
Alexander Yip
Definition:
Approved
Series goal:
Accepted for mitaka
Implementation:
Implemented
Milestone target:
milestone icon mitaka-2
Started by
Tim Hinrichs
Completed by
Tim Hinrichs

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/basic-high-availability,n,z

Addressed by: https://review.openstack.org/170929
    Add datasource synchronizer

Addressed by: https://review.openstack.org/171358
    Add datasource synchronizer

Capturing a discussion from IRC about race-conditions on rule-writes. Two options. (1) single-master for rule/policy writes. (2) when doing policy rule writes, we need to open a transaction, sync the PE with the DB, then do all the safety checks, and write the new rule(s) if the checks pass, finally closing the transaction. This is necessary to ensure there are no race-conditions that produce a DB in an invalid state--i.e. one that the PE can't handle, such as recursive rules.

Addressed by: https://review.openstack.org/232828
    Add synchronizer for policies and rules

Addressed by: https://review.openstack.org/236147
    Revert "Code re-org for distributed architecture"

Addressed by: https://review.openstack.org/210165
    Add a script to start and monitor children processes

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.