복붙노트

[MONGODB] 어디 CAP 정리에 서 MongoDB를합니까?

MONGODB

어디 CAP 정리에 서 MongoDB를합니까?

내가 보는 곳마다 나는 MongoDB를가 CP 인 것을 알 수있다. 나는 그것이 결국 일치 참조에서 그러나 나는 팔 때. 당신이 안전 = true를 사용하는 경우는 CP인가? 그렇다면, 그게 내가 안전 = 사실로 쓸 때, 모든 복제본이 결과를 얻기 전에 업데이트됩니다 것을 의미합니까?

해결법

  1. ==============================

    1.MongoDB를 기본적으로 강력하게 일치 - 당신이 쓰기 당신은 항상 당신이 방금 읽은 쓰기의 결과를 읽을 수 성공적으로 가정, 읽기 작업을 수행 한 후 쓰기를하고있는 경우. MongoDB를이 하나의 마스터 시스템이 모든 기본적으로 차에 가서 읽기 때문이다. 당신이 선택적으로 세컨더리에서 읽기 사용하는 경우는 오래된 결과를 읽을 수 어디 다음 MongoDB를 결국 일관성이된다.

    MongoDB를 기본적으로 강력하게 일치 - 당신이 쓰기 당신은 항상 당신이 방금 읽은 쓰기의 결과를 읽을 수 성공적으로 가정, 읽기 작업을 수행 한 후 쓰기를하고있는 경우. MongoDB를이 하나의 마스터 시스템이 모든 기본적으로 차에 가서 읽기 때문이다. 당신이 선택적으로 세컨더리에서 읽기 사용하는 경우는 오래된 결과를 읽을 수 어디 다음 MongoDB를 결국 일관성이된다.

    MongoDB를 또한 복제 세트에 자동 장애 조치를 통해 고 가용성을 가져옵니다 http://www.mongodb.org/display/DOCS/Replica+Sets

  2. ==============================

    2.이것은 다른 NoSQL에 다른 영구 저장 시스템과 함께, 질문에 대답 도움이 될 것입니다.

    이것은 다른 NoSQL에 다른 영구 저장 시스템과 함께, 질문에 대답 도움이 될 것입니다.

  3. ==============================

    3.나는 Luccas 포스트에 동의합니다. 여기에 시각적 정리 해보입니다, 그리고 이하 : 당신은 MongoDB를가 실제로 데이터베이스 / 드라이버 구성 및 재해의 유형 모두에 따라, C, A와 P 사이의 트레이드 오프이기 때문에, CP / AP / CA라고 말할 수 없다 더 설명을 자세히 설명.

    나는 Luccas 포스트에 동의합니다. 여기에 시각적 정리 해보입니다, 그리고 이하 : 당신은 MongoDB를가 실제로 데이터베이스 / 드라이버 구성 및 재해의 유형 모두에 따라, C, A와 P 사이의 트레이드 오프이기 때문에, CP / AP / CA라고 말할 수 없다 더 설명을 자세히 설명.

        Scenario                   | Main Focus | Description
        ---------------------------|------------|------------------------------------
        No partition               |     CA     | The system is available 
                                   |            | and provides strong consistency
        ---------------------------|------------|------------------------------------
        partition,                 |     AP     | Not synchronized writes 
        majority connected         |            | from the old primary are ignored                
        ---------------------------|------------|------------------------------------
        partition,                 |     CP     | only read access is provided
        majority not connected     |            | to avoid separated and inconsistent systems
    

    단일 연결 또는 올바른 쓰기 / 읽기 우려 수준 (당신에게 실행 속도를 비용 어떤) 사용하는 경우 MongoDB를 강하게 일치한다. 즉시 당신이 (당신이 2 차 복제본에서 읽기 특히) 이러한 조건을 충족하지 않는 MongoDB를은 결국 일관성이된다.

    MongoDB를이 복제-설정을 통해 고 가용성을 얻을 수 있습니다. 즉시 기본이 다운되거나 다른 사용할 수없는수록, 다음 세컨더리는 새로운 차를 다시 사용할 수있게 결정합니다. 이에 대한 단점이있다 : 다시, 압연 롤 i 파일에 저장됩니다 이전 기본에 의해 수행하지만 보조에 동기화되지 않은 모든 쓰기는 즉시이 설정에 다시 연결로 (이전 기본은 보조입니다 지금). 그래서이 경우 일부 일관성 가용성을 위해 희생된다.

    사용을 통해의는 복제-설정하여 MongoDB는 파티션 허용 오차를 달성했다 : 서로 연결되어있는만큼 더 많은 복제 세트의 서버의 절반 이상이 새로운 차를 선택할 수 있습니다. 왜? 모두 새 차를 선택할 수 없습니다 두 개의 분리 된 네트워크를 확인하십시오. 충분하지 세컨더리는 여전히 그들로부터 읽을 수 서로 연결되어있다 (그러나 일관성이 보장되지 않는) 경우 만 쓸 수 없습니다. 세트는 일관성을 위해서 실질적으로 사용할 수 없습니다.

  4. ==============================

    4.화려한 새 글이 필드에 카일으로도 굉장한 실험을 가리 켰을 때, C 또는 A로 MongoDB를, 그리고 다른 데이터베이스를 라벨 때주의해야

    화려한 새 글이 필드에 카일으로도 굉장한 실험을 가리 켰을 때, C 또는 A로 MongoDB를, 그리고 다른 데이터베이스를 라벨 때주의해야

    물론 CAP은 어떤 데이터베이스 우선 그것에 대해 많은 말없이 추적하는 데 도움이,하지만 사람들은 CAP의 C 예를 들어 원자 일관성 (원 자성)을 의미 잊는다. 분류 할 때 통증이 발생하는 날의 많은 이해합니다. MongoDB의 강한 일관성을 제공 외에 그래서, 그것은 그 사람이이 분류를 할 경우, 나는 또한 실제로 의심을 두지 위해 어떻게 작동하는지 더 깊이를 제공하는 것이 좋습니다, 이런 식으로 C. 의미하지 않습니다.

  5. ==============================

    5.진정한 안전 =를 사용하는 경우 예, CP입니다. 이 단순히 수단은 데이터가 마스터 디스크에 그것을 만들었다. 당신이 확인하려면 확인 또한, 일부 복제본에 모습을 도착 N은 데이터에 저장하는 복제본의 수입니다 매개 변수 '= N w'.

    진정한 안전 =를 사용하는 경우 예, CP입니다. 이 단순히 수단은 데이터가 마스터 디스크에 그것을 만들었다. 당신이 확인하려면 확인 또한, 일부 복제본에 모습을 도착 N은 데이터에 저장하는 복제본의 수입니다 매개 변수 '= N w'.

    자세한 내용은이 본을 참조하십시오.

  6. ==============================

    6.나는 몽고에 대한 P 확실하지 않다. 상황을 상상해 :

    나는 몽고에 대한 P 확실하지 않다. 상황을 상상해 :

    문제는 여기에 덤프 파일 크기가 제한되어 있다는 것입니다 당신이 오랜 시간 동안 파티션이 있다면 당신은 영원히 데이터를 잃어 버릴 수 있습니다.

    그래 그 사람이 생각하는 것보다 더 일반적이다 클라우드하지 않는 한 - 당신은 일어날 가능성이 있다고 말할 수 있습니다.

    나는 데이터베이스에 대한 편지를 할당하기 전에 매우 조심해야 할 이유 예입니다. 많은 시나리오 및 구현이 완벽하지 않도록있다.

    이 시나리오가되어 몽고의 이후 릴리스에서 해결 한 경우 누군가가 알고 있다면 코멘트를하시기 바랍니다! (나는 몇 시간 동안 무슨 일이 벌어지고 모든 것을 다음되지 않았습니다 ..)

  7. ==============================

    7.MongoDB를 결코 차에 쓰기를 허용하지 않습니다. 그것은 차하지만 읽기와 쓰기를 선택 할 수 있습니다. 기본가 다운되면 보조 다시 차 될 때까지 그래서, 당신은 쓸 수 없습니다. 즉, 당신이 CAP 정리에 고 가용성을 희생하는 방법입니다. 당신을 유지하는 것이 주에서만 읽고함으로써 당신은 강력한 일관성을 가질 수 있습니다.

    MongoDB를 결코 차에 쓰기를 허용하지 않습니다. 그것은 차하지만 읽기와 쓰기를 선택 할 수 있습니다. 기본가 다운되면 보조 다시 차 될 때까지 그래서, 당신은 쓸 수 없습니다. 즉, 당신이 CAP 정리에 고 가용성을 희생하는 방법입니다. 당신을 유지하는 것이 주에서만 읽고함으로써 당신은 강력한 일관성을 가질 수 있습니다.

  8. from https://stackoverflow.com/questions/11292215/where-does-mongodb-stand-in-the-cap-theorem by cc-by-sa and MIT license