Tôi đã kế thừa một hệ thống được xây dựng trên cơ sở dữ liệu MySQL sử dụng các bảng InnoDB. Hệ thống có lỗi hiển thị dưới tải nặng. Tôi đã tạo ra một số thử nghiệm jmeter để tải lên hệ thống hy vọng sẽ nhìn thấy lỗi trong một môi trường được kiểm soát. Tuy nhiên, tôi không nhấn mạnh hệ thống một cách chính xác và lỗi không bao giờ hiển thị. Lý thuyết hiện tại là các bảng bị khóa nặng đang gây ra một sự khôi phục, để lại dữ liệu của người dùng ở trạng thái lẻ. Điều này có thể có nghĩa là các giao dịch không được cấu trúc đúng và tôi muốn tìm và khắc phục điều đó, nhưng trước tiên tôi cần phải tìm ra vấn đề.Mô phỏng các vấn đề về khóa bảng
Tôi phỏng đoán rằng nếu tôi có thể tạo nhiều khóa "bảng khóa" khác nhau trong cơ sở dữ liệu, tôi có thể chạy người dùng mô phỏng trên toàn bộ hệ thống và buộc lỗi xảy ra hoặc chứng minh lý thuyết sai, nhưng tôi không chắc chắn làm thế nào để tạo ra một điều như vậy. Có ai có một ý tưởng về cách tốt nhất để làm điều này? Tại thời điểm này tôi thậm chí không chắc chắn những gì một phiên bản đầu tiên nghèo sẽ như thế nào, vì vậy bất kỳ ý tưởng để giúp tôi bắt đầu sẽ giúp đỡ. Cảm ơn!
Cho đến nay, tôi đã tạo ra một "kiểm tra" jmeter mà thực hiện một SELECT ... FOR UPDATE và sau đó cập nhật hàng quan tâm trong bảng nghi ngờ. Tôi đã không thể tái tạo các lỗi cho đến nay, nhưng đây là cách tiếp cận duy nhất tôi đã có thể đến với điều đó có vẻ hợp lý. –