Skip to main content

Co to jest pamięć transakcyjna?

W oprogramowaniu schemat pamięci transakcyjnej jest kierunkiem działania dla programowania wielowy, który wykorzystuje transakcje, które są podobne do tych, których używa baza danych.Gdy dwa lub więcej wątków próbują uzyskać dostęp do tych samych danych, wiele różnych niepożądanych sytuacji może skutkować przypadkami, w których wynik programu zależy od kolejności dostępu do wątków.Zwykle jedno zamówienie jest pożądane, a podczas wielowy, zamki są głównym i najprostszym sposobem, aby zapewnić, że tylko jeden wątek ma dostęp do określonego zasobu..Blokada może stać się trwała, jeśli wystąpi jakiś nieoczekiwany błąd, a zamki mogą wprowadzić nieprzewidywalne problemy z współbieżnością, takie jak inwersja zakleszcza lub priorytetowa.W wyniku bardzo drobnoziarnistych zamków, kolejny problem obejmuje ostatecznie kod spędzony większość czasu między blokowaniem, zmianą kontekstu i odblokowaniem.Jest to kluczowy problem, ponieważ może spowodować, że kod spędza więcej czasu na tych działaniach niż na wykonanie innych, ważnych prac w programie.Natomiast gruboziarniste zamki mogą powodować zmniejszoną wydajność przetwarzania i zmniejszoną współbieżność.

Problemy w pamięci transakcyjnej są rozwiązywane przez zaawansowane zamki, w tym „blokowanie blokady” z C#, blokady odczytu, bariery zapisu itp.Główne priorytety w odniesieniu do pamięci transakcyjnej jest brak blokad i niepotrzebnego czasu przetwarzania blokady.Zwykle uzgodnia się, że udostępniona struktura danych jest wolna od zamków, jeśli jego operacje nie jest wymagane wzajemne wykluczenie.Struktury danych, które są udostępniane i wolne od zamków, unikają powszechnie powiązanych problemów ze standardowymi technikami blokowania, jeśli są one w systemach wysoce równoczesnych.

Model spójności pamięci transakcyjnej i spójności (TCC) jest nowym, proponowanym modelem pamięci współdzielonej.Zgodnie z modelem transakcje atomowe są niezmiennie podstawowymi jednostkami następujących: Prace równoległe, spójność pamięci, komunikacja i spójność odniesienia pamięci.Model TCC jest również prostszy oprogramowanie równoległe poprzez wyeliminowanie synchronizacji, która wykorzystuje blokady standardów lub semafory.Za pośrednictwem sprzętu TCC łączy również każdy zapis z każdego regionu wystąpienia transakcji w jeden pakiet, aby atomicznie nadać pakiet do stanu pamięci, który jest na stałe udostępniany.Oprócz uproszczonego sprzętu do koherencji oznacza to, że potrzebne jest zmniejszenie komunikatów o niskim poziomie i całkowitą eliminację pewnych standardowych protokołów koherencyjnych.