병렬 데이터베이스

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

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 절은 여러 프로세서에서 병렬 처리될 수 있다.