본문 바로가기

개인공부

Server 용어정리

반응형

아래는 신입이 서버쪽에서 회의를 하면서 용어정리가 명확히 되지않아서 정리하는 내용입니다.

[ 리플리케이션 ]

- 여러 개의 DB를 권한에 따라 수직적인 구조(Master-Slave)로 구축하는 방식이다. 리플리케이션에서 Master Node는 쓰기 작업 만을 처리하며 Slave Node는 읽기 작업만을 처리한다. 비동기 방식으로 노드를 간의 데이터를 동기화한다.

 

1. Master 노드에 쓰기 트랜잭션이 수행

2. Master 노드는 데이터를 저장하고 트랜잭션에 대한 로그를 파일에 기록(BIN LOG)

3. Slave 노드의 IO Thread는 Master 노드의 로그 파일(BIN LOG)를 파일(Replay LOG)에 복사한다.

4. Slave 노드의 SQL Thread는 파일(Replay Log)를 한 줄씩 읽으며 데이터를 저장한다.

 

특징으로는 무결성 검사를 하지 않음.

 

장점

- DB요청의 대부분이 Select인 경우 리플리케이션 만으로 성능 향상 기대

- 비동기 방식으로 운영되어 지연 시간이 거의 없음

 

단점

- 노드들 간의 데이터 동기화가 보장되지 않아 일관성있는 데이터를 얻지 못할 수 있다.

- Master 노드가 다운되면 복구 및 대처가 까다롭다.

 

[ 클러스터링 ]

- 여러 개의 DB를 수평적인 구조로 구축하는 방식.

- 클러스터링은 분산 환경을 구성하여 Single point of failure와 같은 문제를 해결할 수 있는 Fail Over 시스템을 구축하기 위해서 사용된다. 클러스터링은 동기 방식으로 노드를 간의 데이터를 동기화하는데, 자세한 처리 방법은 아래와 같다.

 

1. 1개의 노드에 쓰기 트랜잭션 수행 , COMMIT

2. 실제 디스크에 내용을 쓰기 전에 다른 노드로 데이터의 복제 요청

3. 다른 노드에서 복제 요청을 수락했다는 신호(OK)를 보내고, 디스크에 쓰기를 시작

4. 다른 노드로부터 신호(OK)를 받으면 디스크에 데이터를 저장

 

장점

- 노드들 간의 데이터를 동기화하여 항상 일관성있는 데이터

- 1개의 노드가 죽어도 다른 노드가 살아 있어 시스템을 계속 장애없이 운영할 수 있따.

 

단점

- 성능이 떨어질수가 있음

- 장애가 전파된 경우 처리가 까다로움, 데이터 동기화에 의해 스케일링에 한계 있음.

 

[ 샤딩 ]

- DB를 분산하여 트래픽을 분산할 목적으로 고려한다.

 

[ Modular sharding ]

- PK를 모듈러 연산한 결과로 DB를 특정하는 방식입니다.

- 장점 : 레인지샤딩에 비해 데이터가 균일하게 분산됩니다.

- 단점 : DB를 추가 증설하는 과정에서 이미 적재된 데이터 재정렬이 필요합니다.

- 일정 수준에서 유지될 것으로 예상되는 데이터 성격을 가진 곳에 적용할 때 어울리는 방식

 

[ Range sharding ]

- 레인지샤딩은 PK의 버위를 기준으로 DB를 특정하는 방식

- 장점 : 모듈러샤딩에 비해 기본적으로 증설에 재정렬 비용이 들지 않습니다.

- 단점 : 일부 DB에 데이터가 몰릴 수 있습니다.

- 증성작업에 드는 비용이 크지않습니다. 데이터가 극격히 증가할 여지가 있다면 레인지방식도 좋은 선택.

 

[ Router ]

- 모듈러와 레인지방식이 어떤 기준으로 데이터를 분산시킬지에 대한 명세를 정의한 것이라면, 실제로 분산된 DB에 접근하기 위한 논리적인 작업은 라우터가 담당하게 됩니다.

 

출처

https://mangkyu.tistory.com/97

https://techblog.woowahan.com/2687/

반응형

'개인공부' 카테고리의 다른 글

쿠버네티스 : minikube , kubelctl 로 시작해보기  (0) 2022.02.04
YAML 문법  (1) 2022.02.04
Docker: 호스트 볼륨  (0) 2021.12.06
Docker: 기본 명령어 정리  (0) 2021.12.06
Array.from 과 Array().fill 차이점.  (0) 2021.07.01