programing

MariaDB Galera 클러스터 참조 무결성 제약 조건

copysource 2022. 10. 11. 22:47
반응형

MariaDB Galera 클러스터 참조 무결성 제약 조건

어플리케이션의 MariaDB Galera 클러스터를 평가하는 중입니다.클러스터는 행 레벨과 스테이트먼트레벨의 복제를 서포트하고 있는 것으로 알고 있습니다.행 레벨의 레플리케이션으로 기울고 있습니다.데이터 모델에는 서로 관련된 여러 엔티티가 있습니다.우리는 단체들 사이에 외부 키 관계를 맺을 것이다.

행 기반 복제를 사용할 경우 클러스터가 다음과 같은 시나리오를 처리하는 방법을 이해하고 싶습니다.

클러스터에는 3개의 노드가 있습니다.

클래스나 학생등의 엔티티가 있습니다.이 과정에는 외국어 키인 Student -> Class가 있습니다.

2개의 노드(N1 및 N2)가 2개의 다른 트랜잭션에서2개의 개별 갱신을 받습니다.

A) 시각 t1 : 노드 N1은 특정 클래스 c1 및 c2의 학생(s1 및 s2)을 위한 삽입물을 각각 취득한다.

B) 시각 t2 : 클래스 c1이 노드 N2에서 삭제됩니다.

C) 시각 t3 : 변경(학생 s1과 s2의 추가)이 N1에서 N2로 푸시됩니다.

학생 추가와 관련된 모든 거래가 취소됩니까?

RBR만

당시에COMMIT에러가 없는지 확인해야 합니다.이 시점에서 다른 노드와의 경합을 확인합니다.

즉, 1개의 노드에서 경합이 발생하지 않을 수 있습니다.단, (에서)COMMIT)는, 그 노드에서 정상적으로 보이는 것이 다른 노드에서 동시에 발생하고 있는 것과 충돌합니다.

갈레라 힌트

일반적으로 "데드록"이 발생할 때마다 전체 트랜잭션을 재실행하기만 하면 됩니다.아마 두 번째로 동작할 것입니다(또는 리모트트랜잭션에 의해 현재 노드가 되었기 때문에 다른 오류가 발생합니다).

언급URL : https://stackoverflow.com/questions/43822101/mariadb-galera-cluster-referential-integrity-constraint

반응형