Andrey, the values clearly don’t make sense, which means that the test was conducted incorrectly. I would rerun it.
On Tue, Jul 12, 2016 at 10:38 AM, Andrey Velichko <andrey4...@gmail.com> wrote: > Agree, indexes consume CPU, but as shown in the table, > performance for index and CacheMode=LOCAL more then 2x. > > CacheMode.CacheMode + TRANSACTIONAL = 45 K op./sec > CacheMode.CacheMode + TRANSACTIONAL + setIndexedTypes = 107 K op./sec > > CacheMode.CacheMode + ATOMIC = 340 K op./sec > CacheMode.CacheMode + ATOMIC+ setIndexedTypes = 581 K op./sec > > > 12.07.2016 0:15, Sergi Vladykin пишет: > > I guess updating indexes is not free. >> >> Sergi >> >> On Mon, Jul 11, 2016 at 11:48 PM, AndreyVel <andrey4...@gmail.com> wrote: >> >> Hello, I have created simple test for testing performance put operations >>> on single computer, >>> can anybody explain why performance for LOCAL mode different for Indexed >>> and non Indexed mode? >>> >>> >>> Cache performance put(Integer, String)/sec: one client and 2 >>> remote servers. >>> >>> CacheMode TRANSACTIONAL TRANSACTIONAL >>> setIndexedTypes(Integer, String) ATOMIC ATOMIC >>> setIndexedTypes(Integer, String) >>> LOCAL 45154 107306 340627 581250 >>> REPLICATED 3270 2865 7272 5694 >>> PARTITIONED 6773 5403 8558 6714 >>> >>> >>> VM options -Xms1g -Xmx1g >>> Topology snapshot [ver=5, servers=2, clients=1, CPUs=8, heap=3.0GB] >>> >>> >>> public class CachePerformance { >>> >>> private static int CACHE_SIZE =100 * 1000; >>> private static StringCACHE_NAME ="cachePerf"; >>> >>> public static void main(String[] args) { >>> try { >>> Ignition.setClientMode(true); >>> IgniteConfiguration igniteCfg =new IgniteConfiguration(); >>> igniteCfg.setPeerClassLoadingEnabled(true); >>> >>> Ignite ignite = Ignition.start(igniteCfg); >>> CachePerformance.execute(ignite); >>> }catch (Throwable ex) { >>> ex.printStackTrace(); >>> } >>> } >>> >>> public static void execute(Ignite ignite)throws Exception { >>> >>> Random rand =new Random(); >>> >>> for (CacheMode cacheMode : CacheMode.values()) { >>> >>> for (CacheAtomicityMode atomMode : CacheAtomicityMode.values()) >>> { >>> for (int indexMode =0; indexMode <=1; indexMode++) { >>> >>> CacheConfiguration<Integer, String> cacheCfg =new >>> CacheConfiguration<>(CACHE_NAME); >>> if (indexMode ==1) >>> cacheCfg.setIndexedTypes(Integer.class, >>> String.class); >>> >>> cacheCfg.setAtomicityMode(atomMode); >>> cacheCfg.setCacheMode(cacheMode); >>> >>> ignite.destroyCache(CACHE_NAME); >>> IgniteCache<Integer, String> cache = >>> ignite.getOrCreateCache(cacheCfg); >>> String cacheDesc ="cacheMode=" + cacheMode +", >>> atomMode=" >>> + atomMode +", indexMode=" + indexMode; >>> >>> long time = System.nanoTime(); >>> for (int ind =0; ind <CACHE_SIZE; ind++) { >>> Integer key = rand.nextInt(); >>> cache.put(key,"=" + ind); >>> } >>> >>> long deltaMs = (System.nanoTime() - time) /1000000; >>> long perfSec = (deltaMs ==0) ?0 :1000 *CACHE_SIZE / >>> deltaMs; >>> System.out.println(cacheDesc +", Perf/Sec = " + >>> perfSec); >>> } >>> } >>> } >>> >>> >