Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
* Súčasný prístup: Viaceré entity (používatelia, transakcie, procesy, vlákna) interagujú s rovnakými údajmi zhruba v rovnakom čase.
* Zdieľané údaje: Prístup k údajom sa zdieľajú medzi týmito viacerými entitami. Tieto údaje by mohli byť v databáze, súbore, pamäti alebo v akomkoľvek inom zdieľanom úložisku.
* Potenciál konfliktov: Hlavným záujmom súbežnosti je potenciál konfliktov. Tieto konflikty vznikajú, keď sa viacero entít pokúša modifikovať rovnaké údaje súčasne. To môže viesť k nekonzistentným, nesprávnym alebo nepredvídateľným výsledkom. Klasickým príkladom je problém „stratená aktualizácia“, keď jedna aktualizácia prepíše inú.
Typy mechanizmov kontroly súbežnosti:
Na riadenie a riešenie problémov súbežnosti sa používajú rôzne techniky vrátane:
* Blokovanie: Toto je bežný prístup, v ktorom entita získa zámok údajov pred prístupom k nemu, čo zabráni iným entitám v jeho upravení, až kým sa neuvoľní zámok. Existujú rôzne blokovacie mechanizmy, ako napríklad exkluzívne zámky (iba jedna entita má prístup), zdieľané zámky (viaceré entity dokážu čítať, ale nie písať) a rôzne granulaty uzamknutia (úroveň riadku, úroveň stránky, úroveň tabuľky).
* Optimistické riadenie súbežnosti (OCC): Tento prístup predpokladá, že konflikty sú zriedkavé. Entita číta údaje, vykonáva zmeny a potom kontroluje pred spáchaním zmien, či údaje boli upravené inou entitou. Ak sa zistí konflikt, transakcia sa vráti späť.
* Pessimistic Control (PCC): Tento prístup predpokladá, že konflikty sú časté. V prvom rade využíva agresívne blokovacie mechanizmy, aby zabránili konfliktom.
* verzia: Každá verzia údajov je sledovaná, čo umožňuje viacerým používateľom pracovať na rovnakých údajoch súčasne bez toho, aby sa navzájom priamo zasahovali. Konflikty sa vyriešia zlúčením alebo výberom príslušnej verzie.
* Timestamping: Každej transakcii je priradená časová pečiatka a systém zaisťuje, že transakcie sa spracúvajú v poradí časovej pečiatky, čím sa bráni konfliktom.
Dôsledky zlej kontroly súbežnosti:
* Dáta nekonzistentnosť: Údaje sa z dôvodu konfliktných aktualizácií poškodia alebo nespoľahlivé.
* stratené aktualizácie: Jedna aktualizácia prepíše ďalšiu, čo vedie k strate údajov.
* špinavé čítanie: Transakcia číta údaje, ktoré boli upravené inou transakciou, ale ešte sa nezaviazali.
* Neprepakovateľné čítania: Transakcia číta rovnaké údaje viackrát, ale údaje sa zmenili inou transakciou medzi čítaním.
* Phantom znie: Transakcia vykonáva dotaz dvakrát a druhý dotaz vráti ďalšie riadky, ktoré boli pridané ďalšou transakciou medzi týmito dvoma dopytmi.
Stručne povedané, súbežnosť údajov je kritickým aspektom vývoja softvéru, najmä v systémoch s viacerými používateľmi alebo procesmi prístup k zdieľaným zdrojom. Implementácia správnych mechanizmov riadenia súbežnosti je nevyhnutná na zabezpečenie integrity údajov a spoľahlivosti aplikácií.