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
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.
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.
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
@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
- 1. SQLite3 i wiele procesów
- 2. Wiele powtarzających się procesów
- 3. Wiele procesów chromowania po chromedriver.quit()
- 4. Problem rozwidlania fork() wiele procesów Unix
- 5. Jak uruchomić wiele procesów/wątków/frontendów Tornado?
- 6. COM z serwera procesów uruchamia wiele instancji
- 7. Linux: Jak znaleźć listę procesów demonów i procesów zombie
- 8. Wiele procesów uruchamiających jądra CUDA równolegle
- 9. Ile procesów i wątków zostanie utworzonych?
- 10. Intellij IDEA tworzy wiele procesów dla każdej sesji debugowania?
- 11. Czy wiele procesów JVM może współużytkować pamięć dla wspólnych klas?
- 12. Jak opublikować wiele aplikacji/procesów za pomocą jednego wdrożenia clickonce?
- 13. Htop pokazujący wiele procesów Java z różnymi pids
- 14. kolejka procesów perla
- 15. Tarło i czeka procesów potomnych w Pythonie
- 16. Czy identyfikatory wątków i procesów są unikatowe?
- 17. Android Studio: aapt.exe tworzy zbyt wiele procesów i sprawia, że Android Studio jest bardzo wolny
- 18. Wzorce dla wielu procesów PHP?
- 19. Lista wszystkich procesów i ich bieżącej pamięci i zużycia procesora?
- 20. Rozwidlenia PHP i wiele sygnałów potomnych
- 21. Wywołania procesów asynchronicznych
- 22. monitor procesów potomnych procesu
- 23. jak zdobyć listę procesów
- 24. Foreman nie zabija procesów
- 25. pliki wielu procesów
- 26. .NET Zautomatyzowane testowanie długich procesów
- 27. ThreadPool procesów CLI
- 28. Wykrywanie spawdzonych procesów C#
- 29. fork() i STDOUT/STDERR na konsolę z procesów potomnych
- 30. Maksymalna liczba procesów zarejestrowanych globalnie
Ten akapit pojawia się także w dokumentach z Kyoto. http://fallabs.com/kyotocabinet/spex.html#tutorial – Reid