gpt4 book ai didi

concurrency - Couchbase 读/写并发

转载 作者:行者123 更新时间:2023-12-02 00:55:07 26 4
gpt4 key购买 nike

我有一个关于 Couchbase 内部如何处理并发的问题。

我试着研究了他们的文档,我发现这取决于您在应用程序中使用的锁定机制,两个主要是:

  1. 乐观锁
  2. 悲观锁

但是,以上两者都与我们希望我们的策略如何保存数据有关,这意味着我们是否愿意锁定它。

在我们的例子中,如果我们没有在我们的应用程序中使用任何一个锁定,couchbase 将如何在以下场景中提供文档:

  1. 如果应用程序A写了一个文档A
  2. 在同一实例中,应用程序 B 尝试读取文档 A

我的问题是应用程序 B 是否必须排队才能读取文档,或者默认情况下它会得到旧版本的服务(所有这些都没有通过同步网关,我们直接使用 .Net DLL 进行写入和读取).

Couchbase 版本 4.5.0

最佳答案

如果您使用 Couchbase SDK 并直接连接到数据服务,Couchbase 是高度一致的。如果应用程序 A 编写了文档,并且在应用程序 B 读取它之后,应用程序 B 将立即获得该版本。一致性来自 Couchbase 如何分发数据以及客户端 SDK 如何访问它。 Couchbase 将每个对象分配到 1024 个事件分片中的一个(Couchbase 称它们为 vBuckets)。有复制品,但我不会在这里讨论。当 SDK 直接读取/写入对象时,它会将您提供的对象 ID 传递给一致的 CRC32 哈希。该散列的输出是 0-1023 之间的数字,即 vBucket 编号。然后,SDK 查看集群映射(由集群分发的 JSON 文档)并找到 vBucket 在集群中的位置。 SDK 然后直接与该节点和 vBucket 对话。这就是应用程序 A 可以写入一个对象,然后几微秒后应用程序 B 读取它的方式。他们都在同一个地方读写。 Couchbase 不缩放从副本读取。副本仅用于 HA。

关于concurrency - Couchbase 读/写并发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36289601/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com