Odziedziczyłem system zbudowany na bazie danych MySQL przy użyciu tabel InnoDB. System ma błąd, który pojawia się przy dużym obciążeniu. Stworzyłem kilka testów jmeter, aby załadować system z nadzieją, że zobaczę błąd w kontrolowanym środowisku. Jednak nie podkreślam poprawnie systemu, a błąd nigdy się nie wyświetla. Obecna teoria głosi, że mocno zablokowane tabele powodują wycofanie zmian, pozostawiając dane użytkownika w nieparzystym stanie. Prawdopodobnie oznacza to, że transakcje nie mają poprawnej struktury i chcę je znaleźć i naprawić, ale najpierw muszę znaleźć problem.Symulacja problemów z blokowaniem tabeli
Przypuszczam, że jeśli mogę utworzyć różne kontrolowane "obciążenia blokujące tabelę" w bazie danych, mogę następnie uruchomić symulowanych użytkowników w całym systemie i zmusić błąd do wystąpienia lub udowodnić, że teoria jest zła, ale nie jestem pewien jak stworzyć coś takiego. Czy ktoś ma pomysł, jak najlepiej to zrobić? W tym momencie nie jestem nawet pewien, jak wyglądałaby zła pierwsza wersja, więc pomogłyby mi wszelkie pomysły na rozpoczęcie pracy. Dzięki!
Do tej pory stworzyłem jmeter "test", który wykonuje polecenie SELECT ... FOR UPDATE, a następnie aktualizuje wiersz zainteresowania w podejrzanej tabeli. Do tej pory nie udało mi się odtworzyć błędu, ale to jedyne podejście, jakie udało mi się wymyślić, które wydaje się wiarygodne. –