Sto lavorando a un progetto per il quale è necessario utilizzare "journaling delle transazioni" nel nostro DBMS (MySQL). Siamo già passati a utilizzare InnoDB per utilizzare le transazioni per un altro requisito. Sto cercando di capire cos'è il journal delle transazioni. Ho cercato per oltre un giorno ora, compresa la lettura attraverso la documentazione di MySQL. Forse non sto cercando le parole chiave giuste, non sono sicuro. O forse "journal journaling" è una terminologia inappropriata.Inserimento nel diario di transazioni MySQL
Da quanto ho capito, l'inserimento nel diario delle transazioni del database è simile a un file system di journaling in quanto le modifiche vengono apportate a un giornale prima che vengano trasferite al file system. Da quello che ho letto, sembra che il motore InnoDB memorizzi le transazioni in una sorta di diario prima che vengano trasferite su disco. Questo suona accurato? In tal caso, dov'è il giornale delle transazioni? È ib_logfile0 e ib_logfile1?
Capisco che questi file di registro sono per il ripristino in caso di arresto anomalo, ma il meccanismo MVCC non è responsabile del corretto funzionamento di una "transazione" quando non si verifica un arresto anomalo del sistema? MyISAM ha un certo grado di recupero di emergenza mentre non ha transazioni. – karatedog
Grazie per la risposta dettagliata e tempestiva. Sono un po 'confuso sulla riproduzione delle voci nei registri.Se ci fosse stato un fallimento nel mezzo di una transazione, prima che il commit fosse emesso, penserei che non si voglia riprodurre le voci poiché le transazioni sono tutte o niente (non si vorrebbe una parte della transazione a essere impegnati). O stai dicendo che verrebbero riprodotti solo se ci fosse un commit, ma l'errore si è verificato prima che la transazione fosse impegnata nel database, ma dopo che è stata salvata nei file di log? – alfredough