-
2024.05.02 Galera cluster streaming replicationTIL 2024. 5. 2. 23:01
Galera Cluster Large Transactions, Streaming replication
긴 트랜잭션의 경우는 타 노드까지 전파되고 적용하는데 많은 어려움이 있었다.
어려움이라 하면 마스터에서 커밋된 이후에 복제 마스터가 복제를 할 텐데 gaplock 등의 문제로 먼저 커밋된 트랜잭션이 있다면 긴 트랜잭션은 롤백이 되어버린다.
초기 마스터 노드에만 락을 걸기 때문에 타 노드는 그냥 진행되다가 서로 충돌하고 긴 트랜잭션이 롤백되는 것이다.
이를 해결하기 위해서 galera 4부터 streaming replication를 지원한다.
초기 마스터 노드에서 변경되는 것을 청크 단위로 복제 노드에 보내는 것이다.
청크의 단위는 row, byte, statement 수가 될 수 있다.
이렇게 보내진 청크들은 복제노드에서도 로우 락이 걸리는 것이다.
이렇게 되면 긴 트랜잭션이 끝날 때가지 트랜잭션이 기다렸다가 실행된다.
모든 노드가 단일 노드처럼 락을 통제하는 것 이다.
이는 장점이자 단점이고 롤백또한 그렇다.
streaming replication은 CPU를 많이 사용하기 때문에 긴 트랜잭션일 때, 세션단위로 사용하는 것이 바람직하다.
'TIL' 카테고리의 다른 글
2024.05.04 Galeral Physical State Snapshot, Understanding the bug (0) 2024.05.04 2024.05.03 Galera SST (0) 2024.05.03 2024.05.01 ContextualDeserializer (0) 2024.05.01 2024.04.30 Batch system design question (0) 2024.04.30 2024.04.29 interview question (0) 2024.04.29