Hi,
I have an Ignite cluster with 3rd party persistence enabled (Postgres db).
My service is reading all data from the Ignite which contains ~20 caches.
Loadtests revealed horrible performance - the app which reads data from
Ignite has requests throughput which is in 3-4x lower than in the same app
which reads data directly from Postgres (the same service logic, but 1st app
reads data from Ignite, 2nd one - directly from Postgres)
There is no much data in the cluster - up to 2000 records in the biggest
tables, most of the tables contain up to 100 records. I tried the same with
a database which has millions of records but performance expectedly worse,
so I wanted to figure out what is going on using small db first
The following things helped to increase performance a little bit:
- increasing thread pool zise
<bean class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="systemThreadPoolSize" value="64"/>
<property name="queryThreadPoolSize" value="64"/>
....
- using ATOMIC atomicityMode instead of TRANSCTIONAL for most of caches
It hasn't helped much so I decided to profile all running queries
I've enabled metrics
https://www.gridgain.com/docs/latest/administrators-guide/monitoring-metrics/configuring-metrics
But when I look at SYS.SQL_QUERIES_HISTORY table I didn't find details about
99% of queries which were running in the cluster. Why? What I'm doing wrong?
--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/