MongoDB-竞争条件下高并发文档更新

MongoDB-竞争条件下高并发文档更新,mongodb,mongodb-query,spring-data-mongodb,mongodb-update,Mongodb,Mongodb Query,Spring Data Mongodb,Mongodb Update,我有一个包含凭证文档的数据库收集凭证: { 代码:“X123”, 状态:“可用” } 最终用户可以购买指定数量的可用凭证 目前,当流量激增时,很多用户可以同时购买代金券,我得到了比赛条件 因此,每次用户请求时,系统都会查询指定数量的状态为可用的凭证。我们记录代码,然后使用update命令将状态从可用更新到代码匹配的已售出 但是mongo查询是一种特定的自然排序,因此多个用户将尝试使用相同的代码预订相同的凭证 我还尝试放置随机跳过(这会增加查询时间),但添加这些将增加缓慢的查询和处理时间 有人能分

我有一个包含凭证文档的数据库收集凭证:

{ 代码:“X123”, 状态:“可用” }

最终用户可以购买指定数量的可用凭证

目前,当流量激增时,很多用户可以同时购买代金券,我得到了比赛条件

因此,每次用户请求时,系统都会查询指定数量的状态为可用的凭证。我们记录代码,然后使用update命令将状态从可用更新到代码匹配的已售出

但是mongo查询是一种特定的自然排序,因此多个用户将尝试使用相同的代码预订相同的凭证

我还尝试放置随机跳过(这会增加查询时间),但添加这些将增加缓慢的查询和处理时间

有人能分享这个用例的见解和最佳实践吗?

试试这个