ID transazione
- ID della transazione che ha creato il record
- Un ID di transazione che ha cancellato il record (che è impostato a 0 se non è stato cancellato)
Quando il sistema aggiorna un record, cancella il record originale, inserisce un nuovo record e conserva il rowid.
Poiché il sistema non aggiorna i record presenti sul disco, l'integrità dei dati è preservata (scrittura una volta) e le operazioni di rollback e ripristino sono semplificate e accelerate.
Quando si esegue una query (o un'operazione di backup), il sistema consente alla query di accedere a qualsiasi record creato, ma non eliminato, prima dell'inizio della transazione. Poiché i valori xid sono sequenziali, il sistema confronta i valori xid di creazione e xid di cancellazione.
L'eccezione è che quando una transazione inizia, genera un elenco di invisibilità di qualsiasi altra transazione attiva (che avrebbe quindi un valore xid inferiore). La transazione ignora tutti i record con un valore xid corrispondente a create e include tutti i record con un valore xid corrispondente a delete.
Un xid è un valore intero di 8 byte, di cui 48 bit sono significativi. Nelle nuove installazioni, il valore iniziale di xid è 1.024. Il sistema memorizza il prossimo valore xid disponibile nel file " /nz/data/xid.
La dimensione dell'xid consente oltre 100 trilioni di ID transazione, che richiederebbero oltre 4000 anni per essere utilizzati al ritmo di una transazione al millisecondo. Nella pratica, è probabile che gli ID delle transazioni vengano generati a un ritmo più lento e richiedano più tempo per essere esauriti.