In general Ignite is designed to be used in a distributed environment when 
gigabytes or terabytes of dataset is spread across many cluster nodes and SQL 
queries executed across the cluster should be faster since resources of all the 
machines will be used and as a result a query should be completed quicker. In 
your scenario you just have only a single cluster node and in fact comparing 
performance of PostgreSQL and H2 (engine that is used by Ignite SQL) and I can 
consider that Ignite SQL can work slightly slowly but this in is not Ignite 
usage scenario.

However if you try to create a cluster of several nodes running on different 
physical machines, pre-load gigabytes of data there and compare Ignite SQL and 
PostgresSQL you should see performance improvements on Ignite side.

In any case taking into account the advise above do the following:
- execute “EXPLAIN” query to see that the index is chose properly [1];
- H2 console will allow you to see how fast a query is presently executed on a 
single node removing several Ignite layers [2];
- check if you have any GC pauses during query execution since it can affect 
execution time [3]

Also share the objects you use as keys and values.

[1] https://apacheignite.readme.io/docs/sql-queries#using-explain 
<https://apacheignite.readme.io/docs/sql-queries#using-explain>
[2] https://apacheignite.readme.io/docs/sql-queries#using-h2-debug-console 
<https://apacheignite.readme.io/docs/sql-queries#using-h2-debug-console>
[3] 
https://apacheignite.readme.io/v1.6/docs/jvm-and-system-tuning#section-detailed-garbage-collection-stats
 
<https://apacheignite.readme.io/v1.6/docs/jvm-and-system-tuning#section-detailed-garbage-collection-stats>

—
Denis

> On May 25, 2016, at 3:23 AM, Tomek W <[email protected]> wrote:
> 
> +==============================================================================================+
> |     Node ID8(@), IP      | CPUs | Heap Used | CPU Load |   Up Time   |  
> Size   | Hi/Mi/Rd/Wr |
> +==============================================================================================+
> | 0F0AAF99(@n0), 127.0.0.1 | 8    | 54.50 %   | 3.23 %   | 00:13:13:49 | 
> 3000000 | Hi: 0       |
> |                          |      |           |          |             |      
>    | Mi: 0       |
> |                          |      |           |          |             |      
>    | Rd: 0       |
> |                          |      |           |          |             |      
>    | Wr: 0       |
> +----------------------------------------------------------------------------------------------+
> 
> 
> I followed your hints. Actually, client doesn't require such many memory as 
> before - thanks for it.
> 
> 
> When it comes to configuration of server, I also followed your hints, results:
> 
> Querying is done by JDBC Client.  In ignite and postgresql I have single 
> index on column A.
> 
> Ignite: SELECT * FROM table WHERE A > 1345 takes 6s.
> Postgres: SELECT * FROM table WHERE A > 1345 takes 4s.
> 
> As you  can see, postgres is still bettter than Ignite.  I show you 
> significant fragments of my configuration:
> http://pastebin.com/EQC4JPWR <http://pastebin.com/EQC4JPWR>
> 
> And xml for server file:
> http://pastebin.com/enR9h5J4 <http://pastebin.com/enR9h5J4>
> 
> 
> Try to consider why postgresql is still better, please.
> 

Reply via email to