[SQLD] 분산 데이터베이스와 성능

Libra·2022년 7월 17일
0

📌 1. 분산 데이터베이스의 개요

  • 여러 곳으로 분산되어있는 데이터베이스를 하나의 가상 시스템으로 사용할 수 있도록 한 데이터베이스이다.

  • 논리적으로 동일한 시스템에 속하나 , 네트워크를 통해 물리적으로 분산되어 있는 데이터들의 모임이다.

즉 분산 데이터베이스는,
데이터베이스를 연결하는 빠른 네트워크 환경을 이용하여 데이터베이스를 여러 지역 여러 노드로 위치시켜 사용성/성능 등을 극대화 시킨 데이터베이스이다.


📌 2. 분산 데이터베이스의 투명성(Transparency)

분산 데이터베이스는 다음과 같은 6개의 투명성을 가져야 한다.

1. 분할 투명성(단편화)

  • 하나의 논리적 Relation 이 여러 단편으로 분할되어 각 단편의 사본이 여러 site 에 저장

2. 위치 투명성

  • 사용하려는 데이터 저장 명소 명시 불필요.
  • 위치 정보가 System Catelog 에 유지되어야 함

3. 지역사상 투명성

  • 지역 DBMS 와 물리적 DB 사이의 Mapping 보장.
  • 각 지역시스템 이름과 무관한 이름 사용 가능

4. 중복 투명성

  • DB 객체가 여러 site 에 중복 되어 있는지 알 필요가 없는 성질
  • 데이터베이스 객체가 여러 시스템에 중복되어 존재함에도 고객과는 무관하게 유지되는 데이터의 일관성

5. 장애 투명성

  • 구성요소 (DBMS, Computer) 의 장애에 무관한 Transaction 의 원자성(무결성) 유지

6. 병행 투명성

  • 다수 Transaction 동시 수행시 결과의 일관성 유지
  • 여러 고객의 응용 프로그램이 동시에 분산 데이터베이스에 대한 트랜잭션을 수행하는 경우에도 이상없는 결과
  • Time Stamp, 분산 2 단계 Locking 을 이용 구현

📌 3. 분산 데이터베이스의 적용 방법

  • 업무의 흐름에 따른 아키텍쳐 특징으로 데이터베이스를 구성한다

  • 즉, 업무 특징에 따라 데이터베이스 분산 구조를 선택적으로 설계할 수 있고 그 능력이 필요하다


📌 4. 분산 데이터베이스의 장단점

📌 5. 데이터베이스 분산구성의 가치

데이터를 분산환경으로 구성하였을 때 가장 핵심적인 가치는
"통합된 데이터베이스에서 제공할 수 없는 빠른 성능을 제공한다는 점이다."


📌 6. 분산 데이터베이스의 적용 기법

자세한 내용은 요기에

1. 테이블 위치 분산

  • 설계된 테이블의 위치를 각각 다르게 위치시키는 것이다.
  • 테이블 구조는 변하지 않는다.
  • 다른 데이터베이스에 중복되어 생성되지도 않는다.
  • 정보를 이용하는 형태가 각 위치별로 차이가 있을 경우 사용한다.
  • 테이블의 위치가 서로 다르기 때문에 테이블의 위치를 파악할 수 있는 도식화된 위치별 데이터베이스 문서가 필요하다.

2. 테이블 분할 분산

  • 단순히 테이블의 위치만 다른곳에 두는 것이 아니라 , 각 각 의 테이블을 쪼개어 분산
  • 수평분할(row 기준) , 수직분할(컬럼기준) 등이 있다.

3. 테이블 복제 분산

  • 동일한 테이블다른 지역이나 서버에 동시에 생성하여 관리하는 유형

4. 테이블 요약 분산


📌 7. 분산 데이터베이스를 적용하여 성능이 향상된 사례

  • 성능이 중요한 사이트에 적용한다.

  • 공통코드, 기준정보, 마스터 데이터 등에 대한 분산환경을 구성하면 성능이 좋아진다.

  • 실시간 동기화가 요구되지 않을 때 좋다, 그러나 실시간의 업무적인 특징을 가지고있어도 분산환경 구축 가능하다

  • 특정 서버에 부하가 집중될 때 부하를 분산 할 수 있다

  • 백업사이트를 구성할 때 적용한다.


참고한 블로그들

https://eehoeskrap.tistory.com/58
https://antkdi.github.io/posts/post-license-sqld-distributed/
https://chae-developer.tistory.com/62?category=919741

0개의 댓글