Co je transakční paměť?
V softwaru je schéma transakční paměti postup pro vícevláknové programování, které používá transakce, které jsou podobné transakcím, které databáze používá. Pokud se dva nebo více podprocesů pokusí o přístup ke stejným datům současně, může mnoho různých nežádoucích situací vyústit v případy, kdy výsledek programu závisí na pořadí přístupu podprocesů. Obvykle je požadován jeden řád a v multithreadingu jsou zámky převládajícím a nejjednodušším způsobem, jak zajistit, aby přístup ke konkrétnímu zdroji měl vždy pouze jeden podproces.
Tento přístup k transakční paměti obsahuje více problémů, pokud jde o zámky v multithreadingu. Zámek se může stát trvalým, pokud dojde k nějaké neočekávané chybě a zámky mohou způsobit nepředvídatelné problémy se souběžností, jako je zablokování nebo inverze priority. V důsledku toho, že zámky jsou velmi jemné, další problém zahrnuje kód, který nakonec skončí trávením většiny času mezi zamykáním, přepínáním kontextu a odemykáním. To je zásadní problém, protože to může vést k tomu, že kód stráví na těchto akcích více času než na jiné důležité práci v programu. Naproti tomu hrubozrnné zámky mohou způsobit snížený výkon zpracování a sníženou souběžnost.
Problémy v transakční paměti jsou řešeny pokročilými zámky, včetně „blokování zámku“ z C #, zámků čtení a zápisu, bariér proti zápisu atd. Jednou z hlavních priorit s ohledem na transakční paměť je neexistence zámků a zbytečná doba zpracování zámku. . Obvykle je dohodnuto, že sdílená datová struktura je bez zámků, pokud její operace nevyžadují vzájemné vyloučení. Datové struktury, které jsou sdílené a bez zámků, se vyhýbají běžně spojeným problémům se standardními technikami zamykání, pokud jsou v systémech, které jsou vysoce souběžné.
Model soudržnosti a konzistence transakční paměti (TCC) je nový, navrhovaný model sdílené paměti. Podle modelu jsou atomové transakce vždy základními jednotkami následujících: paralelní práce, koherence paměti, komunikace a konzistence referencí paměti. Model TCC také zjednodušuje paralelní software tím, že eliminuje synchronizaci, která používá standardní zámky nebo semafory. Prostřednictvím hardwaru TCC také kombinuje každý zápis z každé oblasti výskytu transakce do jednoho paketu, aby atomově vysílal paket do trvale sdíleného stavu paměti. Kromě zjednodušeného hardwaru koherence to znamená, že je třeba také snížit počet zpráv s nízkou dormancí a úplné odstranění určitých standardních protokolů o koherenci.