레플리케이션은 재해복구 측면에서 HA를 최대한 증가 시키기 위한 기술이고
샤딩 및 파티셔닝은 인덱스 키의 도메인을 기준으로 밸런스 트리를 쪼개서 넌리프 페이지의 뎁스를 줄여
io를 줄이는 기법이고
분산 데이터베이스 서비스가 전세계 규모라던지
지사를 가지는 서비스(지사별 데이터 접근필요도 에따른 분산)라던지 일때
데이터 접근 속도, 권한등을 고려하여 분산하는게
분산 데이터베이스임 - dc App
30세전에특급DBA(118.235)2024-10-04 10:30
답글
전세계 서비스일때
단순한 예시로 게임서비스를
특정 구역(아시아 북미) 혹은 나라로 서비스
하는것 과 같이 레이턴시를 줄이기위해
분산하는 경우 - dc App
30세전에특급DBA(118.235)2024-10-04 10:31
답글
전에 오픈카톡방에서 답변해준 질문인거 같은데 - dc App
30세전에특급DBA(118.235)2024-10-04 10:32
답글
샤딩이랑 파티셔닝 차이는 머임??
익명(223.38)2024-10-04 10:32
답글
파티셔닝은 수평분할
위에서 서술한 이유로 사용
샤딩은 수직분할
레코드당 크기가 너무 큰 경우
페이지에 최적화되어 저장되지 않기때문에
컬럼을 분할하여 저장 - dc App
30세전에특급DBA(118.235)2024-10-04 10:35
답글
ㅈㅅㅈㅅ복제가 ha도 올리면서 분산도 하는개념인줄 알앗음.. - dc App - dc App
돌솥굴국밥(wldyd4195)2024-10-04 10:38
답글
파티셔닝은 전체 큰 테이블을 가로로 쪼개고, 샤딩은 전체 큰 테이블을 세로로 쪼개서 io의 시간을 줄이는 기법이고, 분산 데이터베이스는 테이블을 쪼개는게 아니라 데이터베이스 자체를 여러 컴퓨터에 나눠서 관리하는 기법인거임?
익명(223.38)2024-10-04 10:39
답글
테이블 샤딩의 이점에 대해서는 나도 잘 몰라서
잘못 설명한듯 보통 고려되지도 않는것 같고
테이블 파티셔닝이 io를 줄이는 기술이고
io의 시간을 줄인다는건 맞지 않는 설명임
io는 input ouput의 약자로 보통 8kb단위의 페이지
의 수로 표시되는데 io당 시간을 줄이는건
하드웨어 스펙이랑 read시 데이터가 메모리에서 읽은건지 디스크에서 읽은건지에따라 차이가있음 - dc App
30세전에특급DBA(118.235)2024-10-04 10:48
답글
파티셔닝이 io를 줄인다는게 io횟수를 줄인다는거임?
근데 왜 전체 테이블을 가로로 쪼갠다고 io횟수가 줄어드는거임? 테이블을 쪼개서 여러개로 만들면 io가 늘어나야하는거 아닌가?
익명(223.38)2024-10-04 10:56
답글
뭔가 느낌이 다른데 파티셔닝은 1db를 테이블좀 나눠서 분해하는 느낌이고 샤딩은 데이터베이스를 여러개로 물리적으로 분해하는 느낌인디 - dc App
익명(119.56)2024-10-04 10:58
답글
인덱스의 구조는 밸런스 트리의 형태로
최상단에 루트 페이지
최하단에 데이터페이지(리프페이지)
중간에 (넌리프페이지)
로 이루어져있는데
데이터가 많으면 많을수록
넌리프페이지의 깊이가 늘어나서
리프페이지를 찾아갈때 io가 늘어남 - dc App
30세전에특급DBA(118.235)2024-10-04 10:58
답글
물리적수평과 논리적수평느낌 아니냐 - dc App
익명(119.56)2024-10-04 10:58
답글
사전에 완벽히 들어 맞는 예시는 아닌데한글 사전을 예로1차목차ㄱ ㄴ ㄷ ㄹ ㅁ ㅂ ㅅ ㅇ1차목차 안에 2차 목차가 갸 거 겨...n차목차 안에 n차목차와같이 단어를 찾아가기 위한목차의 깊이가 늘어난다고 이해하면돼 - dc App
30세전에특급DBA(118.235)2024-10-04 11:01
답글
데이터가 많으면 많을수록 넌리프페이지의 깊이가 늘어난다는 것 까지는 이해가 가는데, 그것 때문에 io횟수가 늘어난다는것이 이해가 안 감.
io횟수를 셀 때, (페이지) -> (한 단계 더 깊은 페이지)이걸 한 번의 io로 보는 것인지?
아님 (루트 페이지) -> (넌리프페이지 깊이1) -> (넌 리프페이지 깊이2) -> ... (리프 페이지)를 한번의
@김대기 내가 틀렸을 수도 있음
단일 인스턴스에 대한 최적화 및 운영관리
경험밖에 없어서 그외에 것들은 개념이나 정보만
이해한 상태라 - dc App
30세전에특급DBA(118.235)2024-10-04 11:14
답글
근데 185.135가 설명해주는거보면
그렇게 틀린것 같지도 않긴하네 흠 - dc App
30세전에특급DBA(118.235)2024-10-04 11:16
답글
내가쓴 분산 데이터베이스에 대한설명은
DBA 커뮤니티랑 따로 공부한게 출처 - dc App
30세전에특급DBA(118.235)2024-10-04 11:20
답글
알려줘서 ㄱㅅㄱㅅ
파티셔닝은 데이터베이스 서버의 한 테이블이 너무 큰 경우, 데이터를 조회할 때, 인덱스의 깊이가 너무 깊어져서 io의 횟수가 늘어나 느려지는데, 테이블을 가로로 쪼개서 인덱스의 깊이를 깊지않게 해줘서 io의 횟수를 줄여주고 최종속도를 빠르게 해주는 기술이라고 이해하면 됨?
익명(223.38)2024-10-04 11:25
답글
넹 근데 파티셔닝안해도해당 테이블을 사용하는 기능들이SLO를 달성하거나 서버에 큰 영향을 끼치지 않는경우 굳이 안하기도함관리영역에서의 난이도가 올라가서..가장 좋은건 페이지의 밀도를 최대한높도옫 설계하는 것임 로우 사이즈에따라 다르겠지만mssql기준 페이지밀도가 가장 높을때적게는 수십억행 많게는 수백억행까지4depth만으로 구현이 가능하데 - dc App
30세전에특급DBA(118.235)2024-10-04 11:31
답글
분산 데이터베이스는 보통 샤딩 지원하는 데이터베이스를 말해
샤드들은 각기 다른 노드(물리장비)에 저장될 수 있고, 노드당 n개의 샤드를 지니게 됨
전통적인 DB는 마스터가 1개라서 슬레이브를 늘려도 결국에는 한계가 생기는데, 이 문제를 해결한거야
vitess, citus, cassandradb, mongodb 공부해봐
위에 파티셔닝, 샤딩 차이도 조금 차이가 있는 것 같은데
두개는 완전히 구분되는 개념이 아니고 약간 혼용되는 개념임
일반적으로는 샤딩은 수평 분할 + 물리장비 분리를 의미하고, 파티셔닝은 수직/수평 분할 + 논리적 분리를 의미함
김대기(waitkim)2024-10-04 11:41
답글
그러게 나도 샤딩 파티셔닝은 물리/논리 개념으로 나누는데 살짝 이해가다른데 - dc App
익명(119.56)2024-10-04 11:42
답글
그러네 질문이
"샤딩이나 파티셔닝은 그냥 데이터 분할기법인거지?"인데 여기서 "데이터 분할기법인거지?" 에만몰두해서 답변을 준듯 - dc App
30세전에특급DBA(118.235)2024-10-04 11:45
답글
그리고 샤딩은 마스터 -슬레이브 구조라기보단 수평적개념이고 근데 중앙DB 하나 델꼬댕기지 않나? 어 이러면 또 슬레이브구존데 갑자기 헷갈리네 - dc App
익명(119.56)2024-10-04 11:46
답글
참고로 샤드 안에서도 파티션이 있을 수 있음
테이블 > 샤드 > 파티션
샤딩은 마스터 테이블이 없음. 오퍼레이터 노드나 미들웨어, 혹은 클라이언트 레벨 샤드 연산이라면 모를까
김대기(waitkim)2024-10-04 11:48
클러스터링도 공부해봐 - dc App
30세전에특급DBA(118.235)2024-10-04 10:42
답글
해보겟읍니다.. 그리고 예를들어 아마존이 각 나라별로 물류센터를 둔다 햇을때 이것도 분산db가 적용될수잇는걸까? - dc App
돌솥굴국밥(wldyd4195)2024-10-04 10:48
답글
그상태에서 메인이되서 집계 혹은 분산된 전체 데이터에 대해 비즈니스를 가지는 데이터베이스가
있으면 분산 데이터베이스 서비스 인거고
아니면 그냥 개별의 데이터베이스 인거지 - dc App
30세전에특급DBA(118.235)2024-10-04 10:50
답글
이런 분산 환경에서의 트랜잭션 처리는 ㄹㅇ실제로 2pc나 saga패턴으로 처리함? 예로 A창고에서 B창고로 물품을 이관한다 햇을때 B창고 관리자랑 트랜잭션 충돌같은것들 - dc App
돌솥굴국밥(wldyd4195)2024-10-04 10:55
답글
msa가 아닌데 mq도입해서 saga로 하는건 아주 삽낭비느낌이네? 2pc 뭐 성능저하 문제있다길레 별로 안쓰는줄 알앗으 ㄱㅅㄱㅅ - dc App
돌솥굴국밥(wldyd4195)2024-10-04 11:08
답글
어우 계속보고잇엇는데 빡세네요 일단 2pc를 지원하면 그냥 2pc를 사용하는게 이상적이다 정도로 받아들이면 될까..? - dc App
돌솥굴국밥(wldyd4195)2024-10-04 11:23
답글
애초에 DB뿐만 아니라 어떤 것이든
진짜로 최적화 잘되어있는데 단일 인스턴스로
커버가 안되서 분산하는 경우에 대한건
난이도가 좀 있음 - dc App
30세전에특급DBA(118.235)2024-10-04 11:24
답글
분산디비는 보통 1개 IDC나 물리적으로 가까운 IDC들에만 걸쳐있음
그게 아니면 네트워크로 인한 성능 저하가 감당이 안돼
물론 나라별로 노드가 존재할 수도 있기는 한데, 대규모 응답 처리나 일반적으로 생각하는 분산 디비의 옵션(노드간 샤드 복제본 백업)들을 잘 처리하지 못할수도 있음
김대기(waitkim)2024-10-04 11:56
답글
사내 의사결정용으로
나라간 노드에 대해 집계, 리스트업하는
정보계, 분석계 비즈니스도 있지 않나?
(진짜모름) - dc App
30세전에특급DBA(118.235)2024-10-04 12:03
답글
그걸 위해 모든 리전을 아우르는 분산디비를 구축하진 않을듯
실제는 나도 모르지만
김대기(waitkim)2024-10-04 12:07
답글
사실 그런 비즈니스는 대기업 IT직군중에서도
수뇌부급만 경험해볼 수 있으려나 - dc App
30세전에특급DBA(118.235)2024-10-04 12:08
답글
걍 데이터 쏘면 되는데 굳이 분산디비로 할 이유가 없을듯
그리고 비즈니스는 수뇌부만 겪더라도 개발은 평민들이 하지
김대기(waitkim)2024-10-04 12:12
얘는 느낌이 msa구현할려고 억지로 패턴이나 분할쓰는것같은데; 모놀리식도 모르는 느낌이 크네
mq는 왜 쓰는것같음? - dc App
익명(119.56)2024-10-04 11:31
답글
msa환경에서 원자성을 어떻게 다루지말고 그냥 아키텍처 바꿔 - dc App
익명(119.56)2024-10-04 11:32
답글
msa관심도 없고 뭔지도 몰라 그냥 뭐 아무고토 안햇음 그냥 분산 트랜잭션 알아보다 여러가지 튀어나오드라 - dc App
레플리케이션은 재해복구 측면에서 HA를 최대한 증가 시키기 위한 기술이고 샤딩 및 파티셔닝은 인덱스 키의 도메인을 기준으로 밸런스 트리를 쪼개서 넌리프 페이지의 뎁스를 줄여 io를 줄이는 기법이고 분산 데이터베이스 서비스가 전세계 규모라던지 지사를 가지는 서비스(지사별 데이터 접근필요도 에따른 분산)라던지 일때 데이터 접근 속도, 권한등을 고려하여 분산하는게 분산 데이터베이스임 - dc App
전세계 서비스일때 단순한 예시로 게임서비스를 특정 구역(아시아 북미) 혹은 나라로 서비스 하는것 과 같이 레이턴시를 줄이기위해 분산하는 경우 - dc App
전에 오픈카톡방에서 답변해준 질문인거 같은데 - dc App
샤딩이랑 파티셔닝 차이는 머임??
파티셔닝은 수평분할 위에서 서술한 이유로 사용 샤딩은 수직분할 레코드당 크기가 너무 큰 경우 페이지에 최적화되어 저장되지 않기때문에 컬럼을 분할하여 저장 - dc App
ㅈㅅㅈㅅ복제가 ha도 올리면서 분산도 하는개념인줄 알앗음.. - dc App - dc App
파티셔닝은 전체 큰 테이블을 가로로 쪼개고, 샤딩은 전체 큰 테이블을 세로로 쪼개서 io의 시간을 줄이는 기법이고, 분산 데이터베이스는 테이블을 쪼개는게 아니라 데이터베이스 자체를 여러 컴퓨터에 나눠서 관리하는 기법인거임?
테이블 샤딩의 이점에 대해서는 나도 잘 몰라서 잘못 설명한듯 보통 고려되지도 않는것 같고 테이블 파티셔닝이 io를 줄이는 기술이고 io의 시간을 줄인다는건 맞지 않는 설명임 io는 input ouput의 약자로 보통 8kb단위의 페이지 의 수로 표시되는데 io당 시간을 줄이는건 하드웨어 스펙이랑 read시 데이터가 메모리에서 읽은건지 디스크에서 읽은건지에따라 차이가있음 - dc App
파티셔닝이 io를 줄인다는게 io횟수를 줄인다는거임? 근데 왜 전체 테이블을 가로로 쪼갠다고 io횟수가 줄어드는거임? 테이블을 쪼개서 여러개로 만들면 io가 늘어나야하는거 아닌가?
뭔가 느낌이 다른데 파티셔닝은 1db를 테이블좀 나눠서 분해하는 느낌이고 샤딩은 데이터베이스를 여러개로 물리적으로 분해하는 느낌인디 - dc App
인덱스의 구조는 밸런스 트리의 형태로 최상단에 루트 페이지 최하단에 데이터페이지(리프페이지) 중간에 (넌리프페이지) 로 이루어져있는데 데이터가 많으면 많을수록 넌리프페이지의 깊이가 늘어나서 리프페이지를 찾아갈때 io가 늘어남 - dc App
물리적수평과 논리적수평느낌 아니냐 - dc App
사전에 완벽히 들어 맞는 예시는 아닌데한글 사전을 예로1차목차ㄱ ㄴ ㄷ ㄹ ㅁ ㅂ ㅅ ㅇ1차목차 안에 2차 목차가 갸 거 겨...n차목차 안에 n차목차와같이 단어를 찾아가기 위한목차의 깊이가 늘어난다고 이해하면돼 - dc App
데이터가 많으면 많을수록 넌리프페이지의 깊이가 늘어난다는 것 까지는 이해가 가는데, 그것 때문에 io횟수가 늘어난다는것이 이해가 안 감. io횟수를 셀 때, (페이지) -> (한 단계 더 깊은 페이지)이걸 한 번의 io로 보는 것인지? 아님 (루트 페이지) -> (넌리프페이지 깊이1) -> (넌 리프페이지 깊이2) -> ... (리프 페이지)를 한번의
Io로 보는것인지 궁금함
분산 데이터베이스 설명이 좀 이상한데 직무가 달라서 용어가 다른거같다
io는 읽거나쓴 페이지당이여서 읽을때 리프페이지를 찾아갈때 경로한 넌리프페이지 개수도 포함임 - dc App
@김대기 내가 틀렸을 수도 있음 단일 인스턴스에 대한 최적화 및 운영관리 경험밖에 없어서 그외에 것들은 개념이나 정보만 이해한 상태라 - dc App
근데 185.135가 설명해주는거보면 그렇게 틀린것 같지도 않긴하네 흠 - dc App
내가쓴 분산 데이터베이스에 대한설명은 DBA 커뮤니티랑 따로 공부한게 출처 - dc App
알려줘서 ㄱㅅㄱㅅ 파티셔닝은 데이터베이스 서버의 한 테이블이 너무 큰 경우, 데이터를 조회할 때, 인덱스의 깊이가 너무 깊어져서 io의 횟수가 늘어나 느려지는데, 테이블을 가로로 쪼개서 인덱스의 깊이를 깊지않게 해줘서 io의 횟수를 줄여주고 최종속도를 빠르게 해주는 기술이라고 이해하면 됨?
넹 근데 파티셔닝안해도해당 테이블을 사용하는 기능들이SLO를 달성하거나 서버에 큰 영향을 끼치지 않는경우 굳이 안하기도함관리영역에서의 난이도가 올라가서..가장 좋은건 페이지의 밀도를 최대한높도옫 설계하는 것임 로우 사이즈에따라 다르겠지만mssql기준 페이지밀도가 가장 높을때적게는 수십억행 많게는 수백억행까지4depth만으로 구현이 가능하데 - dc App
분산 데이터베이스는 보통 샤딩 지원하는 데이터베이스를 말해 샤드들은 각기 다른 노드(물리장비)에 저장될 수 있고, 노드당 n개의 샤드를 지니게 됨 전통적인 DB는 마스터가 1개라서 슬레이브를 늘려도 결국에는 한계가 생기는데, 이 문제를 해결한거야 vitess, citus, cassandradb, mongodb 공부해봐
https://youtu.be/oIaQuX7Nk7c?si=t7i-YkizkTX_NL5k
요거
보면 되겠네
내가 설명한건 추상적인 개념에서의접근이고
감대기가 구체적으로 다시 잘 설명해줬네 - dc App
위에 파티셔닝, 샤딩 차이도 조금 차이가 있는 것 같은데 두개는 완전히 구분되는 개념이 아니고 약간 혼용되는 개념임 일반적으로는 샤딩은 수평 분할 + 물리장비 분리를 의미하고, 파티셔닝은 수직/수평 분할 + 논리적 분리를 의미함
그러게 나도 샤딩 파티셔닝은 물리/논리 개념으로 나누는데 살짝 이해가다른데 - dc App
그러네 질문이 "샤딩이나 파티셔닝은 그냥 데이터 분할기법인거지?"인데 여기서 "데이터 분할기법인거지?" 에만몰두해서 답변을 준듯 - dc App
그리고 샤딩은 마스터 -슬레이브 구조라기보단 수평적개념이고 근데 중앙DB 하나 델꼬댕기지 않나? 어 이러면 또 슬레이브구존데 갑자기 헷갈리네 - dc App
참고로 샤드 안에서도 파티션이 있을 수 있음 테이블 > 샤드 > 파티션 샤딩은 마스터 테이블이 없음. 오퍼레이터 노드나 미들웨어, 혹은 클라이언트 레벨 샤드 연산이라면 모를까
클러스터링도 공부해봐 - dc App
해보겟읍니다.. 그리고 예를들어 아마존이 각 나라별로 물류센터를 둔다 햇을때 이것도 분산db가 적용될수잇는걸까? - dc App
그상태에서 메인이되서 집계 혹은 분산된 전체 데이터에 대해 비즈니스를 가지는 데이터베이스가 있으면 분산 데이터베이스 서비스 인거고 아니면 그냥 개별의 데이터베이스 인거지 - dc App
이런 분산 환경에서의 트랜잭션 처리는 ㄹㅇ실제로 2pc나 saga패턴으로 처리함? 예로 A창고에서 B창고로 물품을 이관한다 햇을때 B창고 관리자랑 트랜잭션 충돌같은것들 - dc App
msa가 아닌데 mq도입해서 saga로 하는건 아주 삽낭비느낌이네? 2pc 뭐 성능저하 문제있다길레 별로 안쓰는줄 알앗으 ㄱㅅㄱㅅ - dc App
어우 계속보고잇엇는데 빡세네요 일단 2pc를 지원하면 그냥 2pc를 사용하는게 이상적이다 정도로 받아들이면 될까..? - dc App
애초에 DB뿐만 아니라 어떤 것이든 진짜로 최적화 잘되어있는데 단일 인스턴스로 커버가 안되서 분산하는 경우에 대한건 난이도가 좀 있음 - dc App
분산디비는 보통 1개 IDC나 물리적으로 가까운 IDC들에만 걸쳐있음 그게 아니면 네트워크로 인한 성능 저하가 감당이 안돼 물론 나라별로 노드가 존재할 수도 있기는 한데, 대규모 응답 처리나 일반적으로 생각하는 분산 디비의 옵션(노드간 샤드 복제본 백업)들을 잘 처리하지 못할수도 있음
사내 의사결정용으로 나라간 노드에 대해 집계, 리스트업하는 정보계, 분석계 비즈니스도 있지 않나? (진짜모름) - dc App
그걸 위해 모든 리전을 아우르는 분산디비를 구축하진 않을듯 실제는 나도 모르지만
사실 그런 비즈니스는 대기업 IT직군중에서도 수뇌부급만 경험해볼 수 있으려나 - dc App
걍 데이터 쏘면 되는데 굳이 분산디비로 할 이유가 없을듯 그리고 비즈니스는 수뇌부만 겪더라도 개발은 평민들이 하지
얘는 느낌이 msa구현할려고 억지로 패턴이나 분할쓰는것같은데; 모놀리식도 모르는 느낌이 크네 mq는 왜 쓰는것같음? - dc App
msa환경에서 원자성을 어떻게 다루지말고 그냥 아키텍처 바꿔 - dc App
msa관심도 없고 뭔지도 몰라 그냥 뭐 아무고토 안햇음 그냥 분산 트랜잭션 알아보다 여러가지 튀어나오드라 - dc App