2016-06-06 3 views
-1

분산 데이터베이스에 관해 이야기 할 때 모두 동일한 정보를 가져야합니까? 예를 들어 데이터베이스에서 동일한 결과를 반환해야 테이블 고객분산 데이터베이스 관련 질문

select * from customers 

이 쿼리를 상상 ? 즉, 모든 사용자가 모든 데이터베이스에 있어야합니까? 예를 들어 "사용자 1"이 모든 데이터베이스에 존재해야합니까?

예를 들어, 판매 및 sale_detail 을 사용하는 경우이 "새로운 판매 (판매 및 세부 정보) 삽입"이 모든 데이터베이스에이 새로운 판매를 삽입해야하는 경우 테이블 마스터 - 상세를 상상해보십시오.

여기 거래가 어떻게 이루어 집니까? 또는 sale-sale_details가 모든 데이터베이스에 있어야하지 않습니까?

분산 트랜잭션은 어떻게 작동합니까?

+0

위키 피 디아가 잘 소개되었습니다. – philipxy

답변

0

분산 데이터베이스는 데이터가 모든 서버 시스템에 복제된다는 것을 의미하지 않습니다. 데이터 복제는 토폴로지 일종의 것입니다.

분산 데이터베이스의 의미는 여러 시스템이 함께 작동하여 데이터를 저장하고 제공하는 것입니다. 그들이하는 일은 또 다른 이야기입니다. 위키

에서 분산 데이터베이스는

당신 '분산 데이터베이스 관리 시스템 저장 장치가 모두 같은 CPU와 같은 일반적인 처리 장치에 연결되지 않는 및 제어되는 데이터베이스입니다 다시 묻는 것은 데이터가 분산 데이터베이스에서 어떻게 분산되는지를 묻는 것입니다.

일반적으로 가장 일반적인 배포 방법은 Hashbased distribution입니다. 값 key 또는 ID에 대해 hash 값을 계산하여 노드 중 하나에 저장합니다. 예. 데이터가 모든 서버에 저장되지 않습니다 (따라서 배포판).

Hash 배포를 통해 데이터베이스 서버 시스템이나 클러스터간에 데이터가 일정하게 분배됩니다.

다른 질문 서버의 모든 다른 노드가 함께 작동하여 쿼리 결과를 찾는다는 것을 먼저 이해하면 쿼리가 어떻게 처리되는지에 대한 답을 얻을 수 있습니다. 모든 데이터베이스 서버는 기본적으로 자체 로컬 데이터 집합 (데이터가 복제되지 않은 상태로 분산되어 있음을 기억)에서 쿼리를 수행하고 클라이언트에 응답합니다. 클라이언트 API는 반환 된 리더가 정확하게 수행 할 수 있도록 결과를 누적하거나 모든 서버에 연결할 정도로 지능적이어야합니다.