Какие условия вызывают блокировку Кабинета министров Токио

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


person viraptor    schedule 17.11.2009    source источник
comment
Является ли токийский кабинет двухпартийным?   -  person Michael Myers    schedule 18.11.2009


Ответы (1)


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

Tokyo Cabinet предоставляет два режима подключения к базе данных: «чтение» и «запись». Читатель может выполнять извлечение, но не может сохранять или удалять. Писатель может выполнять все методы доступа. Контроль исключений между процессами осуществляется при подключении к БД путем блокировки файлов. Пока модуль записи подключен к базе данных, ни читатели, ни писатели не могут быть подключены. Пока модуль чтения подключен к базе данных, другие читатели могут подключаться, а писатели – нет. Согласно этому механизму согласованность данных гарантируется при одновременных подключениях в многозадачной среде.

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

person Denis Otkidach    schedule 18.11.2009