2012-03-07 2 views
0

이것은 이전 게시물에서 중복되지 않습니다. 이제는 혼합 행 업데이트에 대해 집중적으로 설명하겠습니다.동일한 타임 스탬프가 포함 된 혼합 행 업데이트의 충돌 해결

두 클라이언트가 동일한 키 (RowARowB)로 식별되는 두 행의 업데이트를 보냅니다. 행은 동일한 열 패밀리에 유지됩니다. 두 요청 모두 은 동일한 타임 스탬프입니다. RowA:{col:"valA2"}, RowB:{col:"valB2"}

이러한 업데이트의 결과는 무엇인가 RowA:{col:"valA1"}, RowB:{col:"valB1"}

  • 클라이언트 2 인서트를 보냅니다

    • 클라이언트 1 삽입 전송?

      동일한 열 패밀리 내에서 업데이트가 있기 때문에 클라이언트의 winn이 가능할 수 있습니까?

      혼합 결과 가능 - 예 : RowA:{col :"valA1"}, RowB:{col:"valB2"}?

      이러한 업데이트 결과를 예측할 수 있습니까?

  • +1

    는 http://stackoverflow.com/questions/9602413과 비슷한 소리를하지 않습니다/cassandra-conflict-resolution-for-mixed-column-updates-same-timestam? 그들은 두 가지 문제가 있습니까? – Nishant

    +0

    타임 스탬프는 카산드라의 각 열에 고유합니다. 이것은 이전 질문과 같은 질문입니다 (http://stackoverflow.com/questions/9602413/cassandra-conflict-resolution-for-mixed-column-updates-with-identical-timestam/). 거기서 대답 해 봤습니다. – nickmbailey

    +0

    은 Cassandra가 원자 쓰기로 "더 많은 것을"할 수 있기 때문에 동일하지 않을 수 있습니다. 이것이 내가 두 개의 질문 (두 행에 하나의 행 수정과 두 번째 mutate가있는 두 개의 질문)으로 나누려는 이유입니다. –

    답변

    1

    동일한 행/열에 대한 두 개의 쓰기가 동일한 타임 스탬프를 갖는 경우 열의 바이트 값을 비교하여 연결을 끊습니다. 자세한 내용은 CASSANDRA-1039을 참조하십시오.

    위의 예제에서 클라이언트 2는 클라이언트 1보다 큰 바이트 []로 값을 쓰고 있기 때문에 client2의 쓰기가 성공합니다.

    RowA:{col:"valA1"}, RowB:{col:"valB1"} 
    

    두 쓰기와 동일 다른 사람들이 지적했듯이

    이 쓰기,

    RowA:{col:"valA1"} 
    RowB:{col:"valB1"} 
    
    +0

    cool - thank 당신 –

    관련 문제