併發死鎖問題
專案上線後發現死鎖問題,資料量級並不大,現將分析過程和解決方案整理一下,以作記錄
場景:申購,贖回兩個介面併發做下單操作
描述:併發下單操作時,頻繁的更新同一張表同一條記錄,導致死鎖現象發生
問題分析:由於是併發操作下才會出現死鎖,考慮到有可能是兩個介面當中的業務更新sql有交叉的可能,導致了互相競爭鎖資源引起死鎖問題
解決方案;分析兩個業務的所有sql及執行順序,找出交叉的業務(sql), 然後調整sql的執行順序,保證兩個業務sql執行順序一致
結果:測試環境下測試併發同時下單正常,問題解決
上線之後發現問題依然存在,只是發生死鎖的頻率降低了,於是有接著找原因
分析之前引起死鎖的操作場景可能並不是只有在併發下單那塊,這裡只是引起死鎖問題的乙個操作而已
後台業務系統做業務(保密業務不便說明)時也會頻繁的做更新操作並且和下單的操作競爭資源,導致了問題的發生。
結果:測試正常,上線後死鎖問題再未發生
總結;排隊之後在處理業務及時性上有一定延遲(犧牲了一些效能),好在這個系統的實時性要求並不高。
這裡僅僅是大致記錄一下死鎖的發生,分析,解決的乙個過程。
不知道大家在遇到死鎖問題都是如何解決的?
專案中的問題記錄
開發團隊有一些問題,先寫些,想到什麼以後再加 1.需求理解不統一,有的人明白了,有的人還不明白,而有的人呢自以為明白了其實明白錯了。2.理解需求之後提出設計,有人提出,沒人反對,其實不一定表示都理解了,也保不齊有人理解錯位。3.設計完畢,開始編碼,以為自己正在如期進行著工作,也保不齊想得不夠全面到時...
在專案中解決的乙個死鎖問題
描述 finance 系統 呼叫 process 系統的時候發生死鎖。用 show processlist 可以看到存在status是 updating 的程序,而該程序就是發生了死鎖的sql。分析 問題產生的原因是 finance 系統在事務a中update了一條資料,並且這條資料已被加行鎖 pr...
專案執行 專案中問題
多部門,多人員參與 1.確定專案總負責人,及時協調各方任務和人力 2.晨會溝通當天任務,同步專案進展 15min,晨會不做小組討論 3.同步專案進度和風險,已知風險確定解決方案或解決時間 下班前 前期調研不足,開發延期 專案已啟動,開發中期發現前期調研不足,不能按時交付測試 提測質量較差 bug堆積...