2012-07-18 2 views
5

필자는 문서를 읽고 단일 kyotocabinet 데이터베이스에 액세스하는 여러 프로세스 (독자 및 작성자)에 대해 거의 알지 못했습니다. 여러 독자를 만들 수 있지만 ONOLOCK을 지정하지 않으면 여러 작성자가 db 열기를 차단합니다. 어떻게 작동하는지 또는 가능하다면 누구 에게라도 비춰 줄 수 있습니까? 나는 KyotoTycoon이 하나의 선택이지만, KyotoCabinet에 대해 특히 궁금합니다. tokyocabinet 맨 페이지에 발견KyotoCabinet 및 여러 프로세스?

답변

3

: "독자"와 "작가"

도쿄 내각은 데이터베이스에 연결하는 두 가지 모드를 제공합니다. 판독기는 검색을 수행 할 수 있지만 저장 및 삭제는 수행 할 수 없습니다. 작성자는 모든 액세스 방법을 수행 할 수 있습니다. 프로세스 간 제외 제어는 파일 잠금에 의해 데이터베이스에 연결할 때 수행됩니다. 작성기가 데이터베이스에 연결되어있는 동안 독자와 작성자를 연결할 수 없습니다. 독자가 데이터베이스에 연결되어 있지만 다른 독자는 연결할 수 있지만 작성자는 연결할 수 없습니다. 이 메커니즘에 따르면 멀티 태스킹 환경에서 동시 연결을 통해 데이터 일관성이 보장됩니다.

추측은 교토에도 적용됩니다.

+0

이 단락은 교토 문서에서도 나타납니다. http://fallabs.com/kyotocabinet/spex.html#tutorial – Reid

1

Kyoto Cabinet은 스레드로부터 안전하지만 동시에 읽기 및 쓰기 프로세스를 별도로 수행 할 수는 없습니다. 연결된 라이터가없는 한 여러 리더 프로세스가있을 수 있습니다. website에서

:

여러 프로세스가 하나 개의 데이터베이스를 공유

여러 프로세스가 동시에 하나의 데이터베이스 파일에 액세스 할 수 없습니다. 데이터베이스 파일은 프로세스가 인 상태에서 reader-writer lock에 의해 잠겨 있습니다. `BasicDB :: ONOLOCK '옵션은 파일 잠금 메커니즘을 벗어나기 위해 이되어서는 안된다. 이 옵션은 파일 잠금 메커니즘을 지원하지 않는 NFS와 같은 일부 파일 시스템에 대한 해결 방법입니다.

하나의 데이터베이스를 공유하는 여러 프로세스를 얻으려면 대신 Tycoon을 사용하십시오. 교토 내각에 대한 네트워크 인 과 같은 경량 데이터베이스 서버입니다.

+0

링크 된 페이지에는 도쿄에 대한 다른 답변 견적과 거의 동일한 문단이 있습니다. "교토 캐비닛은 데이터베이스에 연결하는 두 가지 모드 인 '리더'와 'writer'.... 작가는 데이터베이스에 연결되어 있지만 독자와 작가는 연결할 수 없습니다. 독자가 데이터베이스에 연결되어있는 동안 다른 독자는 연결할 수 있지만 작성자는 연결할 수 없습니다. " – Reid

+0

@ Reid - 다시 읽었으며 당신이 옳다고 생각합니다. 연결된 작성자가없는 한 여러 독자 프로세스가있을 수 있습니다. 동시 판독기와 기록기를 허용하기 위해 ONOLOCK을 사용하는 것은 지원되지 않습니다. – Jeremy