2014-10-08 3 views
0

내가 갈레 클러스터에 mariaDD 기술 자료를 읽고 있었고, 난이 건너 온 :동기 대 비동기 클러스터링

동기 및 비동기 복제 사이의 기본적인 차이점은 "동기"보장 변화의 한 노드에서 발생하는 경우 그 클러스터, 그들은 다른 노드에서 "동 기적으로"또는 동시에 발생했습니다. "비동기식"은 "마스터"노드에서의 변경 사항 적용과 "슬레이브"노드에 대한 변경 사항 전파 사이의 지연을 보장하지 않습니다. 지연은 짧거나 길 수 있습니다. 또한 마스터 노드가 충돌하면 최신 변경 사항 중 일부가 손실 될 수 있음을 의미합니다.

마지막 문장에서는 비동기식 클러스터 설정의 슬레이브 업데이트가 동시에 수행되지 않아도 , 마스터에서 업데이트가 수행됨에 따라이 업데이트를 bin 로그 파일에 기록합니다. 따라서 모든 데이터가 슬레이브로 전달되기 전에 마스터가 충돌하는 경우 bin 로그 파일이 업데이트를 로깅 한 이후 마스터가 복원되면 업데이트가 진행됩니다. 누군가 내 이해가 잘못되었는지 말해 주시겠습니까? 감사.

답변

1

정상적인 복제 쌍의 예에서, 슬레이브는 마스터가 다시 돌아온 후에 따라 잡을 것입니다. 마스터가 돌아 왔다고 가정하면 데이터를 실제로 잃지는 않지만 마스터가 영구적으로 죽은 경우 데이터가 손실됩니다. 여기서 언급 한 기술 자료는 복제 지연에 대해 설명하고 복제 스트림의 전체 무결성에 대해서는 설명하지 않습니다.

정상적인 복제에서는 슬레이브 스레드 (마스터에서 복제 이벤트를 가져 오는 부분)가 마스터를 따라갈 수 있으면 마스터가 충돌 할 경우 슬레이브는 단지 2 초를 잃을 수 있습니다. 그러나 유지할 수없고 예를 들어 1 시간 뒤면 슬레이브는 1 시간의 데이터에 액세스 할 수 없게됩니다. 슬레이브의 데이터에 액세스 할 수없는 또 다른 방법은 최대 릴레이 로그 크기가 설정되어 있고 도달 한 경우입니다.

Galera는 쓰기가 완료된 노드가 쓰기를 완료하면 클러스터의 모든 노드에 실제로 쓰기 전에 모든 노드가 해당 노드에 실제로 커밋되도록합니다. 같은 글. galera로, 모든 쓰기는 기본적으로 모든 노드에서 동시에 발생합니다. 정상 작동 중에 언제라도 노드를 잃어 버리면 데이터가 손실되지 않습니다.

관련 문제