2014-11-24 1 views
7

Apache 큐레이터 잠금 레시피 (또는 하위 수준 ZooKeeper)에 일부 TTL을 초과하는 자동 해제 잠금을위한 기능이 있습니까? 그렇지 않다면, 그것을 다루는 가장 좋은 방법이 있습니까? 큐레이터가 클라이언트 연결이 끊어지는 경우 자동으로 잠금을 해제하는 것을 볼 수 있습니다. 이는 잠금 획득에 대한 시간 초과 또한 도움이됩니다.Apache Zookeeper/큐레이터 생존 시간 잠금

오래 전부터 있었던 잠금을 찾아 수동으로 해제하여 반복적 인 작업을 수행하여 시스템을 보호해야 할 필요가 있는지 궁금합니다. 별도의 프로세스로 관련 ZNode를 직접 삭제하면됩니까?

답변

7

큐레이터 잠금은 EPHEMERAL znodes를 사용하여 구현됩니다. 따라서 잠금 장치 홀더가 어떤 식 으로든 불안정 해지면 ZooKeeper가 자동으로 잠금 장치를 해제해야합니다. 다른 프로세스가 보유한 잠금을 취소하는 방법을 찾고 있다면 큐레이터의 잠금 레시피 중 일부는 협업 취소 기능을 가지고 있습니다. 그 외에도 프로세스 아래에서 잠금을 삭제하면 엄청난 불안정성이 발생할 것처럼 보입니다. 나는 그것을 할 좋은 이유를 생각할 수 없다.

: -이 2 년 후입니다

+0

답장을 보내 주셔서 감사합니다. 당신이 이것을 볼 수 있기를 바라고 있었고 당신의 다른 인사들에게 감사 드렸습니다. 연결이 끊어진 ZK 클라이언트의 자동 처리와 협업 취소 문제를 확실히 알고 있습니다. 어쩌면 나는 너무 편집증 적이지만 분산 잠금을 수행하는 라이브러리의 구현 세부 사항으로 ZK/큐레이터를 사용하고 있습니다. 잠금이 유지되는 동안 실행되는 코드를 제어하지 않습니다. 협동 취소면을 추상화 할 수 있기 때문에 오작동하는 클라이언트 코드를 처리 할 수있는 방법이 있습니다. 답장을 보내 주셔서 감사합니다. –

3

FYI (주 나는 큐레이터의 주요 저자 해요). 필자는 ZooKeeper (큐레이터가 지원할 TTL 노드)를 작성하여 받아 들였습니다. 이제 마스터가되었으며 앞으로 ZooKeeper와 큐레이터가 출시 될 예정입니다.

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