분산 데이터베이스

Enzo·2022년 3월 16일
0

블록체인

목록 보기
1/21

분산 원장 기술에 대해 이해하려면, 먼저 분산 원장 기술의 기초가 되는 분산 데이터베이스를 이해해야 한다.

분산 데이터베이스란?

  • 분산 데이터베이스는 하나의 데이터베이스 관리 시스템(DBMS, Database Mangement System)이 여러 CPU에 연결된 저장장치들을 제어하는 형태의 데이터베이스
  • 물리적으로 동일한 위치에 여러 대의 컴퓨터로 구성된 경우 또는 컴퓨터 네트워크를 통해 상호 연결된 컴퓨터로 분산되어 있는 구성 등을 말한다
  • 데이터베이스에 있는 데이터들은 여러 물리적 위치에 분산되어 저장될 수 있다
  • 물리적으로 떨어져 있는 데이터베이스들은 인터넷으로 연결된다

분산 데이터베이스의 업데이트를 보장하는 방식

복제(copy)

복제는 분산된 데이터베이스의 데이터 업데이트를 반영하는 특별한 소프트웨어를 사용한다

  • 분산 데이터베이스 내에 있는 소프트웨어는 데이터 변경을 감지하면, 복제 프로세스를 실행
  • 복제 프로세스는 모든 분산 데이터베이스 그룹에 동일한 업데이트를 수행
  • 복제 프로세스는 분산 데이터베이스의 크기나 분산 배치 수에 따라 복잡도가 달라지며, 처리 시간과 계산 자원이 많이 필요

듀플리케이션(duplication)

듀플리케이션은 비교적 덜 복잡하다

  • 듀플리케이션 방식은 하나의 데이터베이스를 마스터로 다른 데이터베이스에 복제
  • 일반적인 듀플리케이션은 설정된 시간에 몇 시간에 걸쳐 실시한다. 이를 통해 분산된 각각의 위치 데이터가 동일하게 보장된다.

여기서 중요한 점은, 듀플리케이션은 마스터 데이터베이스만 갱신이 허용된다.

복제와 듀플리케이션 외에도 분산 데이터베이스 설계 기법에는 여러가지가 있고, 각 사업의 필요성, 데이터의 중요성과 기밀성, 데이터 보관 일관, 완전성에 소요되는 비용에 따라 이러한 기술들 중 어떤 방식으로 구현할지 여부를 결정해야 한다.


분산 데이터베이스의 두 가지 특징

  • 투명한 분산
    분산 데이터베이스를 사용할 때는 마치 하나의 데이터베이스를 사용하는 것처럼 CRUD 작업을 수행할 수 있어야 한다. 따라서 분산 데이터베이스를 구현할 때는 하나처럼 사용하되, 실제로는 분산된 형태를 가질 수 있도록 해야 하기 때문에 구현 방법이 복잡하다.
  • 투명한 트랜잭션
    각 트랜잭션은 다중 데이터베이스에 걸쳐 일관성을 보장해야 한다. 트랜잭션은 일반적으로 여러 하위 트랜잭션으로 분리된 개별 서브 트랜잭션이 하나의 데이터베이스에 대응한다.

분산 데이터베이스의 장단점

장점

  • 조직 구조를 반영할 수 있다 : 기업에서 부서별로 데이터베이스를 놓고 각 데이터베이스를 통합하여 분산 데이터베이스처럼 사용할 수 있다.
  • 부분 자율성 : 각 부서는 자체 보유한 데이터를 제어할 수 있다.
  • 중요한 데이터의 보호 : 화재 등의 재해가 발생했을 때 데이터가 분산되어 있으면 전체를 한 번에 잃는 것을 예방할 수 있다.
  • 성능 향상 : 자주 사용하는 데이터는 가까운 위치에 있으면서, 전체가 병렬적으로 작동하기 때문에 데이터베이스의 부하 분산이 가능하다. 일부가 과부하 되어도 분산 데이터베이스 전체에 미치는 영향이 작다.
  • 경제성 : 거대한 고성능 컴퓨터보다 동일한 정도의 성능을 발휘하는 소형 컴퓨터 네트워크 쪽이 싸다.
  • 모듈화 : 분산 데이터베이스의 다른 모듈(시스템)에 영향을 주지 않고 개별 시스템을 갱신, 추가, 삭제할 수 있다.
  • 하나의 사이트에 장애가 발생해도 전체 기능은 손상되지 않으며, 모든 거래는 ACID 특성에 따른다.

단점

  • 복잡성 : 투명성을 보장하기 위해서는 일반적인 데이터베이스보다 구현하는 방법이 까다롭다. 또한 각 데이터베이스들이 서로 하드웨어가 다르거나, 접속이 끊어졌을 때의 동작을 고려해야 한다.
  • 비용 : 시스템의 규모와 복잡성이 증가함에 따라 관리 비용도 증가한다.
  • 보안 : 개별 사이트의 보안을 확보하고, 사이트 간 네트워크의 보안도 확보하지 않으면 전체에 보안도 위험해진다.
  • 무결성 보장의 어려움 : 분산 데이터베이스 무결성을 보장하려면 상당한 네트워크 자원을 필요로한다.
  • 미성숙한 기술 : 분산 데이터베이스는 미성숙한 분야이며, 실제 사례가 비교적 적다.
  • 표준의 부족 : 중앙 DBMS를 분산 DBMS로 변환하기 위한 표준적인 방식은 없다.
    데이터베이스 설계의 복잡성 : 일반 데이터베이스 설계 이외에, 데이터를 각 사이트에 어떻게 배치하거나 복제를 어떻게 할 것인가 등 설계시에 고려해야 할 사항이 늘어난다.
  • 추가 소프트웨어를 필요로 한다.
  • 운영 체제가 분산 컴퓨팅을 지원해야 한다.
  • 동시성 제어가 중요하다.
profile
고통수집가

0개의 댓글