의견.png

"레플리케이션"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
(특징)
(특징)
9번째 줄: 9번째 줄:
 
동기식 복제의 장점은 팔로워가 리더와 일관성 있게 최신 데이터 복사본을 갖는 것을 보장한다. 동기식의 경우 리더가 동작하지 않아도 데이터는 팔로워에서 계속 사용할 수 있다. 그러나 동기적으로 동작하는 팔로워가 응답하지 않는다면 쓰기는 처리될 수 없는 단점이 존재한다. 즉, 리더는 해당 팔로워가 다시 동작할 때까지 기다려야 하는 문제가 발생한다. 그렇기 때문에 모든 팔로워가 동기식으로 복제하는 방법은 사용되지 않는다. 현실적으로 데이터베이스에서 동기식 복제를 사용하려면 팔로워 하나는 동기식 다른 팔로워는 비동기식 복제를 하도록 사용한다.
 
동기식 복제의 장점은 팔로워가 리더와 일관성 있게 최신 데이터 복사본을 갖는 것을 보장한다. 동기식의 경우 리더가 동작하지 않아도 데이터는 팔로워에서 계속 사용할 수 있다. 그러나 동기적으로 동작하는 팔로워가 응답하지 않는다면 쓰기는 처리될 수 없는 단점이 존재한다. 즉, 리더는 해당 팔로워가 다시 동작할 때까지 기다려야 하는 문제가 발생한다. 그렇기 때문에 모든 팔로워가 동기식으로 복제하는 방법은 사용되지 않는다. 현실적으로 데이터베이스에서 동기식 복제를 사용하려면 팔로워 하나는 동기식 다른 팔로워는 비동기식 복제를 하도록 사용한다.
 
보통 리더 기반 복제의 경우 완전히 비동기식으로 구성한다. 리더가 잘못돼서 복구할 수 없는 경우 데이터가 유실될 수 있다. 하지만 모든 팔로워가 잘못되더라도 리더는 쓰기 처리를 계속할 수 있다.
 
보통 리더 기반 복제의 경우 완전히 비동기식으로 구성한다. 리더가 잘못돼서 복구할 수 없는 경우 데이터가 유실될 수 있다. 하지만 모든 팔로워가 잘못되더라도 리더는 쓰기 처리를 계속할 수 있다.
 +
 +
===레플리케이션 모드===
 +
레플리케이션을 위해 LAZY 와 EAGER 모드를 지원하고 있다. 레플리케이션 모드 별로 성능, 레플리케이션 밀림현상, 데이터 일관성 측면에서 아래 표에서 보는 것처럼 서로 다른 특징을 갖는다.
 +
:{|class=wikitable width=600
 +
|+<big>'''이중화 모드'''</big>
 +
!align=center|모드
 +
!align=center|성능
 +
!align=center|이중화 밀림 현상
 +
!align=center|데이터 일관성
 +
|-
 +
|align=center|LAZY
 +
|align=center|높음
 +
|align=center|발생 가능
 +
|align=center|낮음
 +
|-
 +
|align=center|EAGER
 +
|align=center|중간
 +
|align=center|발생 불가능
 +
|align=center|높음
 +
|}
 +
 +
*LAZY 모드
 +
:LAZY 모드는 지역 서버에서 이중화 대상 테이블에 대한 DML 을 수행하는 주 트랜잭션이 발생하면, 이중화의 송신 쓰레드가 주 트랜잭션이 기록한 로그를 수집하여 XLog 로 가공하여 전송한다. 그리고 원격 서버의 수신 쓰레드는 XLog 를 수신하여 복제 트랜잭션으로 DB 에 반영하는 형태이다. 이처럼 서비스 트랜잭션 (주 트랜잭션)과 복제 트랜잭션이 완전히 별개로 동작하기 때문에 트랜잭션의 영향을 받지 않아 지역 서버의 성능이 우수하다. 그러나 송신 쓰레드가 언제나 주 트랜잭션을 따라가는 입장이기 때문에, 매우 바쁜(busy) 사이트 환경에서는 이중화가 밀리는 현상이 발생할 수 있다.
 +
 +
*EAGER 모드
 +
:EAGER 모드는 지역 서버에서 발생한 주 트랜잭션과 관련된 모든 로그가 원격 서버에서도 정상적으로 반영된 것을 확인한 후에 지역 서버에서 커밋을 수행하고, 동시에 원격 서버에서도 복제 트랜잭션의 커밋을 수행하는 트랜잭션 동기화1 방식이다. EAGER 모드의 이점은 트랜잭션을 동기화 하기 때문에 트랜잭션을 병렬로 복제할 수 있다는 점이다. 그러므로, EAGER 모드로 이중화를 수행할 때는 다수의 송신 쓰레드가 병렬로 복제를 수행한다. 병렬 쓰레드의 개수는 REPLICATION_EAGER_PARALLEL_FACTOR 프로퍼티로 설정할 수 있다.
 +
트랜잭션 동기화로 인해 성능이 조금 떨어지는 단점이 있으나, 트랜잭션 발생이 매우 빈번한 사이트에서도 LAZY 모드처럼 이중화가 밀리는 현상이 발생하지는 않는다.
  
 
==작동원리==
 
==작동원리==

2020년 7월 29일 (수) 15:22 판

레플리케이션(Replication)은 서비스를 수행하고 있는 서버의 데이터에 대한 백업 데이터베이스의 최신 데이터 유지와, 서버의 예기치 않은 종료가 발생했을 때 대체 서버를 이용하여 서비스를 재개할 수 있는 무정지 운영 환경을 제공하는 것을 목적으로 한다.

개요

레플리케이션은 데이터 저장과 백업하는 방법과 관련이 있는 데이터를 호스트 컴퓨터에서 다른 컴퓨터로 복사하는 것인데 이때 다른 컴퓨터가 반드시 떨어진 지역에 있어야 하는 것은 아니다. 컴퓨터 네트워크 상태에서는 데이터 저장을 할 수 있게 하는데 로컬 데이터 물리적 기억 장치와는 완전하게 구분된다. 레플리케이션은 유명한 데이터베이스 관리 시스템 (RDBMS, Relational DataBase Management Systems)에서 추가적으로 제공하거나 여러 대의 데이터베이스 서버의 부하를 맞추어 줄 용도로 제공한다. 레플리케이션은 남아 있는 리소스와 관련이 있는데 소프트웨어 요소나 하드웨어 부품이 말해 주며, 이는 신뢰성, 허용 오차, 그리고 성능을 개선한다. 전형적으로 '레플리케이션 인 스페이스'(replication in space)와 관련이 있는데 이것은 동일한 데이터를 다수의 저장 장치에 저장하거나 동일한 계산 업무를 다수 장치에서 수행하는 것이다. 또한 '레플리케이션 인 타임'(replication in time)는 컴퓨터 계산 수행이 반복적으로 한 개의 장치에서 일어나는 것이다.[1]

특징

  • 동기식 복제와 비동기식 복제 : 복제는 동기 또는 비동기적으로 이루어진다. 동기식 복제는 리더가 해당 팔로워가 쓰기를 수신했는지 확인해줄 때까지 기다리는 방식이다. 아래의 그림에서는 Follwer1의 복제는 동기식으로 동작한다.
R1280x0.png

동기식 복제의 장점은 팔로워가 리더와 일관성 있게 최신 데이터 복사본을 갖는 것을 보장한다. 동기식의 경우 리더가 동작하지 않아도 데이터는 팔로워에서 계속 사용할 수 있다. 그러나 동기적으로 동작하는 팔로워가 응답하지 않는다면 쓰기는 처리될 수 없는 단점이 존재한다. 즉, 리더는 해당 팔로워가 다시 동작할 때까지 기다려야 하는 문제가 발생한다. 그렇기 때문에 모든 팔로워가 동기식으로 복제하는 방법은 사용되지 않는다. 현실적으로 데이터베이스에서 동기식 복제를 사용하려면 팔로워 하나는 동기식 다른 팔로워는 비동기식 복제를 하도록 사용한다. 보통 리더 기반 복제의 경우 완전히 비동기식으로 구성한다. 리더가 잘못돼서 복구할 수 없는 경우 데이터가 유실될 수 있다. 하지만 모든 팔로워가 잘못되더라도 리더는 쓰기 처리를 계속할 수 있다.

레플리케이션 모드

레플리케이션을 위해 LAZY 와 EAGER 모드를 지원하고 있다. 레플리케이션 모드 별로 성능, 레플리케이션 밀림현상, 데이터 일관성 측면에서 아래 표에서 보는 것처럼 서로 다른 특징을 갖는다.

이중화 모드
모드 성능 이중화 밀림 현상 데이터 일관성
LAZY 높음 발생 가능 낮음
EAGER 중간 발생 불가능 높음
  • LAZY 모드
LAZY 모드는 지역 서버에서 이중화 대상 테이블에 대한 DML 을 수행하는 주 트랜잭션이 발생하면, 이중화의 송신 쓰레드가 주 트랜잭션이 기록한 로그를 수집하여 XLog 로 가공하여 전송한다. 그리고 원격 서버의 수신 쓰레드는 XLog 를 수신하여 복제 트랜잭션으로 DB 에 반영하는 형태이다. 이처럼 서비스 트랜잭션 (주 트랜잭션)과 복제 트랜잭션이 완전히 별개로 동작하기 때문에 트랜잭션의 영향을 받지 않아 지역 서버의 성능이 우수하다. 그러나 송신 쓰레드가 언제나 주 트랜잭션을 따라가는 입장이기 때문에, 매우 바쁜(busy) 사이트 환경에서는 이중화가 밀리는 현상이 발생할 수 있다.
  • EAGER 모드
EAGER 모드는 지역 서버에서 발생한 주 트랜잭션과 관련된 모든 로그가 원격 서버에서도 정상적으로 반영된 것을 확인한 후에 지역 서버에서 커밋을 수행하고, 동시에 원격 서버에서도 복제 트랜잭션의 커밋을 수행하는 트랜잭션 동기화1 방식이다. EAGER 모드의 이점은 트랜잭션을 동기화 하기 때문에 트랜잭션을 병렬로 복제할 수 있다는 점이다. 그러므로, EAGER 모드로 이중화를 수행할 때는 다수의 송신 쓰레드가 병렬로 복제를 수행한다. 병렬 쓰레드의 개수는 REPLICATION_EAGER_PARALLEL_FACTOR 프로퍼티로 설정할 수 있다.

트랜잭션 동기화로 인해 성능이 조금 떨어지는 단점이 있으나, 트랜잭션 발생이 매우 빈번한 사이트에서도 LAZY 모드처럼 이중화가 밀리는 현상이 발생하지는 않는다.

작동원리

각주

  1. 레플리케이션 위키백과 - https://ko.wikipedia.org/wiki/레플리케이션

참고자료

같이 보기


  의견.png 이 레플리케이션 문서는 하드웨어에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.