2014-11-24 2 views
7

Есть ли какие-либо средства в рецептах блокировки Apache Curator (или более низкий уровень ZooKeeper) для автоблокировки замков, которые превысили некоторые TTL? Если нет, есть ли лучший способ справиться с этим? Я вижу, что куратор автоматически освобождает блокировки в случае потери клиентского соединения, что хорошо ... и тайм-аут при захвате блокировки также полезен.Apache Zookeeper/время куратора на замки

Мне интересно, в какой степени я должен защищать свою систему, выполняя повторяющуюся работу, которая ищет блокировки, которые были вокруг долго и вручную освобождают их. Могу ли я сделать это, выполнив отдельный процесс напрямую, чтобы удалить соответствующий ZNode?

ответ

7

Замки куратора реализованы с использованием EPHEMERAL знодов. Таким образом, если держатель замка каким-то образом становится нестабильным, ZooKeeper должен автоматически освободить блокировку. Если вы ищете способ аннулирования блокировок, хранящихся в других процессах, некоторые рецепты блокировки куратора имеют механизм коллективного отзыва. Помимо этого, удаление блокировки из-под процесса похоже на то, что это вызовет огромную нестабильность. Я не могу придумать вескую причину.

(примечание: я главный автор Куратор)

+0

Спасибо за ответ! Надеюсь, вы это увидите, и я оценил ваши другие SO-репсоны. Определенно известно о автоматическом обращении с клиентом ZK, который теряет свое соединение, и кооперативным отзывом. Возможно, я слишком параноик, но я использую ZK/куратор в качестве детали реализации библиотеки, которая распределяет блокировку. Никакой контроль над кодом, который выполняется во время блокировки. Я полагаю, что я могу абстрагироваться от аннулирования сотрудничества и, следовательно, иметь способ борьбы с неправильным кодом клиента. Спасибо за ответ. –

3

FYI - это 2 года спустя. Я написал и принял TTL-узлы для ZooKeeper (который, конечно же, Куратор будет поддерживать). Сейчас он находится в мастерской и будет в будущем выпуске ZooKeeper и куратора.

https://issues.apache.org/jira/browse/ZOOKEEPER-2169

 Смежные вопросы

  • Нет связанных вопросов^_^