http://www.ibm.com/developerworks/library/os-apache-cassandra/의 예제를 사용하십시오. 우리가 책과 태그라는 두 개의 실체를 가지고 있다고 가정 해보자. 책은 여러 개의 태그를 가지고 있으므로 그들 사이의 관계는 1 : M입니다.cassandra : 일치하지 않는 열 패밀리
이 기사에 따르면 Books
과 Tags2BooksIndex
의 두 열을 생성해야합니다. 전자는 책에 대한 모든 정보 (모든 태그 포함)를 저장하는 반면, 후자는 태그에서 책으로 매핑하는 색인이므로 주어진 태그에 대해 해당 태그가있는 모든 책을 빨리 찾을 수 있습니다. 이 모든 것이 잘 생겼다. 그러나 질문이 있습니다 :
db에 새 책을 추가하는 방법을 고려하십시오. (1) 열 Books
에 새 행을 추가하십시오 (2) Tags2BooksIndex
을 업데이트하여 관련된 모든 태그 행에 새 책을 추가하십시오. 이 책.
단계 (1)을 완료 한 후 2 초가 지나면 새 북행은 이동 예정인 모든 노드에 복제되었으며 단계 (2)는 계속 진행 중입니다. 이제이 새로운 책 행을 books
에서 읽고 태그를 가져온 다음이 태그를 사용하여 Tags2BooksIndex
을 확인하면 Tags2BooksIndex
에서 새 책을 찾을 수 없거나 아직 완전히 업데이트되지 않았거나 업데이트가되지 않았을 수 있습니다. 아직 모든 복제 노드에 복제되지 않았습니다.
어떻게 이런 상황을 처리 할 수 있습니까? 2 초를 2 밀리 초로 바꾸면 여전히 불일치하는 시간 창이 있습니다. 나는 그런 상황을 다루는 "올바른/실제적인"방법을 알고 싶다.