我目前正在为一个近乎实时的应用程序对Appache Ignite进行基准测试,对于一个相对较小的样本大小,简单的操作似乎过于缓慢。下面给出了设置的细节和时间--请参见下面的两个问题.
设置:
第一个用例是以不同的速率计算对象的两个字段的加权平均值。
第一个方法是运行SQL样式查询:
...
query = new SqlFieldsQuery("select SUM(field1*field2)/SUM(field2) from MyObject");
cache.query(query).getAll();
....观察到的时间安排如下:
缓存: 500,000次查询/秒: 10
中位数:428 Median,第90百分位数:13 929 Median
缓存: 500,000次查询/秒: 50
中位数:191,465 Median,第90百分位数:402,285 Median
显然,这是队列的巨大延迟(>400毫秒),一个简单的加权平均计算单jvm (4个核心)需要6毫秒。
第二种方法是使用IgniteCompute在各个节点上广播可调用的数据,并计算每个节点的加权平均值,在调用方减少,延迟只稍微好一些,吞吐量提高了,但仍然处于不可用的水平。
缓存: 500,000次查询/秒: 10
中位数:408 Median,第90百分位数:507 Median
缓存: 500,000次查询/秒: 50
中位数:114,155 Median,第90百分位数:237,521 Median
我在实验中注意到了一些事情:
对于我的问题:
发布于 2016-08-10 04:30:14
本主题在Apache用户论坛:http://apache-ignite-users.70518.x6.nabble.com/Ignite-performance-td6703.html上进行了详细讨论。
https://stackoverflow.com/questions/38717872
复制相似问题