Hello,

I am trying out Ignite for the first time. I have some interesting performance 
metrics that are unexpected. I'm looking to see if my understanding of what 
Ignite is meant to do is correct.


I have 400K records from a database that I am loading into a cache with the 
primary key mapped to a DTO of a few properties from the record. For my real 
world scenario I need to perform a lot of calculations in memory of data. The 
bottleneck by far is the time it takes to load data from the database. (So I 
want to do repeated calculations with cached data.)


If I read all 400K rows from the database and simply discard the DTO it takes 
about 700 ms.

Reading all rows into a HashMap is about 1100 ms.

If I then putAll the map to the cache it's 3100 ms.

If I then getAll keys from the cache it's 550 ms.


The cache in this case is "embedded", i.e., just the one JVM I'm running the 
test on (clientMode false). I have a lot of other numbers but these are best 
case. Going to a server node on the same machine takes an order of magnitude 
longer if getting and putting in a loop rather than batch. I didn't test remote 
caches.


I'm not looking for the best way to warm/pre-load a cache, I'm just looking to 
see how the basics work. Reading a row at a time from the database is 30 times 
faster than reading a key at a time from the cache.


As such Ignite will not help me with my problem. Do my numbers seem normal? Is 
this a use case you would expect Ignite to help with?


I ran IgnitePutBenchmark and the report says 124K ops per second average. I'm 
certainly not seeing that in my test case.


Thanks.


--

Daryl Stultz
Principal Software Developer
_____________________________________
OpenTempo, Inc
http://www.opentempo.com<http://www.opentempo.com/>
mailto:daryl.stu...@opentempo.com<mailto:daryl.stu...@opentempo.com>

Reply via email to