gpt4 book ai didi

aerospike - 在 Aerospike 中,是否可以使用 UDF 来获取 "chain gets"?

转载 作者:行者123 更新时间:2023-12-02 09:13:23 24 4
gpt4 key购买 nike

我在文档中看到示例,可以从一组中获取记录或记录流,并执行某些操作。我想获取一条记录,从该记录中检索标识符,在另一组中查找该标识符,然后返回第二组中 bin 的内容。它实际上是一个连接,例如

function chained_get(rec)
if aerospike:exists( rec ) then
local other_id = rec.other_id
-- how to return the result of: 'SELECT some_bin FROM namespace.some_bin WHERE PK = other_id'
end
return result
end

我意识到这在客户端/应用程序端很容易做到,但我希望尽可能避免网络“喋喋不休”,并在 Aerospike 内“链接”获取请求。

这可能吗?

最佳答案

简短的回答是否定的,Aerospike Server 不支持服务器本身主动参与的此类连接(还?)。但对于接近单次往返延迟有一些解决方法:

分布式数据库中联接的问题是其他记录可能位于集群中的另一个节点上。但根据您想要执行的操作,您很可能可以使用 Aerospike 提供的其他工具来执行此操作。例如,一项强大的功能是二级索引功能。你可以例如有一个用户和一组订单(记录)。为了避免必须先查找用户,然后对所有订单发出批量获取,您可以发出用户获取和查询,以获取并行索引并在客户端上合并的 bin 中具有用户 id = xyz 的所有记录 -边。缺点是所有节点都会收到查询,因为订单所在的位置未知,并且每个二级索引条目需要 45-70 字节 RAM。但是,您应该衡量这是否比 2 次往返替代方案的性能更好,因为它取决于查询的优先级、二级索引大小等。

请告诉我该方法是否可以解决您的问题或您有什么要求,我们可以帮助您实现这一目标。如果您尝试两者,添加基准测试结果可能会很有趣。

关于aerospike - 在 Aerospike 中,是否可以使用 UDF 来获取 "chain gets"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34665282/

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