簡體   English   中英

在橫向擴展的架構中,多個實例同時讀寫同一行時,如何處理數據庫並發?

[英]In a horizontally scalable architecture, how to deal with database concurrency when multiple instances read/write to the same row simultaneously?

我知道 SQL Server 在這個意義上(事務和鎖定)非常強大,但是它如何與帶有 Mongo API 的 AWS DocumentDB 等 NoSQL 數據庫一起使用?

深入了解和學習每個單獨的系統並發模型和產品沒有捷徑:/

可以通過搜索目標數據庫的“隔離級別”或“默認隔離級別”來找到這些保證。

需要注意的一件事是 MySQL 和 PostgreSQL 默認隔離級別是"Read Committed" 對於常見類型的查詢,這實際上可能導致並發環境中的應用程序不正確。

例如,如果您有一個允許用戶設置其帳戶余額的多線程 Web 應用程序。 如果兩個線程都獲取帳戶余額,這將導致最后一個線程最終覆蓋第一個線程的結果的邏輯競爭。 這在上述每個文檔中都有詳細描述。

在 Amazon DocumentDB 中,所有 CRUD 語句(findAndModify、更新、插入、刪除)都保證原子性和一致性,即使對於修改多個文檔的操作也是如此。 有關更多信息,請參閱隱式事務

此外,從 Amazon DocumentDB 集群的主實例讀取的內容在正常操作條件下具有強一致性,並且具有先寫后讀一致性。 有關更多信息,請參閱閱讀首選項選項

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM