Termini di elaborazione delle transazioni
Prima di iniziare a usare KTM, è necessario conoscere le definizioni dei termini seguenti: transazione, resource manager, client transazionale, gestione transazioni, flusso di log, inserimento e sistema di elaborazione delle transazioni.
Transazione
Una transazione è una raccolta di operazioni sui dati. Tutte le operazioni devono avere esito positivo per la transazione. Se tutte le operazioni hanno esito positivo, è possibile eseguire il commit della transazione, ovvero i risultati possono essere resi permanenti e pubblici. Se un'operazione ha esito negativo, è necessario eseguire il rollback della transazione, ovvero tutte le modifiche devono essere rimosse in modo che i dati si trovano nello stesso stato in cui è stato eseguito prima dell'avvio delle operazioni della transazione.
Le operazioni di una transazione sono atomiche, coerenti, isolate e durevoli (ACID).
Sono atomici perché devono essere sottoposti a commit o rollback nel suo complesso.
Sono coerenti perché le operazioni producono sempre un risultato accurato, indipendentemente dal commit o dal rollback.
Sono isolati perché i risultati di ogni transazione non sono visibili ad altre transazioni fino al commit o al rollback delle operazioni della transazione.
Sono durevoli perché, dopo il commit o il rollback delle operazioni della transazione, i risultati delle operazioni sono permanenti.
Un esempio di transazione è il set di operazioni che devono essere eseguite quando si usa un computer di distinzione automatico (ATM) per trasferire denaro dal conto di controllo al conto di risparmio. Il debito dal conto di controllo e il credito per il conto di risparmio devono essere un'unica operazione atomica.
Un'operazione che fa parte di una transazione è nota anche come operazione transazionale.
resource manager
Un resource manager è un componente software che gestisce le risorse dati che possono essere aggiornate dalle operazioni transazionate. Ad esempio, se si progetta un sistema di database, è possibile fornire un gestore risorse che archivia e recupera i dati del database. Un semplice sistema di elaborazione delle transazioni (TPS) potrebbe avere un solo resource manager.
Un resource manager fornisce in genere un'interfaccia pubblica che i client transazionali possono chiamare per accedere ai dati di Resource Manager. Ad esempio, gestione risorse per un database potrebbe fornire un set di funzioni che i client possono chiamare per leggere e scrivere nel database.
Un TPS più complesso può avere più gestori risorse, ognuno dei quali gestisce un database separato o un'altra risorsa durante la partecipazione alle transazioni del sistema.
Per altre informazioni sui manager delle risorse, vedere Creazione di un Resource Manager.
In alcuni casi, un gestore risorse è superiore agli altri responsabili delle risorse e può avviare le operazioni di commit. In KTM, tali responsabili delle risorse sono chiamati manager delle transazioni superiori.
client transazionale
Un client transazionale è un componente software che accede a un database supportato da un resource manager, in genere chiamando le funzioni esportate da Resource Manager. Il client è responsabile della creazione di transazioni, dell'esecuzione di un set di operazioni supportate da un gestore risorse e quindi di informare il gestore transazioni (KTM) che la transazione deve essere commit o rollback.
Per altre informazioni sui client transazionali, vedere Creazione di un client transazionale.
gestione transazioni
Un gestore delle transazioni, ad esempio KTM, fornisce l'infrastruttura che consente ai client transazionali e ai responsabili delle risorse di comunicare tra loro. Tiene inoltre traccia dello stato di ogni transazione, ma non dei dati gestiti dai client e dai gestori risorse.
Gestione transazioni può anche coordinare le operazioni di ripristino dopo un arresto anomalo del sistema.
Gestione transazioni non ha conoscenza dei dati o delle operazioni che costituiscono una transazione. I dati e le operazioni sono controllati dai client e dai responsabili delle risorse.
KTM fornisce funzioni che i client transazionali possono chiamare. Queste funzioni consentono ai client di creare, eseguire il commit e eseguire il rollback delle transazioni.
KTM fornisce anche funzioni che i responsabili delle risorse possono chiamare. Queste funzioni consentono ai responsabili delle risorse di inserire nelle transazioni in modo che possano ricevere notifiche sulle transazioni. Dopo l'inserimento di un gestore risorse in una transazione, può ricevere una notifica quando un client transazionale è pronto a eseguire il commit o il rollback della transazione oppure quando si verifica un'operazione di ripristino.
flusso di log
Un flusso di log è una cronologia registrata degli eventi che si sono verificati nelle transazioni. KTM gestisce un flusso di log usando Common Log File System (CLFS). KTM registra le modifiche dello stato per ogni transazione in modo che possa supportare il rollback e le operazioni di ripristino quando sono necessarie.
I responsabili delle risorse devono usare anche un flusso di log per registrare i dati e le operazioni.
Un'operazione di rollback richiede a KTM e gestione risorse di ripristinare una transazione e tutti i dati in uno stato iniziale. KTM e resource manager registrano lo stato iniziale di ogni transazione nei flussi di log in modo che possano recuperarlo durante un'operazione di rollback.
Le operazioni di ripristino si verificano dopo un arresto anomalo del sistema. Quando il sistema operativo viene successivamente riavviato, KTM e gestione risorse possono usare il contenuto del flusso di log per ricompilare lo stato di una transazione allo stato in cui si trovava prima dell'arresto anomalo.
Per altre informazioni sui flussi di log in KTM, vedere Uso dei flussi di log con KTM.
Arruolamento
Un elenco è un'associazione tra un gestore risorse e una transazione. KTM fornisce un set di funzioni che i responsabili delle risorse chiamano per creare e gestire gli elenchi. Dopo aver creato un gestore risorse, KTM invia notifiche al gestore risorse quando lo stato della transazione cambia.
sistema di elaborazione delle transazioni
Un sistema di elaborazione delle transazioni (TPS) è una raccolta di un gestore transazioni, uno o più gestori di risorse, uno o più flussi di log e uno o più client transazionali che accedono alle risorse di gestione risorse.