Udostępnij przez


Warunki przetwarzania transakcji

Przed rozpoczęciem korzystania z KTM należy znać definicje następujących terminów: transakcja, menedżer zasobów, klient transakcyjny, menedżer transakcji, strumień dziennika, rejestracja i system przetwarzania transakcji.

transakcja
Transakcja jest kolekcją operacji danych. Wszystkie operacje muszą zakończyć się pomyślnie, aby transakcja powiodła się. Jeśli wszystkie operacje kończą się powodzeniem, transakcja może zostać zatwierdzona (oznacza to, że jej wyniki mogą być stałe i publiczne). Jeśli jakakolwiek operacja zakończy się niepowodzeniem, transakcja musi zostać wycofana (oznacza to, że wszystkie zmiany muszą zostać usunięte, aby dane znajdowały się w tym samym stanie, w jakim znajdowały się przed rozpoczęciem operacji transakcji).

Operacje transakcji są atomowe, spójne, izolowane i trwałe (ACID).

  • Są one atomowe, ponieważ muszą zostać zatwierdzone lub wycofane jako całość.

  • Są one spójne, ponieważ operacje zawsze generują dokładny wynik, niezależnie od tego, czy zostały zatwierdzone, czy wycofane.

  • Są one izolowane, ponieważ wyniki każdej transakcji nie są widoczne dla innych transakcji, dopóki operacje transakcji nie zostaną zatwierdzone lub wycofane.

  • Są trwałe, ponieważ po zatwierdzeniu lub wycofaniu operacji transakcji wyniki operacji są trwałe.

Przykładem transakcji jest zestaw operacji, które należy wykonać podczas korzystania z automatycznego bankomatu (ATM), aby przenieść pieniądze z konta kontrolnego na konto oszczędnościowe. Debet z rachunku bieżącego i przelanie środków na konto oszczędnościowe powinno być widoczne jako jedna, niepodzielna operacja.

Operacja, która jest częścią transakcji, jest również nazywana operacją transakcji.

resource manager
Menedżer zasobów to składnik oprogramowania, który zarządza zasobami danych, które mogą być aktualizowane przez operacje transakcyjne. Jeśli na przykład projektujesz system bazy danych, możesz udostępnić menedżera zasobów, który przechowuje i pobiera dane bazy danych. Prosty system przetwarzania transakcji (TPS) może mieć tylko jednego menedżera zasobów.

Menedżer zasobów zazwyczaj udostępnia również publiczny interfejs, który klienci transakcyjni mogą wywoływać w celu uzyskania dostępu do danych menedżera zasobów. Na przykład menedżer zasobów dla bazy danych może udostępnić zestaw funkcji, które klienci mogą wywoływać w celu odczytu i zapisu w bazie danych.

Bardziej złożony moduł TPS może mieć wiele menedżerów zasobów, z których każdy zarządza oddzielną bazą danych lub innym zasobem podczas uczestnictwa w transakcjach systemu.

Aby uzyskać więcej informacji na temat menedżerów zasobów, zobacz Tworzenie usługi Resource Manager.

W niektórych przypadkach jeden menedżer zasobów jest lepszy od innych menedżerów zasobów i może inicjować operacje zatwierdzania. W KTM takie menedżery zasobów są nazywane lepszymi menedżerami transakcji.

klient transakcyjny
Klient transakcyjny to składnik oprogramowania, który uzyskuje dostęp do bazy danych obsługiwanej przez menedżera zasobów, zazwyczaj przez wywoływanie funkcji eksportowanych przez menedżera zasobów. Klient jest odpowiedzialny za tworzenie transakcji, wykonywanie zestawu operacji, które obsługuje menedżer zasobów, a następnie informowanie menedżera transakcji (KTM), że transakcja powinna zostać zatwierdzona lub wycofana.

Aby uzyskać więcej informacji na temat klientów transakcyjnych, zobacz Tworzenie klienta transakcyjnego.

menedżer transakcji
Menedżer transakcji, taki jak KTM, zapewnia infrastrukturę, która umożliwia klientom transakcyjnym i menedżerom zasobów komunikowanie się ze sobą. Śledzi również stan każdej transakcji (ale nie dane obsługiwane przez klientów i menedżerów zasobów).

Menedżer transakcji może również koordynować operacje odzyskiwania po awarii systemu.

Menedżer transakcji nie zna danych ani operacji tworzących transakcję. Dane i operacje są kontrolowane przez klientów i menedżerów zasobów.

KTM udostępnia funkcje, które mogą wywoływać klienci dokonujący transakcji. Te funkcje umożliwiają klientom tworzenie, zatwierdzanie i wycofywanie transakcji.

KTM udostępnia również funkcje, które menedżerowie zasobów mogą wywoływać. Dzięki tym funkcjom menedżerowie zasobów mogą zarejestrować się w transakcjach, aby mogli otrzymywać powiadomienia o transakcjach. Po zarejestrowaniu menedżera zasobów w transakcji może on otrzymywać powiadomienie, gdy klient transakcyjny jest gotowy do zatwierdzenia lub wycofania transakcji lub gdy nastąpi operacja odzyskiwania.

strumień logów
Strumień dziennika to zarejestrowana historia zdarzeń dotyczących transakcji. KTM utrzymuje strumień dziennika przy użyciu wspólnego systemu plików dziennika (CLFS). KTM rejestruje zmiany stanu dla każdej transakcji, dzięki czemu może obsługiwać operacje wycofywania i odzyskiwania, gdy są one niezbędne.

Menedżerowie zasobów muszą również używać strumienia dziennika do rejestrowania danych i operacji.

Operacja wycofywania wymaga, aby KTM i menedżerowie zasobów przywrócili transakcję oraz wszystkie dane do stanu początkowego. KTM i menedżerowie zasobów rejestrują początkowy stan każdej transakcji w strumieniach dzienników, aby móc go pobrać podczas operacji wycofywania.

Operacje odzyskiwania są wykonywane po awarii systemu. Po ponownym uruchomieniu systemu operacyjnego menedżerowie KTM i menedżerowie zasobów mogą użyć zawartości strumienia dziennika, aby ponownie skompilować stan transakcji do stanu, w jaki wystąpił przed awarią.

Aby uzyskać więcej informacji na temat strumieni dzienników w usłudze KTM, zobacz Using Log Streams with KTM (Używanie strumieni dzienników z KTM).

Rejestracji
Zobowiązanie jest skojarzeniem między menedżerem zasobów a transakcją. KTM udostępnia zestaw funkcji, które wywołują menedżerowie zasobów w celu tworzenia i zarządzania zapisami. Po utworzeniu rejestracji przez menedżera zasobów usługa KTM wysyła powiadomienia do menedżera zasobów, gdy stan transakcji ulegnie zmianie.

system przetwarzania transakcji
System przetwarzania transakcji (TPS) jest kolekcją menedżera transakcji, co najmniej jednego menedżera zasobów, co najmniej jednego strumienia dziennika i co najmniej jednego klienta transakcyjnego, który uzyskuje dostęp do zasobów menedżerów zasobów.