redis_psync2
Redis 4.0 Partial Resynchronization
Redis Server Course | Redis Technical Support | Redis Enterprise Server |
---|
Redis 4.0 Partial Resynchronization
이것은 Redis 4.0.0에서 기능이 개선된 부분 동기화에 대한 설명이다.
이 문서는 버전 4.0.0을 기준으로 만들었습니다.
이로 인한 이점은 다음과 같다.
이 문서는 버전 4.0.0을 기준으로 만들었습니다.
설명
마스터에 복제(replica) 노드가 2개 있는 상황에서 마스터 노드가 다운되었을때 복제 중 하나가 마스터가 되면 다른 복제서버는 새 마스터로부터 데이터를 받는다. 이때 3.2 버전까지는 복제서버가 가지고 있던 데이터를 버리고 새 마스터로 부터 Full Sync로 전체 데이터를 다시 받았다. 4.0 부터는 변경(추가)된 부분만 받는 Partial Sync로 바뀌었다.이로 인한 이점은 다음과 같다.
- Full Sync는 복제서버에 데이터를 보내기 위해서 전체 데이터를 rdb 파일에 쓰는데, Partial Sync로 바뀌면서 rdb 파일을 디스크에 쓰지 않으므로 디스크 부하가 없어졌다.
- 쓰여진 rdb 파일을 복제서버에 보내므로 네트워크 부하도 심했으나, Partial Sync로 바뀌면서 네트워크 부하도 현저히 줄었다.
- 복제서버도 받은 rdb 파일을 디스크에 쓰는 일이 없어졌고, 기존 데이터를 모두 지우고 rdb 파일에서 데이터 전체를 로딩하지 않아도 된다.
- 전체적으로 데이터를 쓰고, 보내고, 읽어들이는 작업이 대폭 줄었으므로 Failover 완료 시간이 많이 단축되었다.
사용 조건
새 마스터와 복제간에 차이나는 데이터를 보내야 하는데 이것은 새 마스터의 repl-backlog-size와 관계가 있다. 보내야할 데이터 크기가 repl-backlog-size보다 크다면 Full Sync로 처리된다. 이 파라미터의 기본값이 1mb인데 이 사이즈는 새 마스터에 추가된 데이터가 전혀없어도 복제서버가 약 2mb정도를 요청하므로 Full Sync가 된다. 그러므로 이 값을 최소 10mb 정도로 수정해서 사용할 것을 권장한다.<< Replication Intro | Replication Performance >> |
---|
Email
답글이 올라오면 이메일로 알려드리겠습니다.