I'm evaluating apache ignite for a use case very similar to the setup
described at -
https://dzone.com/articles/apache-ignite-how-to-read-data-from-persistent-sto

1. Instead of Person I'm using Transaction for the proof-of-concept, so I
have followed the above link to create 3 source files - Transaction.java,
TransactionStore.java and TransactionStoreExample.java. 

2. I'm loading cache from an Oracle database. The Transaction table has 2
million rows, each row having 30 fields and average row size is 300 bytes. 

3. This is my query in the TransactionStoreExample.java 

QueryCursor<List&lt;?>> cursor = cache.query(new SqlFieldsQuery("select id,
transactionAmount from Transaction where groupCode = ' ' and scheme = ' '
and transactionDate > '<from date>' and transactionDate < '<from date>' and
mid in ( )  order by transactionDate asc limit 100 offset 100"));

4. groupCode, scheme, transactionDate, and mid are indexed in model
Transaction.java 

5. My infrastructure is a single VM on Google Cloud (4 CPUs and 20 GB RAM)
and as per dzone example I start a server instance with spring config file
and a client instance where I run the TransactionStoreExample class. 

6. I'm timing the query by printing timestamps before and after
cursor.getAll().

7. For 2 million records I get a 1770 millis response time. 

My questions are - 
 - is this response timing expected for given setup? 
 - can this be improved? 
 - is there another way to capture query timings instead of printing
timestamps before and after cursor.getAll()?

Thanks





--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/

Reply via email to