Ho ereditato un sistema costruito su un database MySQL utilizzando le tabelle InnoDB. Il sistema ha un bug che si presenta sotto carico pesante. Ho creato alcuni test jmeter per caricare il sistema sperando di vedere il bug in un ambiente controllato. Tuttavia, non sto stressando il sistema correttamente e il bug non viene mai mostrato. La teoria corrente è che le tabelle fortemente bloccate stanno causando un rollback, lasciando i dati dell'utente in uno stato dispari. Questo probabilmente significa che le transazioni non sono strutturate correttamente e voglio trovarle e correggerle, ma prima devo trovare il problema.Simula problemi di blocco tabella
Suppongo che se riesco a creare diversi "carichi bloccanti tabella" controllati nel database posso quindi eseguire i miei utenti simulati sull'intero sistema e forzare il bug a verificarsi o dimostrare la teoria sbagliata, ma non sono sicuro come creare una cosa del genere. Qualcuno ha un'idea del modo migliore per farlo? A questo punto non sono nemmeno sicuro di come sarebbe una povera prima versione, quindi qualsiasi idea per iniziare mi aiuterebbe. Grazie!
Finora, ho creato un "test" jmeter che esegue un SELECT ... FOR UPDATE e quindi aggiorna la riga di interesse nella tabella dei sospetti. Non sono stato in grado di riprodurre il bug fino ad ora, ma questo è l'unico approccio che sono stato in grado di fornire che sembra plausibile. –