Chord systém
-
= Distribuovaná hashovací tabulka
-
Chord systém se používá pro organizaci a vyhledávání informací v distribuovaných systémech.
-
Navržen tak, aby poskytoval efektivní a spolehlivé řešení pro distribuované uchovávání a vyhledávání klíčů v síti.
-
Původně navržen pro peer-to-peer sítě, ale jeho koncepty jsou aplikovatelné i na jiné typy DS.
-
Chord vytváří kruhovou strukturu, kde každý uzel (node) v síti má přiřazen jedinečný identifikátor (klíč).
-
Uzly jsou uspořádány do kruhu podle hodnot jejich identifikátorů. Identifikátor má bitů (obvykle nebo ) a celkově je poté v uzlů.
-
Uzel s klíčem je spravován uzlem s klíčem , kde , tento uzel se nazývá
succ(k)
(successor) -
Hlavní úkol je pro efektivně najít
succ(k)
.
Řešení:
- Každý uzel má Finger Table (FT) obsahující záznamů ().
- Záznamy v tabulce pro uzel vypočítáme následovně:
- Poté uzel předá dotaz na klíč k uzlu na indexu následovně:
- pokud , pak (je menší než první záznam v tabulce)
- pokud , pak (je větší než všechny záznamy v tabulce)
Přidání uzlu do chord systému
- Proces, který zahrnuje aktualizaci struktury kruhu a redistribuci odpovědnosti za klíče tak, aby nový uzel byl začleněn do sítě.
Postup:
- Nový uzel , který se chystá připojit k síti, vygeneruje svůj jedinečný identifikátor (klíč).
- Nový uzel musí najít svého “souseda” v kruhu Chord. tj.
succ(p+1)
. Často provedeno pomocí vyhledávacího dotazu.- Každý uzel si drží aktualizovanou FT:
- ví, že první záznam odkazuje na následující uzel v kruhu.
- Každý uzel pravidelně ověřuje podmínku:
- Pokud je nepravdivá, pak , je třeba nastavit (také je třeba ověřit, že ).
- Musím opravit zbytek ( musí najít , )
Smazání (výpadek, havárie) uzlu
- Každý uzel testuje, zde je naživu.
- Pokud aktualizuje spojení na dalšího souseda v kruhu a zjistí, že není nastaven, pak .