2012-02-28 1 views
1

동적으로 열 패밀리를 작성하려고 할 때 $ subject가 있습니다. 나는 이것을하기 위해 헥터를 사용하고 있으며, 기본 일관성 수준을 가지고있다. 그 이유는 Hector가 열 패밀리가 클러스터에서 복제되기 전에 Create Column Family 메서드를 반환하기 때문입니다. 이것을 어떻게 적절하게 처리합니까?Cassandra에서 열 패밀리를 프로그래밍 방식으로 생성 할 때 일관성없는 클러스터 상태가 발생했습니다.

답변

1

믿으시겠습니까? link을 읽으십시오. 여기에는 열 패밀리를 작성한 다음 열 패밀리 정의를 인쇄하는 방법에 대한 예제가 있습니다. 카스 산드라 클러스터에 열 패밀리가 작성되면 스키마가 클러스터의 노드를 통해 전파됩니다. 카산드라 노드의 열 패밀리를 검사하려면 cassandra-clishow schema 명령을 사용할 수 있습니다.

편집 : 의견을 후속에서 이 솔루션은 최신 버전으로 헥터를 업그레이드하는 방법 addColumnFamily(cfdef, true);, 즉 스키마가 클러스터에 전파 될 때까지 기다리는 것입니다 호출하는 것입니다. 그런 다음이 열 패밀리에 데이터 (열 이름 및 해당 값) 삽입을 시작하십시오.

+0

프로그래밍 방식으로 말하면 코드에서이 작업을 수행하고 있습니다. 나는 cli를 사용하고 싶지 않다. 당신이 지적한 그 연결은 문제를 해결하지 못합니다. CF가있는 키 공간을 추가하고 있습니다. CF (키 공간을 삭제하지 않고 모든 데이터를 잃지 않고)를 동적으로 추가하고 전파되도록합니다. 나는 여기서 내가 이해할 수 있기를 바란다. –

+0

@TharinduMathew 내가 분명히 나 자신을 분명히 표현할 수 없기 때문에 미안하다. ;-). 이 편집을하기 전에 정확히 무엇을하려고하는지 확인해 볼 수 있습니까? 열 이름과 그 값을 기존 열 패밀리에 동적으로 추가하고 삽입 된 열이 클러스터 전체에 전파되는지 확인 하시겠습니까? – Jasonw

+0

다시 시도하십시오 :). 카산드라 0.7의 3 노드 클러스터 동시성 문제가 있습니다. 다른 수의 스레드가 열 패밀리를 만들고 데이터를 삽입하려고합니다. 그래서이를 동기화하여 하나의 스레드 만 열 패밀리를 만들고 변경 사항이 클러스터를 통해 전파되는지 확인합니다. 그러나이 결과는 헥터와 일치하지 않습니다. 나는 해결책을 부분적으로 발견했다. 이제는 describe_schema의 Thrift API를 사용하여 클러스터에서 일관성없는 버전을 확인합니다. 그러나 때로는 클러스터 전체에 전파되지 않으며 스키마 버전이 2 개로 나타납니다. 이 방법에 접근하는 방법은? –