gpt4 book ai didi

java - 如何避免在基于 Sirius 的应用程序中调用 enqueueGet?

转载 作者:太空宇宙 更新时间:2023-11-04 06:38:19 25 4
gpt4 key购买 nike

Sirius是用 Scala 为 JVM 编写的“用于管理应用程序引用数据的分布式系统库”。 Sirius 的目标是将数据的完整副本分发到每个节点。

我注意到enqueueGet方法用于处理 GET 请求。这涉及到在处理所有 GET 请求之前对其进行序列化。但是,我想尝试不序列化所有 GET 以避免读取延迟;有什么办法可以避免打电话 enqueueGet ?如果是,我该怎么做?

最佳答案

Sirius 库的设计使每个节点都拥有完整的数据副本。该数据存储在内存中,并且可以直接在应用程序中使用。根据documentation enqueueGet 操作会带来不必要的开销。 enqueueGet 操作将尽快序列化要执行的 get 请求,通常在当前操作完成后立即执行。这是本地序列化,它不经过 Paxos。使用 enqueueGet 可以防止应用程序执行并发获取,并且还可以防止在数据更新时执行获取。

因此您需要注意两件事:

  1. 您的应用程序需要能够自行处理并发 GET 操作。这可能是也可能不是问题,具体取决于数据和应用程序的性质。
  2. 您的应用程序需要编写,以便与 PUT 或 DELETE 同时执行的 GET 不会看到部分更新的项目。您的底层数据结构不应允许部分更新,否则您将需要容忍 GET 部分更新。

关于java - 如何避免在基于 Sirius 的应用程序中调用 enqueueGet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25003287/

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