Luku disain
Kuula luku rakendamise ideed: 1. Alusta kataloogi loomisega lukuna (znode), mida tavaliselt kasutatakse lukustatud üksuse kirjeldamiseks, mida nimetatakse :/lock_node 2. Klient, kes soovib lukku saada, loob lukukataloogis znode'i kui luku/lock_node lapsesõlme ning sõlme tüüp on Ordered Temporary Node (EPHEMERAL_SEQUENTIAL); Näiteks kaks klienti loovad znode, /lock_node/lock-1 ja /lock_node/lock-2 3. Praegune klient kutsub getChildren(/lock_node), et saada kõik lukukataloogi laps-sõlmed ilma watch'i seadistamata, ning seejärel hankida vennasõlmed, mis on temast väiksemad (loodud teises sammus). 4. Sõlm, mis on 3. sammus temast väiksem, ei eksisteeri && väikseim sõlm on sama, mis 2. sammus loodud, mis näitab, et praegune kliendi järjestusnumber on väikseim, võta lukustus ja lõpp. 5. Klient jälgib korrapärase ajutise sõlme olekut, mis on temast järgmine väikseim 6. Kui jälgitava alam-sõlme staatus muutub, hüppa sammu 3 juurde ja jätka järeltegevusi kuni lukustusvõistlusest väljumiseni.
Autor ei tutvusta siin jaotuslukku, vaatame kogu koodidisaini voosskeemi järgmiselt
|