필자는 문서를 읽고 단일 kyotocabinet 데이터베이스에 액세스하는 여러 프로세스 (독자 및 작성자)에 대해 거의 알지 못했습니다. 여러 독자를 만들 수 있지만 ONOLOCK을 지정하지 않으면 여러 작성자가 db 열기를 차단합니다. 어떻게 작동하는지 또는 가능하다면 누구 에게라도 비춰 줄 수 있습니까? 나는 KyotoTycoon이 하나의 선택이지만, KyotoCabinet에 대해 특히 궁금합니다. tokyocabinet 맨 페이지에 발견KyotoCabinet 및 여러 프로세스?
답변
: "독자"와 "작가"
도쿄 내각은 데이터베이스에 연결하는 두 가지 모드를 제공합니다. 판독기는 검색을 수행 할 수 있지만 저장 및 삭제는 수행 할 수 없습니다. 작성자는 모든 액세스 방법을 수행 할 수 있습니다. 프로세스 간 제외 제어는 파일 잠금에 의해 데이터베이스에 연결할 때 수행됩니다. 작성기가 데이터베이스에 연결되어있는 동안 독자와 작성자를 연결할 수 없습니다. 독자가 데이터베이스에 연결되어 있지만 다른 독자는 연결할 수 있지만 작성자는 연결할 수 없습니다. 이 메커니즘에 따르면 멀티 태스킹 환경에서 동시 연결을 통해 데이터 일관성이 보장됩니다.
추측은 교토에도 적용됩니다.
Kyoto Cabinet은 스레드로부터 안전하지만 동시에 읽기 및 쓰기 프로세스를 별도로 수행 할 수는 없습니다. 연결된 라이터가없는 한 여러 리더 프로세스가있을 수 있습니다. website에서
:
여러 프로세스가 하나 개의 데이터베이스를 공유
여러 프로세스가 동시에 하나의 데이터베이스 파일에 액세스 할 수 없습니다. 데이터베이스 파일은 프로세스가 인 상태에서 reader-writer lock에 의해 잠겨 있습니다. `BasicDB :: ONOLOCK '옵션은 파일 잠금 메커니즘을 벗어나기 위해 이되어서는 안된다. 이 옵션은 파일 잠금 메커니즘을 지원하지 않는 NFS와 같은 일부 파일 시스템에 대한 해결 방법입니다.
하나의 데이터베이스를 공유하는 여러 프로세스를 얻으려면 대신 Tycoon을 사용하십시오. 교토 내각에 대한 네트워크 인 과 같은 경량 데이터베이스 서버입니다.
링크 된 페이지에는 도쿄에 대한 다른 답변 견적과 거의 동일한 문단이 있습니다. "교토 캐비닛은 데이터베이스에 연결하는 두 가지 모드 인 '리더'와 'writer'.... 작가는 데이터베이스에 연결되어 있지만 독자와 작가는 연결할 수 없습니다. 독자가 데이터베이스에 연결되어있는 동안 다른 독자는 연결할 수 있지만 작성자는 연결할 수 없습니다. " – Reid
@ Reid - 다시 읽었으며 당신이 옳다고 생각합니다. 연결된 작성자가없는 한 여러 독자 프로세스가있을 수 있습니다. 동시 판독기와 기록기를 허용하기 위해 ONOLOCK을 사용하는 것은 지원되지 않습니다. – Jeremy
- 1. 여러 변수의 프로세스 시작 및 종료 모니터링
- 2. 프로세스 여러 XSLT를 자바
- 3. Heroku에서 여러 프로세스 실행하기
- 4. Azure에서 여러 작업자 프로세스
- 5. ALSA 구성이 여러 프로세스
- 6. Ruby에서 여러 프로세스 작업하기
- 7. 여러 PHP 프로세스
- 8. 부모 프로세스 및 자식 프로세스
- 9. Android에서의 프로세스 및 작업
- 10. C# 네트워킹 여러 프로세스 발행
- 11. 여러 폼, 여러 스레드, 하나의 프로세스
- 12. 여러 node.js 프로세스 간 통신
- 13. 동일한 파일에 액세스하는 여러 프로세스
- 14. 마스터 프로세스에서 여러 프로세스 실행
- 15. 경량 및 중량 프로세스 비교
- 16. 상위 프로세스 및 하위 프로세스 관계
- 17. 프로세스 생성, 부모 닫기 및 프로세스 열림
- 18. 인 프로세스 및 아웃 프로세스 서비스의 차이점
- 19. 전역 변수, 하위 프로세스 및 상위 프로세스
- 20. IIS 및 w3wp 프로세스 수
- 21. CAsyncSocket 및 스레드/프로세스 안전
- 22. 클러스터에서 프로세스 시작 및 중지
- 23. 크롬 및 많은 프로세스 추적
- 24. 스레드, 하위 프로세스 및 좀비
- 25. 스레드 및 프로세스
- 26. AppPool 및 작업자 프로세스
- 27. 포킹 및 프로세스 관리
- 28. C++ 프로세스 및 파이프
- 29. 부모 및 자식 프로세스
- 30. Process.Start() 및 프로세스 트리
이 단락은 교토 문서에서도 나타납니다. http://fallabs.com/kyotocabinet/spex.html#tutorial – Reid