Part2. 분산 데이터

2025. 9. 13. 10:28·Book/데이터 중심 애플리케이션 설계

❐ Description


들어가기
  • Part1에서는
    • 단일 장비에 데이터를 저장할 때, 적용하는 데이터 시스템 측면에 대해서 학습함
  • Part2에서는
    • 저장소와 데이터 검색에 동시에 N개의 장비가 관여할 때 발생하는 일에 대해서 학습하게 될 예정

 

왜 분산된 데이터베이스가 필요할까? 
  • 확장성
  • 내결함성/고가용성
  • 지연시간

 

 

 

 

❐ 고부하로 확장 (Scaling to Higher load)


공유 메모리 아키텍쳐
  • 수직확장 또는 용량 확장이라고 함
  • 빠른 상호 연결로 모든 CPU가 메모리나 디스크의 모든 부분에 접근할 수 있는 아키텍쳐

 

공유 메모리 접근 방식의 문제점
  1. 비용이 선형적인 추세보다 훨씨 바르게 증가함.
  2. 제한적인 내결함성을 제공

 

공유 디스크 아키텍처
  • 독립적인 CPU와 RAM을 탑재한 여러 장비를 사용
    • 하지만, 데이터 저장은 장비간 공유하는 디스크에 배열
    • 이때 여러 장비는 고속 네트워크로 연결
  • 일부 데이터 웨어하우스 작업부하에 이 아키텍쳐를 사용
    • 하지만, 잠금 경합과 오버헤드가 공유 디스크 접근 방식의 확정성을 제한

 

 

 

❐ 비공유 아키테처


비공유 아키텍처
  • 수평 확장 또는 규모 확장이라고 함
  • 데이터베이스 소프트웨어를 수행하는 각 장비나 가상 장비를 노드라고 부름
  • 각 노드는 CPU, RAM, 디스크를 독립적으로 사용
  • 노드 간 codination은 일반적인 네트워크를 사용해 소프트웨어 수준에서 수행됨
  • 특별한 하드웨어를 필요로 하지 않으므로 가격 대비 성능이 가장 좋은 시스템을 사용할 수 있음.
    • 잠재적으로 여러 지리적인 영역에 걸쳐 데이터를 분산해 지연 시간을 줄임
  • 2부에서는 비공유 아키텍처에 중점을 둠
    • 가장 좋은 선택이라기 보단,
            비공유 아키텍처를 사용할 때 애플리케이션 개발자가 주의해야 하는 점을 다룸
  • 많은 장점도 있지만, 단점도 있음.
    • 부가적인 애플리케이션 복잡도 야기 등등

 

 

 

 

❐ 복제 대 파티셔닝


여러 노드에 데이터를 분산하는 방법 
  1. 복제
    • 같은 데이터의 복사본을 잠재적으로 다른 위치에 있는 여러 노드에 유지
    • 복제는 중복성을 제공
    • 5장에서 나옴
  2. 파티셔닝
    • 큰 데이터베이스를 파티션이라는 작은 서브넷으로 나누고 각 파티션은 각기 다른 노드에 할당
    • 6장에서 나옴

 

 

트랜잭션
  • 7장에서 설명
  • 트랜잭션을 이해하면, 데이터 시스템에서 발생하는 많은 문제를 설명하는데 도움이 됨

'Book > 데이터 중심 애플리케이션 설계' 카테고리의 다른 글

6장. 파티셔닝  (0) 2025.09.20
5장. 복제  (0) 2025.09.14
4장. 부호화와 발전 (Encoding & Evolution)  (0) 2025.09.06
3장. 저장소와 검색  (0) 2025.08.30
2장. 데이터 모델과 질의 언어  (0) 2025.08.23
'Book/데이터 중심 애플리케이션 설계' 카테고리의 다른 글
  • 6장. 파티셔닝
  • 5장. 복제
  • 4장. 부호화와 발전 (Encoding & Evolution)
  • 3장. 저장소와 검색
gilbert9172
gilbert9172
gilbert9172 님의 블로그 입니다.
  • gilbert9172
    バックエンド
    gilbert9172
  • 전체
    오늘
    어제
    • All Categories (207)
      • 우테코 7기 (21)
        • 1주차 (8)
        • 2주차 (5)
        • 3주차 (6)
      • Langauge (6)
        • Java (3)
        • Kotlin (3)
      • Back-End (13)
        • SpringBoot (1)
        • Trouble Shooting (0)
        • Setup & Configuration (1)
        • SQL (3)
        • Redis (8)
      • Architecture (6)
        • Multi Module (1)
        • DDD (5)
      • CS (30)
        • Data Structure (6)
        • Operating System (0)
        • Network (12)
        • Database (10)
        • Design Pattern (2)
      • Algorithm (78)
        • 내용 정리 (18)
        • 문제풀이 (60)
      • DevOps (6)
        • AWS (5)
        • Git (1)
      • Front-End (1)
        • Trouble Shooting (1)
      • Project (6)
        • 페이스콕 (6)
      • Book (39)
        • 친절한 SQL 튜닝 (9)
        • 데이터 중심 애플리케이션 설계 (14)
        • 이벤트 기반 마이크로서비스 구축 (6)
        • Spring Batch docs (10)
        • Quartz docs (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    오블완
    sliding-window
    Two-Pointer
    Back-Tracking
    binarysearch
    부분단조성
    greedy
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
gilbert9172
Part2. 분산 데이터
상단으로

티스토리툴바