Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Published by Scroll Versions from space ML1 and version 5.3
Sv translation
languageen

ClustrixDB is a clustered RDBMS that ensures ACID compliance for transaction processing while simultaneously providing easy scalability and fault tolerance. A ClustrixDB cluster is comprised of three or more nodes (networked homogeneous servers).

ClustrixDB utilizes a shared nothing architecture. Each node within a cluster can perform any read or write. To add capacity to your database, simply add more nodes. 

The primary components of ClustrixDB that help achieve performance and scale are:

  • The Global Transaction Manager (GTM), which coordinates the processing of a given transaction.

  • The Rebalancer, which automatically distributes data across the cluster.

  • The Sierra Database Engine, which determines an optimal query execution plan and then executes that plan on distributed data.

The diagram below shows how a typical query is processed by ClustrixDB.

Image Modified

Anchor
Global_Transaction_Manager
Global_Transaction_Manager
Global Transaction Manager

Query processing within ClustrixDB begins when one node of the cluster is selected as the Global Transaction Manager (GTM), typically via a load balancer that distributes connections across the cluster. The GTM then manages all aspects of that transaction by directing each step of query execution, confirming that each step completes successfully, then collecting and finalizing the query results before returning them to the caller.

ClustrixDB compiles queries into executable query fragments that the GTM distributes to the appropriate node(s) for execution. As intermediate results become available, they are returned to the GTM. Once all query fragments have been executed successfully, the GTM finalizes the results and returns them to the client, application, or user.

Rebalancer

Distributed processing would not be possible nor necessary if ClustrixDB’s data had not previously been distributed throughout the cluster. To accomplish this, ClustrixDB utilizes a patented data distribution methodology that is administered by its Rebalancer. The Rebalancer arranges data within the cluster to ensure that reads and writes are always balanced. It also guarantees that multiple copies (replicas) of data are maintained throughout the cluster to ensure fault tolerance. If a node is lost due to an unexpected failure, no data will be lost. The Rebalancer will automatically ensure that redundant replicas are created and maintained. It further accommodates the changing size of a cluster by re-balancing data to new nodes as they are added and moving data off nodes that are marked for removal, all while the database remains online.

The Rebalancer uses a consistent hashing algorithm to assign each table row to a given “slice” of that table and provides a map of all slices to every node. This allows ClustrixDB to quickly and easily ascertain the location of relevant data. The Rebalancer runs continuously in the background without interfering with ongoing production processing.

Although data is sliced and distributed to numerous nodes of a cluster, a database table will always appear as a single logical unit to an application. Clustrix uses a simple SQL interface and no special application programming is necessary to access data distributed throughout a ClustrixDB cluster.


Image Modified

Please read about ClustrixDB’s Rebalancer for additional information.

Sierra Database Engine

Sierra is the SQL engine of ClustrixDB that handles query planning and execution. It has been specifically designed to work in a distributed, shared nothing environment while facilitating access to distributed data as efficiently as possible. The Sierra Database Engine consists of two parts:

  • The Sierra Parallel Planner determines an optimal execution plan for a SQL statement.

  • The Sierra Distributed Execution Engine executes query fragments based on those plans and provides intermediate results.

Sierra Parallel Planner

Sierra Parallel Planner is a cost-based optimizer that uses probability statistics, data volumes, indices, and overhead of query operators to determine the most efficient query plan. A key differentiating feature of ClustrixDB’s planner is that it determines this plan while taking into account the distribution of the data across the cluster.

Image Modified

For additional samples that demonstrate how this query fragmentation works, please see A New Approach to Scale-Out RDMS.

Sierra Distributed Execution Engine

Once the Sierra Planner determines the optimal plan for a query, it is compiled into machine-executable query fragments. Those compiled query fragments are then executed across different nodes in the cluster, providing efficiency and increased concurrency of execution. Once execution on each node is complete, the results are returned to the GTM node, which then combines the partial results and returns the final result set to the user.

Selected aggregate processing is also distributed. When advantageous, computations are fragmented and distributed the same as other queries except that partial aggregates (SUM, MAX, MIN, AVG, etc.) are calculated on each node’s distributed data first. The intermediate results are then coalesced by the GTM to produce the final result.

Let’s look one final time at the query distribution in ClustrixDB - this time with the distributed data in place.

Image Modified

Conclusion

ClustrixDB uses automatic data distribution, a sophisticated query planner, and a distributed execution model to provide scalability and concurrency in an ACID compliant RDBMS. To accomplish this, ClustrixDB utilizes many of the same techniques used by other Massively Parallel Processing (MPP) databases: It uses Paxos for distributed transaction resolution, and Multi-Version Concurrency Control (MVCC) to prevent transaction conflicts. With the aid of the major components outlined above, ClustrixDB provides this distributed execution with a simple SQL interface while also providing scalability, efficiency, and fault tolerance. 


Sv translation
languageko

ClustrixDB는 트랜잭션 처리를 위한 ACID 준수를 보장하면서 동시에 쉬운 확장성과 내결합성을 제공하는 클러스터 된 RDBMS입니다. ClustrixDB 클러스터는 세 개 이상의 노드(네트워크로 연결된 동종 서버)로 구성됩니다.

ClustrixDB는 비공유 아키텍처(shared nothing architecture)를 사용합니다. 클러스터 내에서 각 노드는 읽기 또는 쓰기를 수행할 수 있습니다. 데이터베이스에 용량을 추가하려면 더 많은 노드를 추가하면 됩니다.

ClustrixDB의 성능과 확장성 보장을 위한 주요 요소는 다음과 같습니다.

  • GTM(Global Transaction Manager) - 주어진 트랜잭션 처리를 조정

  • Rebalancer - 클러스터 전체에 데이터를 자동으로 분산

  • Sierra 데이터베이스 엔진 - 최적의 쿼리 실행 계획을 결정한 다음 분산 데이터에서 해당 계획을 실행

아래 다이어그램은 ClustrixDB가 일반적인 쿼리를 처리하는 방법을 보여줍니다.

Image Added

GTM(Global Transaction Manager)

ClustrixDB 내의 쿼리 처리는 일반적으로 클러스터 전체에 연결을 분산하는 로드 밸런서를 통해 클러스터에 있는 하나의 노드가 GTM으로 선택될 때 시작합니다. 그런 다음, GTM은 쿼리 실행의 각 단계를 지시하고 각 단계가 성공적으로 완료되는 것을 확인한 후, 호출자에게 쿼리 결과를 반환하기 전에 수집하고 마무리하여 호출자에게 반환함으로써 해당 트랜잭션의 모든 측면을 관리합니다.

ClustrixDB는 쿼리를 먼저 실행 가능한 쿼리 프래그먼트(fragment)로 컴파일하고 GTM이 컴파일된 프래그먼트를 적절한 노드에 배포합니다. 중간 결과가 나오면 GTM으로 반환합니다. 모든 쿼리 프래그먼트가 성공적으로 실행되면 GTM은 결과를 종합하여 클라이언트, 애플리케이션 또는 사용자에게 반환합니다.

Rebalancer

ClustrixDB 데이터가 이전에 클러스터 내에 분산되지 않은 경우 분산 처리는 불가능하거나 필요하지 않습니다. 이를 위해 ClustrixDB는 Rebalancer가 관리하는 특허받은 데이터 분산 방법을 사용합니다. Rebalancer는 읽기와 쓰기가 항상 균형을 이루도록 클러스터 내의 데이터를 배열합니다. 또한, Rebalancer는 내결함성을 보장하기 위해 클러스터 내에 다수의 데이터 복제본(replica)이 유지되도록 합니다. 예기치 않은 장애로 노드가 손실되어도 데이터 유실은 없습니다. 뿐만 아니라, 데이터베이스가 온라인 상태에서 노드가 추가될 때 새 노드로 데이터를 재조정하고 제거 대상으로 표시된 노드에서 데이터를 이동시킴으로써 클러스터의 크기 변화를 수용합니다.

Rebalancer는 일관된 해싱 알고리즘(consistent hashing algorithm)을 사용하여 각 테이블의 행을 해당 테이블의 "슬라이스(slice)"에 할당하고 모든 슬라이스의 맵(map)을 모든 노드에 제공합니다. 이를 통해 ClustrixDB는 관련 데이터의 위치를 쉽고 빠르게 확인할 수 있습니다. Rebalancer는 진행 중인 프로세스 처리를 방해하지 않고 백그라운드에서 지속적으로 동작합니다.

데이터가 클러스터의 여러 노드에 분할되어 배포되더라도 애플리케이션에 있어 데이터베이스 테이블은 항상 하나의 논리 개체로 표시됩니다. ClustrixDB는 간단한 SQL 인터페이스를 사용하므로 ClustrixDB 클러스터 전체에 분산된 데이터에 액세스하는데 특별한 응용 프로그램 작성이 필요하지 않습니다.


Image Added

자세한 내용은 ClustrixDB Rebalancer를 참조하십시오.

Sierra 데이터베이스 엔진

Sierra는 쿼리 계획 및 실행을 처리하는 ClustrixDB의 SQL 엔진입니다. 이것은 가능한 효율적으로 분산 데이터에 대한 액세스를 용이하게 하면서 분산, 비공유(shared nothing) 환경에서 작동하도록 설계되었습니다. Sierra 데이터베이스 엔진은 두 개의 부분으로 구성되어 있습니다.

  • Sierra 병렬 플래너(Sierra Parallel Planner)는 SQL문에 대한 최적의 실행 계획을 결정합니다.

  • Sierra 분산 실행 엔진(Sierra Distributed Execution Engine)은 해당 실행 계획을 기반으로 쿼리 프래그먼트를 실행하고 중간 결과를 제공합니다.

Sierra 병렬 플래너(Sierra Parallel Planner)

Sierra 병렬 플래너는 확률 통계, 데이터 볼륨, 인덱스 및 쿼리 연산자 오버헤드를 사용하여 가장 효율적인 쿼리 계획을 결정하는 비용 기반(cost-based) 옵티마이저입니다. ClustrixDB 플래너의 가장 차별화된 기능은 클러스터 전체에서 데이터 분산을 고려하면서 이 계획을 결정하는 데 있습니다.

Image Added

쿼리 조각화(query fragmentation) 동작 방식에 대한 추가 샘플은 ClustrixDB Sierra 데이터베이스 엔진을 참조하십시오.

Sierra 분산 실행 엔진

Sierra 플래너가 최적의 쿼리 플랜을 결정하면 머신 실행 가능 쿼리 프래그먼트로 컴파일됩니다. 그런 다음, 컴파일된 쿼리 프래그먼트는 클러스터의 다른 노드에서 실행되어 효율성 및 동시 실행 증가를 제공합니다. 각 노드에서 실행이 완료되면 GTM 노드로 결과가 반환되고 그런 다음 각 부분 결과를 결합하여 최종 결과 집합을 사용자에게 반환합니다.

ClustrixDB가 분산 실행을 활용하여 보다 빠른 결과를 얻을 수 있는 방법 중 하나는 분산 집계 처리 에 있습니다. 각 노드의 분산 데이터에 대해 부분 집계(SUM, MAX, MIN, AVG, 등)가 먼저 이뤄진다는 것을 제외하고 계산을 다른 쿼리와 비슷하게 조각화되고 분산됩니다. 그런 다음, GTM에 의해 중간 결과가 최종 결과로 합쳐집니다.

마지막으로 분산된 데이터가 준비된 상태로 ClustrixDB에서 쿼리 분산에 대해 살펴보도록 하겠습니다.

Image Added

결론

ClustrixDB는 자동 데이터 배포, 정교한 쿼리 플래너 및 분산 실행 모델을 사용하여 ACID를 준수하는 RDBMS에서 확장성 및 동시성을 제공합니다. 이를 위해 ClustrixDB는 다른 MPP(Massively Parallel Processing) 데이터베이스에서 사용하는 동일한 기술들을 사용합니다. 분산 트랜잭션 해결을 위해 Paxos를 사용하고 MVCC(Multi-Version Concurrency Control)을 사용하여 트랜잭션 충돌을 방지합니다. 위에 요약된 주요 구성 요소의 도움으로 ClustrixDB는 확장성, 효율성 및 내결함성을 제공하면서 간단한 SQL 인터페이스로 이 분산 실행을 제공합니다.