ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrey Velichko <andrey4...@gmail.com>
Subject Re: Cache performance for LOCAL mode + setIndexedTypes
Date Tue, 12 Jul 2016 07:38:58 GMT
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 <andrey4vel@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);
>>              }
>>          }
>>      }
>>


Mime
View raw message