distributed lock manager
Megjelenés
Főnév
distributed lock manager (tsz. distributed lock managers)
- (informatika) A Distributed Lock Manager (röviden: DLM) egy elosztott rendszer komponense, amely biztosítja, hogy több csomópont vagy folyamat ne férhessen egyszerre ugyanahhoz az erőforráshoz – azaz szinkronizációt és kölcsönös kizárást (mutual exclusion) valósít meg elosztott környezetben.
🧠 Mi a DLM célja?
A DLM zárolási (locking) szolgáltatást nyújt több gép vagy folyamat számára. A célja az, hogy:
- megakadályozza az adatversenyt (race condition),
- biztosítsa az adatkonzisztenciát,
- kezelje a konfliktusokat, ha több entitás akar hozzáférni ugyanahhoz az erőforráshoz (fájl, rekord, memória, stb.).
🏗️ Hogyan működik?
- Egy csomópont kérést küld a DLM-nek egy zárolásra (lock acquire).
- A DLM:
- ha az erőforrás szabad → kiadja a zárolást,
- ha nem → a kérés várólistára kerül vagy hibát ad vissza.
- A csomópont felszabadítja a zárolást (unlock), ha végzett.
- A DLM értesíti a következő várakozó klienst.
🔒 Zárolások típusai
- Exkluzív zárolás (exclusive lock): csak egy folyamat férhet hozzá.
- Megosztott zárolás (shared lock): többen is olvashatják, de nem módosíthatják.
- Olvasási/zárási prioritások (read/write lock): pl. írás letiltja az olvasást is.
- Intézményes zárolás (advisory vs mandatory): tanácsadó (választható) vagy kötelező érvényű.
🖥️ Hol használják?
✅ Valódi példák:
| Rendszer / Technológia | Használat |
|---|---|
| Oracle RAC | Oracle Real Application Clusters többcsomópontos adatbázisban. |
| GFS (Google File System) | Fájl-hozzáférések szinkronizálása. |
| Linux DLM (dlm-kernel) | Klaszteres fájlrendszerekhez (pl. GFS2, OCFS2). |
| Zookeeper | Koordinációs szolgáltatás DLM-re építhetően. |
| etcd, Consul | Modern mikroszolgáltatásokhoz való zárolás/vezetőválasztás. |
📚 Kapcsolódó fogalmak
| Fogalom | Leírás |
|---|---|
| Leader election | Egy csomópont kiválasztása koordinátornak – gyakran DLM-re épül. |
| Consensus algorithm | (pl. Raft, Paxos) – biztosítja, hogy minden csomópont ugyanazt lássa. |
| Distributed mutex | Egy zár, amely több gépen működik úgy, mintha lokális lenne. |
| Deadlock detection | Elkerülés vagy felismerés, ha két folyamat egymásra vár. |
⚠️ Kihívások elosztott zárolásban
- Hibák tolerálása: ha a lock tulajdonosa elhal, mi történik?
- Latency / hálózati késleltetés → teljesítmény romlik.
- Deadlock / livelock lehetősége.
- Órahiány: nincs globális óra → lock time-out kezelés nehéz.
🛠️ Példakód: Redis-alapú elosztott zárolás (Redlock)
import redis
import time
r = redis.StrictRedis()
lock_key = "my_lock"
lock_acquired = r.set(lock_key, "locked", nx=True, ex=10) # nx: csak ha nem létezik
if lock_acquired:
print("Lock acquired!")
# kritikus szakasz
time.sleep(5)
r.delete(lock_key)
else:
print("Already locked.")
✅ Összegzés
| Tulajdonság | Érték |
|---|---|
| 📌 Fogalom | Distributed Lock Manager (DLM) |
| 🎯 Funkció | Több csomópont közötti szinkronizáció és erőforrás-hozzáférés szabályozása |
| 🧠 Használat | Adatbázisok, klaszterek, fájlrendszerek, mikroszolgáltatások |
| ⚠️ Kihívások | Hibatűrés, deadlock, késleltetés, skálázás |
| 🛡️ Alternatívák | Zookeeper locks, Redis Redlock, etcd lease |
- distributed lock manager - Szótár.net (en-hu)
- distributed lock manager - Sztaki (en-hu)
- distributed lock manager - Merriam–Webster
- distributed lock manager - Cambridge
- distributed lock manager - WordNet
- distributed lock manager - Яндекс (en-ru)
- distributed lock manager - Google (en-hu)
- distributed lock manager - Wikidata
- distributed lock manager - Wikipédia (angol)