분산 데이터베이스와 분산 원장 (2)

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

분산 데이터베이스에는 두 가지 특성이 있다.

  • 투명한 분산
    • 분산 데이터베이스를 구성하는 노드들은 물리적으로 떨어져 있다. 그러나, 사용자의 입장에서 분산 데이터베이스를 사용할 때는, 마치 단일한 데이터베이스를 사용하는 것과 동일하게 데이터를 처리할 수 있어야 한다.
      그렇기에, 일반적인 데이터베이스에 비해 구현 방법이 복잡하다.
  • 투명한 트랜잭션
    • 분산된 여러 노드는 하나의 트랜잭션에 대해 일관성을 보장해야 한다. 즉, 데이터 처리 요청이 들어왔을 때 일부 트랜잭션에만 적용되는 등 일관성이 깨지면 안 된다.
      트랜잭션은 일반적으로 여러 하위 트랜잭션으로 분리될 수 있다. 이러한 개별 트랜잭션이 하나의 데이터베이스에 대응한다.

이 두 가지 특징으로 인해 다음과 같은 장단점을 가진다.

장점단점
시스템의 가용성 확보트랜잭션에 대한 처리 알고리즘이 복잡
지역 업무에 특화된 서비스 제공관리가 복잡하여 비용 증대
시스템 확장 및 적응성통신망 장애 시 부가적 피해 가능성
장애에 대한 신뢰성 증진잠재적 오류 내재 가능성
지역별 자원 활용 및 확장성 용이설계 및 구현의 어려움

이를 풀어서 설명하면 아래와 같다.

장점

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

    ACID는 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 네 가지 성질(원자성, 일관성, 독립성, 지속성)을 의미한다.

단점

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

분산 데이터베이스와 블록체인의 차이점

해당 콘텐츠에서의 블록체인은 퍼블릭 블록체인으로 가정한다.

가장 큰 차이점은 블록체인은 다음의 두 가지 특징을 가진다는 점이다.

  1. 악의적인 사용자를 전제하고 만들어진 시스템(합의 알고리즘)
  2. 운영 주체가 사라져도 시스템 유지 가능(거버넌스)

분산 데이터베이스 블록체인

분산 데이터베이스는 데이터를 분산 시켜 저장한다는 점에서 동일하지만, 특별히 악의적인 사용자를 전제하지 않는다. 이는 분산 데이터베이스가 재해 복구, 백업, 성능 상의 이점을 고려하여 만들어졌기 때문이다.

다시 말해, 분산 데이터베잇느느 일반적인 데이터베이스와 비슷하게 중앙 관리자가 각 데이터베이스를 관리하기 때문에 악의적인 사용자가 분산 데이터베이스로 참여하는 경우를 가정하지 않았다.

하지만 블록체인의 경우 처음부터 악의적인 사용자가 존재할 것이라는 가정을 하고, 새로운 블록(새로운 데이터)을 블록체인(데이터베이스)에 추가할지 결정하는 과정을 합의 알고리즘을 통해 해결한다.

또한 분산 데이터베이스는 여전히 특정 기업, 단체에 종속되기 때문에 중앙화 된 운영 주체의 정책, 규칙에 따라 언제든지 서비스가 중단될 수 있다.

반면 블록체인의 경우, 합의 알고리즘에 따라 특정 조건을 만족시키는 노드가 블록을 생성하지만, 탈중앙화 되어 있기 때문에 해당 노드가 네트워크를 떠나도 다른 노드들에 의해서 운영이 지속된다.

결론적으로, 블록체인은 합의 알고리즘과 탈중앙화 거버넌스라는 특징히 포함된 분산 데이터베이스의 한 형태이다. 따라서 모든 블록체인은 분산 원장 또는 분산 데이터베이스라고 할 수 있지만, 그 반대의 명제는 성립하지 않는다.

* TOC {:toc}

© 2021. All rights reserved.