2012-07-18 13 views
5

Przeczytałem dokumentację i znalazłem bardzo niewiele informacji o wielu procesach (czytnikach i programach piszących) uzyskujących dostęp do pojedynczej bazy danych kyotocabinet. Wygląda na to, że możesz utworzyć wiele czytników, ale jeśli nie określisz ONOLOCK, wiele programów piszących zablokuje próbę otwarcia bazy danych. Czy ktoś może rzucić jakiekolwiek światło na to, jak to działa lub czy jest to możliwe? Rozumiem, że KyotoTycoon jest jedną z opcji, ale jestem ciekawa konkretnie o KyotoCabinet.KyotoCabinet i wiele procesów?

Odpowiedz

3

Znalazłem to na tokyocabinet manpage:

Tokyo Cabinet udostępnia dwa tryby połączenia z bazą danych "czytelnika" i "pisarz". Czytnik może wykonywać pobieranie, ale nie zapisywać ani usuwać. Pisarz może wykonywać wszystkie metody dostępu. Kontrola wykluczania między procesami jest wykonywana podczas łączenia się z bazą danych przez blokowanie plików. Podczas gdy scenarzysta jest podłączony do bazy danych, nie można podłączyć ani czytników, ani pisarzy. Podczas gdy czytnik jest podłączony do bazy danych, inni czytelnicy mogą się łączyć, ale pisarze nie. Zgodnie z tym mechanizmem spójność danych jest gwarantowana przy jednoczesnych połączeniach w środowisku wielozadaniowym.

Zgadnij, że to dotyczy również Kioto.

+0

Ten akapit pojawia się także w dokumentach z Kyoto. http://fallabs.com/kyotocabinet/spex.html#tutorial – Reid

1

Szafka Kyoto jest bezpieczna dla wątków, ale nie możesz mieć oddzielnych procesów czytania i pisania w tym samym czasie. Możesz mieć wiele procesów czytnika, o ile nie ma podłączonego pisarza.

Z website:

Dzielenie jednej bazy danych przez wielu procesów

Wiele procesów nie może uzyskać dostępu do jednego pliku bazy danych w tym samym czasie. Plik bazy danych jest blokowany przez blokadę czytnika-pisarza, podczas gdy proces jest połączony z nim w trybie . Zauważ, że opcja `BasicDB :: ONOLOCK 'nie powinna być używana w celu uniknięcia mechanizmu blokowania plików. Ta opcja jest przeznaczona do obejścia problemu w przypadku niektórych systemów plików, takich jak NFS, które nie obsługują mechanizmów blokowania plików obsługi w postaci .

Jeśli chcesz uzyskać wiele procesów współużytkowania jednej bazy danych, użyj zamiast niej Kyoto Tycoon. Jest to lekki serwer baz danych jako interfejs sieciowy do gabinetu Kyoto.

+0

Strona, do której prowadzi link, zawiera paragraf prawie identyczny z cytatem z innej odpowiedzi na temat Tokio: "Gabinet Kyoto udostępnia dwa tryby łączenia się z bazą danych:" czytnik "i "pisarz" ... Podczas gdy pisarz jest podłączony do bazy danych, nie można podłączyć ani czytników, ani pisarzy, podczas gdy czytnik jest podłączony do bazy danych, inni czytelnicy mogą się łączyć, ale pisarze nie mogą tego robić. " – Reid

+0

@Reid - ponownie czytam i myślę, że masz rację. Możesz mieć wiele procesów czytnika, o ile nie ma podłączonych pisarzy. Używanie trybu ONOLOCK w celu umożliwienia jednoczesnym czytnikom i pisarzowi nie jest obsługiwane. – Jeremy

Powiązane problemy