有没有人尝试使用 GridGain 作为本地缓存替代品?凭借内置的驱逐和到期政策,它非常有吸引力。
将 GridGain 配置为本地缓存的正确方法是什么?
编辑 这是我用来在 GridGain 本地缓存上运行简单的微基准测试的示例配置。
final GridCacheConfiguration cfg = new GridCacheConfiguration();
cfg.setCacheMode(GridCacheMode.LOCAL);
cfg.setSwapEnabled(false);
cfg.setAtomicityMode(GridCacheAtomicityMode.ATOMIC);
cfg.setQueryIndexEnabled(false);
cfg.setBackups(0);
cfg.setStartSize(1000000);
cfg.setName("test");
final GridConfiguration gridConfiguration = new GridConfiguration();
gridConfiguration.setRestEnabled(false);
gridConfiguration.setMarshaller(new GridOptimizedMarshaller());
gridConfiguration.setCacheConfiguration(cfg);
try (final Grid grid = GridGain.start(gridConfiguration)){
final GridCache<String, String> test = grid.cache("test");
final String keyPrefix = "key";
final String valuePrefix = "value";
final LoggingStopWatch stopWatch = new LoggingStopWatch("cacheWrite - GRIDGAIN");
for (int i = 0; i < 1000000; i++) {
test.put(keyPrefix + i, valuePrefix + i);
}
stopWatch.stop();
} catch (GridException e) {
e.printStackTrace();
}
执行 1M 同步 put 大约需要 16 秒(在我的 Core i7-2640M 2.8GHz 笔记本电脑上)。我同意这是一个过于简单的测试,但这仍然不是我所期望的性能。我期待大约1-2秒。我是否需要调整配置以从缓存中获取更多汁液?