이중화 (Replication)
MACHBASE Enteprise Edition은, 각 Node의 서비스가 중단되어도 전체 클러스터 서비스를 유지하기 위해 Node 이중화 (Replication) 를 지원한다.
Coordinator Replication
Enterprise Edition 에서 Coordinator는 최대 2개까지 생성이 가능하다.
2개 중 하나는 Primary, 다른 하나는 Secondary Coordinator 가 된다.
두 Coordinator는 지속적으로 Cluster Node 정보를 계속 유지한다.
어느 한 쪽이 비정상적으로 종료되더라도, 나머지 Coordinator가 Cluster Node 관리를 계속 할 수 있다.
Coordinator가 모두 비정상 종료되어도, Broker와 Warehouse는 기존 Cluster 정보로 서비스를 유지할 수 있다. 하지만, 이 때부터는 Node 추가/삭제를 할 수 없으며, Broker나 Warehouse가 비정상 종료되어도 다른 Node에서 해당 사실을 알아차릴 수 없다.
Broker Replication
클러스터 전체에 대한 클라이언트의 접속을 담당하는 Node이므로, Broker를 여러 개 둘 수 있다. 즉, Broker A가 종료된 경우에는 Broker B를 통해 계속 쿼리를 수행할 수 있다.
Leader Broker가 종료된 경우, Coordinator는 다른 Broker 중에서 하나를 Leader로 선발한다.
모든 Broker는, 모든 Warehouse 와 마찬가지로 동일한 테이블 스키마/인덱스 객체를 가지고 있다. 단, 하나의 Broker는 다른 Broker와 Volatile Table 데이터를 동기화하지 않는다. Broker A에 입력된 Volatile Table 데이터가, Broker B에는 존재하지 않는다.
이를 지원하지 않는 이유는, DELETE가 가능한 Volatile Table의 특성에 맞추면 이중화 성능에 영향을 미치기 때문이다.
Warehouse Replication : Standby
Enterprise Edition에서는, Warehouse Active가 입력받은 데이터를 복제할 수 있도록 Warehouse Standby를 연결할 수 있다.
이렇게 연결된 Active-Standby 의 집합을 Replication Group 이라고 한다.
하나의 Replication Group 에서는, Active가 입력받은 데이터를 Standby도 유지하고 있다는 것을 보장한다.
Active가 비정상적으로 종료되더라도, Coordinator가 Standby를 Active로 승격시켜 서비스를 계속하게 할 수 있다.
Warehouse Standby가 종료되는 것은, 클러스터 입장에서는 서비스에 아무런 문제가 없다. 대신, 더 이상의 백업 Node가 존재하지 않으므로, 관리자가 Standby를 추가하는 조치가 필요하다.