개인 재정 NoSQL의 파티션 - 더미

NoSQL의 파티션 - 더미

차례:

비디오: NOSQL Partition Demonstration with MongoDB 2024

비디오: NOSQL Partition Demonstration with MongoDB 2024
Anonim

파티션이라는 단어는 NoSQL에서 두 가지 개념으로 사용됩니다. 데이터 파티션 은 데이터가 클러스터 전체에 고르게 분산되도록하는 메커니즘입니다. 반면에 네트워크 파티션 은 동일한 데이터베이스 클러스터의 두 부분이 통신 할 수 없을 때 발생합니다.

매우 큰 클러스터 시스템에서는 하나의 장비에 장애가 발생할 가능성이 점점 커지고 있습니다. 클러스터에있는 서버 간의 네트워크 전환이 실패하면 (컴퓨터 전문 용어로) split brain 현상이 발생합니다. 이 경우 개별 서버는 여전히 요청을 받고 있지만 서로 통신 할 수는 없습니다.

이 시나리오는 서버의 수가 가장 적은 네트워크 파티션이 클러스터에서 제거되거나 (진정한 Big Brother 방식으로 "투표가 종료 됨"으로 인해) 데이터의 불일치 또는 데이터 저장 용량의 감소로 이어질 수 있습니다).

파티션 허용

네트워크 파티션이 발생할 때 두 가지 선택 사항이 있습니다.

  • 일부 수준에서 읽기 및 쓰기 작업을 계속 진행합니다.

  • 파티션의 한 부분을 "승인"하고 두 부분이 통신 할 수있을 때 나중에 데이터를 수정하기로 결정합니다. 이 작업에는 일반적으로 누락 된 마스터 파티션 노드마다 새 마스터로 읽기 복제본을 투표하는 클러스터가 포함됩니다.

Riak을 사용하면 데이터가 복제되는 횟수 (기본적으로 3 부, 즉 n = 3)와 읽기 성공을 위해 쿼리해야하는 서버 수를 결정할 수 있습니다. 즉, 키의 기본 마스터가 네트워크 파티션의 잘못된쪽에 있으면 다른 두 서버를 사용할 수있는 경우 (즉 r = 2 읽기 가용성) 읽기 작업이 계속 성공할 수 있습니다.

힌트 된 핸드 오프 라는 시스템을 사용하여 주 파티션 서버가 다운 될 때 Riak이 쓰기를 처리합니다. 데이터가 원래 복제되면 특정 키 파티션의 첫 번째 노드가 다음 인접 노드 중 두 개 (기본값)와 함께 기록됩니다.

기본 노드에 쓸 수 없으면 링의 다음 노드에 기록됩니다. 이러한 쓰기는 효과적으로 다음 노드로 전달됩니다. 주 서버가 다시 작동하면 기본 쓰기 작업을 다시 수행하기 전에 해당 노드로 쓰기가 재생됩니다.

이 두 가지 작업 모두에서 수 밀리 초 동안 만 다른 복제본이 다른 버전 상태 일 수 있기 때문에 버전 불일치가 발생할 수 있습니다.

Riak은이 문제를 완화하기 위해

- - 엔트로피 라는 시스템을 사용합니다. 이 시스템은 업데이트 된 값을 통해 트래킹하고 복제본이 어느 시점에서, 바람직하게는 나중에는 아니라 더 빨리 업데이트되도록합니다.이렇게하면 높은 처리 속도를 유지하면서 읽기시 충돌을 피할 수 있으므로 마스터 노예, 비공유 클러스터링 지원을 사용하는 다른 NoSQL 데이터베이스에서 사용되는 2 단계 커밋을 피할 수 있습니다. 읽기 충돌이 발생하면 Riak은

읽기 복구 를 사용하여 최신 데이터 만 반환하려고 시도합니다. 궁극적으로, 사용하는 일관성 및 가용성 설정에 따라 클라이언트 응용 프로그램에 여러 버전이 제공 될 수 있으며 자체적으로 결정할 수 있습니다. 어떤 상황에서는 이러한 절충안이 바람직하며, 많은 애플리케이션이 제시된 데이터를 기반으로 어떤 버전을 사용하고 어떤 버전을 버릴 지 직관적으로 알 수 있습니다. 2 차 색인 작성

2 차 색인은 값 내의 특정 데이터에 대한 색인입니다. 대부분의 키 - 값 저장소는이 색인을 응용 프로그램에 남깁니다. 그러나 Riak은 2 차 색인을 허용하는

document

- 기반 분할 방식 을 사용하는 방식이 다릅니다. 문서 기반 파티셔닝은 JSON 구조를 Riak 데이터베이스에 작성한다고 가정합니다. { "order-id": 5001, "customer-id": 1429857, "order-date": "2014-09-24"이렇게 JSON 구조 내의 특정 명명 된 속성에 대해 인덱스를 설정할 수 있습니다. ","total ": 134.24}

이전 달에 대한 고객의 주문을 보여주는 응용 프로그램이있는 경우 그림과 같이 고객 ID가 고정 값인 모든 레코드를 쿼리하려고합니다 (1429857)이며 주문 날짜는 특정 범위 (월의 시작과 끝) 내에 있습니다.

대부분의 키 - 값 저장소에서는 결합 된 고객 번호와 월을 키로하는 다른 버킷을 만들고 그 값은 주문 ID 목록입니다. 그러나 Riak에서는 customer-id (정수)와 order-date (날짜)의 두 번째 인덱스를 추가하기 만하면됩니다.이 인덱스는 추가 저장 공간을 차지하지만 응용 프로그램 개발자에게는 투명성을 제공합니다.

이 색인도 실시간으로 업데이트됩니다. 즉, Riak의 문서 값을 업데이트하는 것과 최신 색인이 업데이트되는 것 사이에 지연이 없음을 의미합니다. 데이터에 대한 실시간 액세스는 보이는 것보다 더 어렵습니다. 색인이 일치하지 않으면 일관되게 보관 된 데이터를 찾지 못할 것입니다.

Riak 평가

Riak의 상업적 주체 인 Basho는 곧 출시 될 버전 2.0이라고 말합니다. NoSQL 데이터베이스는 다른 NoSQL 공급 업체가 만들어내는 강력한 일관성을 항상 가지고 있습니다. NoSQL 공급 업체가 항상 강한 일관성을 유지한다고 주장하는 것은 일요일에 쇠고기를 볶을 때를 제외하고는 강한 채식주의 자라고 주장하는 것과 같습니다.

Riak은 ACID 호환 데이터베이스가 아닙니다. ACID 준수 모드에서 실행되도록 구성을 변경할 수 없습니다. 클라이언트는 정상적인 작업이나 네트워크 파티션에서 일관성없는 데이터를 얻을 수 있습니다. Riak은 증가 된 가용성과 파티션 공차를 위해 절대적인 일관성을 유지합니다.

강력한 일관성 모드에서 Riak을 실행하면 읽기 복제본이 기본 마스터와 동시에 업데이트된다는 의미입니다. 여기에는 2 단계 커밋이 포함됩니다. 기본적으로 마스터 노드는 쓰기가 완료되었음을 확인하기 전에 다른 노드에 쓰는 것입니다.

강력한 일관성을 사용할 때 Riak Search (상표 화되고 통합 된 Apache Solr 검색 엔진은 최종 일관성있는 업데이트 모델을 사용함)가 오 탐지를 일으킬 수 있습니다. 이 상황은 데이터를 쓰고 트랜잭션을 포기했지만 데이터가 여전히 색인 생성에 사용되어 "오 탐지"검색 결과를 남기기 때문에 발생합니다. 결과는 실제로 더 이상 검색 쿼리에 유효하지 않습니다.

Riak은 별도의

감시 프로세스

를 사용하여 장애 조치 조건에서 어떤 노드가 마스터가되는지 확인합니다. 그러나이 프로세스는 고 가용성이 아니므로 몇 초 동안

감시 모듈 프로세스 의 새 사본이 온라인 상태가되는 동안 새 노드를 추가하거나 새로운 노드를 추가 할 수 없습니다 선출 된 선생. 높은 스트레스 장애 조치 조건에서이 가능성을 인식해야합니다.

NoSQL의 파티션 - 더미

편집자의 선택

행사에서 연설을 신청하는 방법 - 인형

행사에서 연설을 신청하는 방법 - 인형

강연을 제안 할 수 있어야합니다 다른 잠재적 인 연사보다 이벤트 참석자에게 더 많은 가치를 제공 할 수 있음을 입증하십시오. 연설 인재 풀은 가능한 연설 기회 수보다 빠르게 증가하고 있습니다. 당신은 이벤트 기획자에게 당신이 원하는 바를 물어볼 수있었습니다. ...

새로운 온라인 커뮤니티 회원 유치 방법 - 온라인 커뮤니티의 인형

새로운 온라인 커뮤니티 회원 유치 방법 - 온라인 커뮤니티의 인형

회원은 일시적입니다. 많은 사람들은 그들이 특정한 목표를 성취 할 때까지 주변에 머물러 있습니다. 다른 사람들은 관심을 잃고 새로운 행 아웃을 찾습니다. 따라서 정기적으로 신입 회원을 영입하지 않으면 커뮤니티가 사라집니다. 사람들이 교류 할 수있는 장소를 마련하는 데 어려움을 겪고 있습니다.

엄마 블로거로서 언론의 관심을 끄는 방법 - 인형

엄마 블로거로서 언론의 관심을 끄는 방법 - 인형

수십만 (또는 수백만)의 사람들이 엄청난 성과를 거두고 있습니다. 예상대로, 쉽게 성취되지는 않습니다. 뉴욕 타임스에 언급되거나 투데이 쇼에 출연하기 위해서는 많은 시간과 노력과 신뢰가 필요합니다. 아마도 ...

편집자의 선택

Ning 사용자 기고에 대한 코멘트 방법 - 인형

Ning 사용자 기고에 대한 코멘트 방법 - 인형

Ning 계정에 로그인하면 다른 Ning 사용자의 블로그 게시물, 회신 한 이벤트, 사진 및 비디오에 대한 의견을 남깁니다. 회원님의 논평 벽에 남긴 댓글, 순수 텍스트, 다른 웹 사이트 링크 및 퍼간 동영상과 같은 요소가 귀하의 댓글에 포함될 수 있습니다 ...

닝 네트워크의 광고 제어 방법 - 덤프

닝 네트워크의 광고 제어 방법 - 덤프

기본적으로 닝 네트워크는 애드 센스 광고는 오른쪽 열에 있습니다. 누군가 광고를 클릭하면 생성 된 모든 수익이 Ning으로 이동합니다. 네트워크에서 광고를 게재하여 수익을 얻고 싶거나 광고를 전혀 원하지 않는 경우 제어 광고 프리미엄 서비스를 구입해야합니다.

Ning에서 그룹을 만드는 방법 - Dingy

Ning에서 그룹을 만드는 방법 - Dingy

Ning에서 새로운 그룹을 시작하는 것은 가장 멋진 방법 중 하나입니다. 네가 닝 네트워크에서 할 수있는 일. 그룹을 만들 수 있도록 네트워크가 설정되어 있다면 다음 단계를 따르십시오.

편집자의 선택

Canon Rebel T3 시리즈 카메라로 원시 이미지 파일 처리하기 - 더미 파일

Canon Rebel T3 시리즈 카메라로 원시 이미지 파일 처리하기 - 더미 파일

Canon Rebel T3 또는 T3i로 촬영 한 이미지를 원시 데이터로 캡처 할 수 있습니다. Canon 소프트웨어를 사용하는 경우 Raw 파일을 즉시 인쇄 할 수는 있지만 인쇄하기 전에 사진 작업실로 가져 가서 온라인으로 공유하거나 사진 소프트웨어에서 편집 할 수 있습니다.

Canon Rebel T3 시리즈 카메라에서 자동 초점 포인트 설정 - 인형

Canon Rebel T3 시리즈 카메라에서 자동 초점 포인트 설정 - 인형

Canon Rebel T3 또는 T3i를 사용하는 스포츠 모드에서는 카메라가 중심 초점 위치에 초점을 둡니다. Creative 자동 및 A-DEP 모드뿐만 아니라 다른 완전 자동 노출 모드 (장면 인텔리전스 자동, 인물, 풍경 등)에서 카메라의 자동 초점 시스템은 9 개의 자동 초점을 모두 찾습니다 ...