Låsedesign
Få idéen til låsimplementering: 1. Start med at oprette en mappe som en lås (znode), som normalt bruges til at beskrive den låste entitet, kaldet :/lock_node 2. Klienten, der ønsker at opnå låsen, opretter en znode i låsemappen som en børnenode til låsen/lock_node, og nodetypen er Ordered Temporary Node (EPHEMERAL_SEQUENTIAL); For eksempel opretter to klienter znoder, /lock_node/lock-1 og /lock_node/lock-2 3. Den nuværende klient kalder getChildren(/lock_node) for at hente alle børnenoder i låsemappen uden at sætte watch, og derefter hente de bror-noder, der er mindre end den selv (oprettet i trin 2). 4. Noden, der er mindre end sig selv i trin 3, eksisterer ikke & den mindste node er den samme som den, der blev oprettet i trin 2, hvilket indikerer, at det nuværende klient-sekvensnummer er det mindste, få låsen og afslutt. 5. Klienten overvåger tilstanden af den ordnede midlertidige node, der er den næstmindste efter sig selv 6. Hvis status for den overvågede undernode ændres, spring til trin 3 og fortsæt opfølgende operationer, indtil låsekapløbet er afsluttet.
Forfatteren vil ikke introducere distributionslåsen her, lad os se på flowchartet for hele kodedesignet som følger
|