Какие условия заставляют Токийский Кабинет блокировать - PullRequest
2 голосов
/ 18 ноября 2009

Я использую Tokyo Cabinet с модулем tc в python. Я храню свои данные в формате TDB. Я ожидал, что таблица будет блокироваться только на время записи. К сожалению, я вижу, что когда файл открывается в «режиме записи», другие процессы не могут читать из него. Это стандартное поведение, проблема с обёртками или я что-то не так делаю? Или, может быть, есть другие случаи, когда операции заблокированы?

1 Ответ

4 голосов
/ 18 ноября 2009

Согласно спецификации :

Токийский кабинет предоставляет два режима подключиться к базе данных: «читатель» и «Писатель». Читатель может выполнить извлечение, но ни хранение, ни удаление. Писатель может исполнить все методы доступа. Исключение контроля между процессами выполняется, когда подключение к базе данных по файлу замок. Пока писатель подключен к базе данных, ни читатели, ни писатели могут быть связаны. В то время как читатель подключен к базе данных, другие читатели можно подключить, но писатели не могут. Согласно этому Механизм, согласованность данных гарантировано с одновременным соединения в многозадачности окружающая среда.

Вы можете либо создать и закрыть средство записи для каждой операции записи, либо использовать Tokyo Tyrant для обеспечения одновременного доступа.

...