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<?>> 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/