以下是我想在Web應用程序中執行的兩個潛在工作流程。如何處理Web應用程序中的併發更改?
變形例1個
- 用戶發送請求
- 服務器讀取數據
- 服務器修改數據
- 服務器保存修改後的數據
變形例2:
- 用戶發送請求
- 服務器讀取數據
- 服務器將數據發送給用戶
- 用戶發送與修改請求
- 服務器保存修改後的數據
在每種這些情況下,我想知道:確保同時訪問這項服務的標準方法將產生合理的結果? (即任何人的編輯被打一頓,值對應於編輯的某種排序等)
的情況是假設的,但這裏的,我可能會需要在實踐中解決這個問題的一些細節:
- Web應用程序,但語言不明
- 可能,使用Web框架
- 數據存儲是一個SQL關係數據庫
- 涉及的邏輯過於複雜的查詢例如表達良好值=值+ 1
我覺得我不想嘗試和重新發明輪子在這裏。這些都是衆所周知的解決方案衆所周知的問題。請指教。
謝謝。
謝謝。對於變化1來說,這很好。但是,在沒有交易的情況下,處理這種情況的通常方式是什麼?例如MySQL的MyISAM – Ming
爲了澄清,我想很多論壇軟件都必須處理這類問題。然而,我看到很多人使用MyISAM,它沒有交易。他們的解決方案是什麼? – Ming
你不能可靠地處理它。論壇軟件主要依賴於插入,很少進行併發編輯,因此它不會導致很多問題。 – Bozho