我有一个分布式浮点缓存(不是int)。我的进程将经常增加这些浮点数,并偶尔访问它们。
如果是局部的,使用增量方法的原子浮点数据结构(或者浮点数加法器)可能是最好的方法。非阻塞和异步将是理想的,因为增量的顺序并不重要,只要每个增量最终进行。
增加数值以实现高吞吐量的最佳方法是什么?
我目前的方法是:
invokeAll中使用IgniteCache方法,传入包含每个键的增量值的CacheEntryProcessor。CacheAtomicityMode配置设置为ATOMIC这是最好的方法吗?
是否有任何配置是我应该注意的性能提升,例如使用二进制格式或堆上内存或避免不必要的序列化?
发布于 2018-03-16 05:55:58
我认为你绝对是在正确的轨道上。
默认情况下将使用二进制格式,因此不需要对其进行任何特殊配置。我不认为您应该担心浮点数的序列化,因此,除非遇到性能问题,否则我不会配置堆上缓存。
我还建议查看IgniteAtomicSequence的内部实现,因为它可能会给您提供更有用的想法。
最后,我建议将其实现为点火服务,这将允许您提供针对此功能定制的API。
https://stackoverflow.com/questions/49286638
复制相似问题