2014-11-14 6 views
3

저는 couchbase를 처음 사용하고 단일 문서 (매우 매초마다)를 매우 자주 업데이트하면 모든 업데이트가 디스크 쓰기 대기열을 통과하게되는지 궁금합니다. 문서?빈번한 couchbase 문서 업데이트

다시 말해, couchbase는 쓰기간에 여러 번 업데이트 된 경우에도 디스크에 문서를 한 번만 기록하여 디스크 쓰기를 최적화합니다.

문서에 따라 http://docs.couchbase.com/admin/admin/Monitoring/monitor-diskqueue.html은 모든 업데이트가 처리되는 것처럼 들립니다. 누구든지이 사실을 확인할 수 있으면 감사 할 것입니다.

감사합니다.

답변

4

업데이트는 디스크에 기록되기 전에 디스크 대기열에 보관됩니다. 문서에 대한 쓰기가 발생하고 이전의 쓰기가 여전히 디스크 대기열에 있으면 두 개의 쓰기가 병합되고 더 최신 버전 만 실제로 디스크에 기록됩니다. 쓰기 작업은 스토리지 서브 시스템 속도/노드 부하에 비해 올 얼마나 빨리에 따라 달라집니다 합체 얻을 같은 키에 기록 그래서 여부 디스크 대기열 배수가 스토리지 서브 시스템에 따라 달라집니다 정확히 얼마나 빨리

.

+0

정보 주셔서 감사합니다. 매우 유용합니다. –

0

Jako, millisecond 시간 프레임에서 일어나는 업데이트 또는 1 밀리 초 안에 일어나는 하나 이상의 업데이트에 대해 더 걱정해야합니다. 디스크 쓰기는 문제가되지 않지만 Couchbase는 지능적으로이 문제를 해결하지만 밀리 초 단위로 작업 할 때 동시성 문제를 해결합니다.

응용 프로그램을 테스트했을 때 Node.js (내 경우)가 때때로 CouchBase에 데이터를 쓰는 이유를 이해할 수 없을 때 쉽게 실행되었습니다. 보통 첫 번째 레코드를 위해 CouchBase에 쓰지 않은 경우.

특정 키가있는 문서가 존재하는지 여부를 먼저 확인했을 때 발생하는 문제가 더 많았습니다. 기존에 존재하지 않았던 경우에만 CouchBase에 쓰기 만하면 초기 콜백이 완료되었고 현재는 실제로 같은 문서에 대한 키.

이러한 경우 CAS 플래그로 작동하고 반복적으로 프로그래밍해야 앱이 해당 키에 대한 올바른 문서를 계속 가져 와서 업데이트합니다. 특히 동일한 문서에 대한 테스트 및 업데이트가 실행될 때이를 염두에 두십시오!

+0

이제 CAS의 중요성을 알게되었습니다. 감사합니다. –

관련 문제