繁体   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