병렬 데이터베이스
1. 개요
병렬 데이터베이스는 여러 개의 프로세서를 사용하여 데이터베이스 작업을 병렬로 처리하는 시스템이다. 병렬 처리의 종류에는 쿼리 간 병렬 처리, 독립적 병렬 처리, 파이프라인 병렬 처리, 동작 간 병렬 처리가 있다. 쿼리 간 병렬 처리는 독립적인 쿼리들을 동시에 처리하고, 독립적 병렬 처리는 서로 의존하지 않는 작업을 병렬로 처리한다. 파이프라인 병렬 처리는 파이프라인 형태로 연결된 작업의 각 단계를 병렬 처리하며, 동작 간 병렬 처리는 하나의 복잡한 작업을 여러 프로세서에서 병렬로 처리한다.
-
데이터베이스 유형 -
문서 지향 데이터베이스
문서 지향 데이터베이스는 데이터를 문서 형태로 저장하고 관리하며, XML, JSON 등의 형식으로 캡슐화하고 고유 키로 접근하며, 스키마를 강제하지 않는 NoSQL 데이터베이스의 한 종류이다. -
데이터베이스 유형 -
클라우드 데이터베이스
클라우드 데이터베이스는 클라우드 컴퓨팅 환경에서 제공되는 데이터베이스 서비스로, 가상 머신 이미지 방식과 서비스형 데이터베이스 모델로 나뉘며, SQL/NoSQL 데이터베이스를 지원하고 확장성, 고가용성 등의 특징을 가진다.
2. 병렬 처리의 종류
병렬 처리는 크게 쿼리 간 병렬 처리, 독립적 병렬 처리, 파이프라인 병렬 처리, 그리고 동작 간 병렬 처리로 나눌 수 있다.
* 쿼리 간 병렬 처리(Interquery parallelism): 여러 개의 쿼리를 동시에 처리한다.
* 독립적 병렬 처리(Independent parallelism): 서로 독립적인 작업들을 병렬로 처리한다.
* 파이프라인 병렬 처리(Pipe-lined parallelism): 여러 작업들을 파이프라인 방식으로 연결하여 처리한다.
* 동작 간 병렬 처리(Intraoperation parallelism): 하나의 복잡한 작업을 여러 프로세서에서 병렬로 처리한다.
질의 내 병렬 처리는 여러 프로세서 또는 디스크를 사용하여 단일 쿼리를 병렬로 실행하는 것이다. 연산 내 병렬 처리는 단일 연산을 여러 프로세서에서 병렬로 실행하는 것을 말한다.
2.1. 쿼리 간 병렬 처리 (Interquery parallelism)
쿼리 간 병렬 처리는 여러 개의 독립적인 쿼리들을 동시에 병렬적으로 처리하는 방식이다. 각 쿼리는 서로 다른 프로세서에서 실행될 수 있다.
2.2. 독립적 병렬 처리 (Independent parallelism)
여러 개의 작업(operation)이 서로 의존 관계없이 독립적으로 실행될 수 있을 때, 각 작업을 다른 프로세서에 할당하여 병렬 처리하는 방식이다. 예를 들어, 네 개의 테이블을 조인해야 하는 경우 두 개는 한 프로세서에서 조인하고 다른 두 개는 다른 프로세서에서 조인할 수 있다. 최종 조인은 나중에 수행할 수 있다.
2.3. 파이프라인 병렬 처리 (Pipelined parallelism)
여러 개의 작업이 파이프라인 형태로 연결되어 있을 때, 각 단계를 서로 다른 프로세서에 할당하여 동시에 처리하는 방식이다. 앞 단계의 작업 결과가 완료되기를 기다리지 않고, 결과가 나오는 대로 다음 단계로 전달하여 처리한다. 예를 들어, 세 개의 테이블을 조인해야 하는 경우 한 프로세서는 두 개의 테이블을 조인하고 결과 집합 레코드를 생성되는 대로 다른 프로세서로 보낼 수 있다. 다른 프로세서에서는 세 번째 테이블을 들어오는 레코드와 조인하여 최종 결과를 생성할 수 있다.
2.4. 동작 간 병렬 처리 (Intraoperation parallelism)
하나의 복잡한 작업(operation)을 여러 개의 작은 작업으로 분할하여, 각 하위 작업을 여러 프로세서에서 병렬로 처리하는 방식이다. 예를 들어, 대용량 데이터 정렬(sort) 시, 데이터를 여러 부분으로 나누어 각 프로세서에서 정렬한 후, 결과를 병합할 수 있다. 수백만 개의 레코드에 대해 실행하려는 쿼리의 ORDER BY 절은 여러 프로세서에서 병렬 처리될 수 있다.