Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何避免在基于Sirius的应用程序中调用enqueueGet?_Java_Rest_Distributed Computing - Fatal编程技术网

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

Java 如何避免在基于Sirius的应用程序中调用enqueueGet?,java,rest,distributed-computing,Java,Rest,Distributed Computing,是用Scala为JVM编写的“用于管理应用程序参考数据的分布式系统库”。Sirius的目标是将数据的完整副本分发到每个节点 我注意到,enqueueGet方法用于处理GET请求。这涉及在处理所有GET请求之前序列化它们。然而,我想尝试不序列化所有get以避免读取延迟;有什么方法可以避免调用enqueueGet?如果是,我该怎么做?天狼星库的设计使每个节点都有一个完整的数据副本。这些数据存储在内存中,可直接在应用程序中使用。根据enqueueGet操作施加了可能不必要的开销。enqueueGet操

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


我注意到,
enqueueGet
方法用于处理GET请求。这涉及在处理所有GET请求之前序列化它们。然而,我想尝试不序列化所有get以避免读取延迟;有什么方法可以避免调用
enqueueGet
?如果是,我该怎么做?

天狼星库的设计使每个节点都有一个完整的数据副本。这些数据存储在内存中,可直接在应用程序中使用。根据enqueueGet操作施加了可能不必要的开销。enqueueGet操作将序列化要尽快执行的get请求,通常在当前操作完成后立即执行。这是一个本地序列化,它不经过Paxos。使用enqueueGet可以防止应用程序执行并发get,还可以防止在数据更新时执行get

因此,您需要注意两件事:

  • 您的应用程序需要能够自己处理并发GET操作。这可能是问题,也可能不是问题,这取决于数据和应用程序的性质
  • 编写应用程序时,需要确保与PUT或DELETE同时执行的GET不会看到部分更新的项。您的基础数据结构不应允许部分更新,否则您将需要容忍获得部分更新
    您要求我们推测为什么其他人做出了特定的设计决策。这不太可能有一个具体的答案,如果有,你可能会在天狼星特定的论坛上更快地得到一个。