2014-07-11 4 views
0

나는 couchbase에 .NET API를 사용하고 있습니다. 문서의 개정 번호를 어떻게 얻을 수 있는지 알고 싶습니까?couchbase 문서의 개정 번호를 얻는 방법은 무엇입니까?

건배

+0

왜 개정 번호를 받아 볼 수 있기를 원하십니까? 이 번호는 xdcr 충돌 해결을 위해 내부적으로 만 사용됩니다. – mikewied

+0

동시성 작업을 위해 – tjhack

+1

CAS를 사용하지 않는 이유는 무엇입니까? 문서가 수정 될 때마다 업데이트됩니다. – jeffrymorris

답변

0

(존재조차하지 않을 수 있습니다 약간 낮은 수준의 권장되지 방법에 의존하지 않고) 가장 좋은 해결책 다만 확실히 값의 일부로 개정을 저장하는 것? 이렇게하면보기에서 읽을 수있어 유틸리티를 제공 할 수 있습니다 (예 : 다른 완료 될 때 특정 대기중인 프로세스/문서 만).

2

제프가 위에서 언급 한 것처럼 당신이 원하는 것은 cas 값을 사용하는 것입니다. 이 값은 Couchbase와 memcached 모두 다른 스레드에서 동일한 문서를 업데이트하기 위해 존재합니다. CAS는 문서가 업데이트 될 때마다 변경되는 임의의 숫자입니다. 기본적으로 당신이 원하는 것은 get() API를 사용하여 cas을 얻는 것이다. 그러면 cas 값과 함께 요청 된 키의 현재 값이 반환됩니다. 그런 다음 애플리케이션에서 문서를 수정하고 set() API를 호출 할 수 있지만 cas 값을 포함해야합니다. 서버가 cas 값을 가진 집합을 받으면 cas 값이 현재 서버에있는 값과 일치하면 문서 만 업데이트합니다. set() 작업이 실패하면 문서가 변경된 것을 알 수 있으며 문서를 다시 가져 와서 새 cas 값을 기억하고 변경 한 다음 문서를 다시 설정() 할 수 있습니다.

http://docs.couchbase.com/couchbase-devguide-2.5/#check-and-set-cas

관련 문제