2014-11-24 13 views
7

Esiste qualche possibilità nelle ricette di blocco di Apache Curator (o ZooKeeper di livello inferiore) per i blocchi di rilascio automatico che hanno superato alcuni TTL? In caso contrario, c'è una buona pratica per affrontarlo? Vedo che il curatore rilascia automaticamente dei blocchi nel caso in cui la connessione del client vada persa, il che è bello ... e anche il timeout sull'acquisizione del blocco è utile.Apache Zookeeper/Curator time-to-live sulle serrature

Mi chiedo in che misura ho bisogno di proteggere il mio sistema facendo un lavoro ricorrente che cerca serrature che sono state intorno a lungo e manualmente rilasciandole. Lo farei facendo in modo che il mio processo separato cancelli direttamente il ZNode rilevante?

risposta

7

I blocchi del curatore vengono implementati utilizzando zenodi EPHEMERAL. Quindi, se il portaschede diventa instabile in qualche modo, ZooKeeper dovrebbe rilasciare automaticamente il lucchetto. Se stai cercando un modo per revocare i blocchi tenuti da altri processi, alcune delle ricette di blocco di Curator hanno una funzione di revoca cooperativa. A parte questo, l'eliminazione di un blocco da sotto un processo sembra causare un'instabile instabilità. Non riesco a pensare a una buona ragione per farlo.

(nota: io sono l'autore principale del curatore)

+0

Grazie per la risposta! Speravo che avresti visto questo e ho apprezzato i tuoi altri reporter di SO. Sicuramente consapevole della gestione automatica di un client ZK che perde la connessione e la revoca della cooperativa. Forse sono troppo paranoico, ma sto usando ZK/Curator come dettaglio di implementazione di una libreria che esegue il locking lock. Nessun controllo sul codice che viene eseguito mentre si tiene un blocco. Suppongo di poter astrarre l'aspetto della revoca cooperativa e quindi di avere un modo di trattare il codice del client sbagliato. Grazie per la risposta. –

Problemi correlati