我尝试在客户机/服务器拓扑的分区区域上运行一个简单的查询,比如"select key,name from /region order by name limit1000“。表演很糟糕。处理全部1000条记录需要10秒以上的时间。我的客户端应用程序使用spring-data-gemfire。来自客户端的调试显示,结果在10个区块中返回。无论我如何改变套接字缓冲区大小和结果对象大小,每个块最多只能有100条记录(例如,我只测试了返回键)。查看geode源代码,我找不到100的限制设置在哪里。我在想,如果我可以增加每个区块的对象数量,我也许能够解决这个性能问题。但这是可配置的吗?
发布于 2019-08-06 02:22:57
看起来块大小是由系统属性"BridgeServer.MAXIMUM_CHUNK_SIZE“控制的。因此您可以尝试在服务器上设置系统属性以增加块大小。
我想知道你的性能问题是否真的是由于块大小造成的。在分区区域上使用order by的开销会很大,因为它必须从所有分区中获取数据,并在应用限制之前将其合并。在不使用order by的情况下尝试相同的查询可能也是值得的。
https://stackoverflow.com/questions/57360537
复制相似问题