티스토리 뷰

Database

샤딩과 레플리카

out of coding 2019. 10. 23. 17:17

저도 크게 잘 알지는 못합니다.
그래서 공부한 만큼만 적어볼랍니다. ^^

샤딩
단일 논리적 데이터 셋을 다수의 DB에 쪼개고 나누는 방법

  • 목적 : 트래픽 분산에 목적을 가지고 사용을 하며 샤딩된 노드끼리 통신해야 하는 경우에는 트래픽이 분산되지 않고 다시 몰리는 경우가 발생할 수도 있습니다.
  • 문제점 : 필요할 경우 샤딩된 각 디비에서 데이터를 꺼내와서 원하는 결과를 보여주거나, 원하는 처리를 해야 할 때가 있는데, 이 코스트가 큰 편이어서 어디에 샤딩되어 있으며, 샤딩된 결과를 다시 배포할 경우에 동기화 이슈나 충동 이슈등에 대한 문제가 발생할 수도 있습니다. 여러 개의 샤드에서 데이터를 꺼내와서 그 결과를 다시 분산 처리하고 이 과정에서 무결성을 유지하는 것은 꽤나 어려운 기술이라 합니다.
  • 정리 : 데이터 분산 저장을 의미
  • 데이터가 한 곳에 저장되지 않으므로, 분리되어 있는 데이터들을 합쳐서 연산하기 위해선 어플리케이션 레이어나, 플러그인, 서드파티 솔루션 등으로 극복해야하나 많은 기술적 제약이나, 리스크를 가진다.

레플리카
이중화를 의미, 미러링, 백업 디비 등의 용어로도 통용되는데 다양한 방식으로 구현되는 복제를 뜻한다.

  • 목적 : fail-over나 read/write 경합 감소나 제거, read 코스트 분산 등에 치중되어 있습니다.
  • read/write node를 분리하게 되면 성능 분산도 처리 할 수 있게 되는데 경합이 이루어질 경우 성능 저하도 우회가 가능하게 됩니다.
  • 정리 : 데이터 복제 저장
  • 일정 수준 이상의 지연은 생길 수밖에 없지만 이를 감안하고 지연 복제하는 경우가 일반적.

'Database' 카테고리의 다른 글

MariaDB. account add, remove, permission grant  (0) 2020.01.19
MariaDB. 간단한 예제  (0) 2020.01.19
NoSQL의 종류  (0) 2018.06.09
[Oracle] system 패스워드 분실시  (0) 2015.01.28
[Oracle]포트변경  (0) 2015.01.28
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함