首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Aerospike聚集部分大小

Aerospike聚集部分大小
EN

Stack Overflow用户
提问于 2014-12-10 23:54:55
回答 1查看 339关注 0票数 3

我们使用“小”的内存--唯一的Aerospike服务器来存储过去一个小时的网站分析。过去一个小时的数据大小约为10 Gb。

我们尝试从单独的服务器(基于Java的客户端)在Aerospike上执行一些聚合查询,如下所示(在LUA中):

代码语言:javascript
复制
stream : aggregate( map(), complex_aggregate_function ) : reduce( simple_reduce_function )

根据文档,所有的聚合都是在Aerospike节点(在我们的例子中是单个节点)上完成的,而reduce --在客户端上完成。

事实证明,aggregate()函数只处理小批量数据,即10-16条记录。之后,聚合结果被发送到客户端,由reduce()进行处理。

由于reduce()操作是在客户端执行的,这意味着服务器将向客户端发送至少1/16大小的数据。也就是说,我们的数据有几百兆字节。谈一谈性能。

是否可以更改记录流聚合的“缓冲区大小”、“队列大小”或“任意大小”?也就是说,有没有可能“调优”Aerospike,让每个节点只调用一次reduce()函数?

EN

回答 1

Stack Overflow用户

发布于 2014-12-11 18:57:52

这个问题有两个方面-查询批处理大小和查询缓冲区大小。

查询批处理大小确定查询在单个批处理中返回的记录数。比方说,如果您的查询提供了1000条记录,并且您的查询批处理大小为1000,那么所有结果都将在一个响应中返回。如果您的查询批大小为100,则需要10个批才能返回整个结果集。

有关更多详细信息,请参阅http://www.aerospike.com/docs/operations/manage/queries/

类似地,您可以增加query-buf-size来增加缓冲区的大小。较大的缓冲区大小将导致较低的批次计数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27405337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档