병렬 데이터베이스

Parallel database

병렬 데이터베이스 시스템은 데이터 로드, 인덱스 작성, 쿼리 평가 등 다양한 작업의 병렬화를 통해 성능 향상을 도모한다.[1] 데이터가 분산된 방식으로 저장될 수 있지만, 분포는 성능 고려사항에만 의해 관리된다. 병렬 데이터베이스는 여러 CPU와 디스크를 병렬로 사용함으로써 처리 및 입출력 속도를 향상시킨다. 중앙 집중식 및 클라이언트-서버 데이터베이스 시스템은 이러한 애플리케이션을 처리할 만큼 강력하지 않다. 병렬 프로세싱에서는 연산 단계를 순차적으로 수행하는 직렬 프로세싱과는 달리 많은 연산을 동시에 수행한다. 병렬 데이터베이스는 대략 두 그룹으로 나눌 수 있는데, 첫 번째 아키텍처 그룹은 멀티프로세서 아키텍처인데, 그 대안은 다음과 같다.

공유 메모리 아키텍처
여러 프로세서메인 메모리(RAM) 공간을 공유하지만 각 프로세서에 자체 디스크(HDD)가 있는 경우 많은 프로세스가 동시에 실행되면 속도가 감소하는데, 이는 많은 병렬 태스크가 실행되고 컴퓨터가 느려질 때 컴퓨터와 같다.
공유 디스크 아키텍처
각 노드가 고유한 주 메모리를 가지지만 모든 노드가 대용량 저장소를 공유하며, 일반적으로 저장 영역 네트워크. 실제로 각 노드에는 대개 여러 개의 프로세서가 있다.
공유 없음 아키텍처
각 노드가 자체 대용량 저장소와 메인 메모리를 가지고 있는 경우.

다른 아키텍처 그룹은 하이브리드 아키텍처라고 불리며, 여기에는 다음이 포함된다.

  • NUMA(Non-Uniform Memory Architecture)는 불균일 메모리 액세스를 포함한다.
  • 연결된 컴퓨터 그룹에 의해 구성된 클러스터(공유되지 않음 + 공유 디스크: SAN/NAS)

이 스위치나 허브는 다른 컴퓨터들을 연결하는데 가장 저렴한 방법이고 간단한 토폴로지만이 다른 컴퓨터들을 연결하는데 사용된다. 스위치가 구현된다면 훨씬 더 똑똑하다.

병렬의 종류

수족내 평행성
여러 프로세서 또는 디스크를 사용하여 병렬로 실행되는 단일 쿼리.[2]
독립적 병렬주의
각 작업을 서로 독립적으로 실행할 수 있는 경우에만 서로 다른 프로세서에서 개별적으로 실행. 예를 들어, 4개의 테이블을 결합해야 한다면, 2개는 한 프로세서에, 나머지 2개는 다른 프로세서에 결합할 수 있다. 최종 합류는 나중에 해도 된다.
파이프라인 평행도
파이프라인 방식으로 다양한 작업 실행. 예를 들어, 우리가 세 개의 테이블을 결합해야 할 경우, 하나의 프로세서가 두 개의 테이블을 결합하여 결과 집합 레코드를 다른 프로세서로 생산될 때와 마찬가지로 전송할 수 있다. 다른 프로세서에서 세 번째 테이블은 들어오는 레코드와 결합될 수 있고 최종 결과는 생산될 수 있다.
수술내 병행증
여러 프로세서에서 하나의 복잡한 작업 또는 대규모 작업을 병렬로 실행 예를 들어 수백만 개의 레코드에서 실행하려고 하는 쿼리의 ORDER BY 조항은 여러 프로세서에서 병렬로 실행할 수 있다.

참조

  1. ^ Dewitt, David; Gray, Jim (1992). "Parallel database systems: The future of high performance database systems" (PDF). Communications of the ACM. 35 (6): 85. CiteSeerX 10.1.1.119.8427. doi:10.1145/129888.129894.
  2. ^ Kandasamy, Saravanakumar. "Parallel Database - Intraquery Parallelism - Advanced Database Management System". Blogger. Retrieved September 10, 2017.