Kaj je transakcijski pomnilnik?

V programski opremi je shema transakcijskega pomnilnika potek delovanja za večnitno programiranje, ki uporablja transakcije, ki so zelo podobne tistim, ki jih uporablja baza podatkov. Ko poskušata dve ali več niti hkrati dostopati do istih podatkov, lahko pride do številnih različnih nezaželenih situacij v primerih, ko je izid programa odvisen od vrstnega reda dostopa do niti. Običajno je zaželen en vrstni red, pri večnitnosti pa so ključavnice prevladujoči in najpreprostejši način za zagotovitev, da ima samo ena nit dostop do določenega vira naenkrat.

Ta pristop k transakcijskemu pomnilniku vsebuje številne težave v zvezi z zaklepanjem pri večnitnem. Zaklepanje lahko postane trajno, če pride do neke vrste nepričakovane napake, zaklepanje pa lahko povzroči nepredvidljive težave s sočasnostjo, kot sta zastoj ali inverzija prioritet. Zaradi tega, da so ključavnice zelo drobne, druga težava vključuje kodo, ki sčasoma porabi večino časa med zaklepanjem, preklopom konteksta in odklepanjem. To je ključna težava, saj lahko povzroči, da koda porabi več časa za ta dejanja kot za opravljanje drugega, pomembnega dela v programu. Nasprotno pa lahko grobozrnate ključavnice povzročijo zmanjšano zmogljivost obdelave in zmanjšano sočasnost.

Težave v transakcijskem pomnilniku se rešujejo z naprednimi ključavnicami, vključno z “blokom zaklepanja” iz C#, branjem-pisalnimi ključavnicami, ovirami pri zapisovanju itd. Ena od glavnih prednostnih nalog v zvezi s transakcijskim pomnilnikom je brez ključavnic in brez nepotrebnega časa obdelave zaklepanja. . Običajno je dogovorjeno, da je podatkovna struktura, ki je v skupni rabi, brez ključavnic, če njene operacije ne zahtevajo medsebojne izključitve. Podatkovne strukture, ki so v skupni rabi in brez ključavnic, se izognejo pogosto povezanim težavam s standardnimi tehnikami zaklepanja, če so v sistemih, ki so zelo hkratni.

Model skladnosti in doslednosti transakcijskega pomnilnika (TCC) je nov, predlagan model skupnega pomnilnika. V skladu z modelom so atomske transakcije vedno osnovne enote naslednjega: vzporedno delo, skladnost spomina, komunikacija in doslednost spominske reference. Model TCC prav tako poenostavlja vzporedno programsko opremo z odpravo sinhronizacije, ki uporablja standardne ključavnice ali semafore. S pomočjo strojne opreme TCC združuje tudi vsak zapis iz vsake regije pojavljanja transakcije v en paket za atomsko oddajanje paketa v stanje pomnilnika, ki je trajno v skupni rabi. Poleg poenostavljene strojne opreme za skladnost to pomeni, da je potrebno zmanjšati število sporočil z nizkim mirovanjem in popolno odpravo nekaterih standardnih skladnih protokolov.