| How many entries are downloaded to the client in both cases?
3000 000

| Do the both queries involve network I/O ?
No, I have only local one server (for testing purpose).


2016-05-25 9:59 GMT+02:00 Alexei Scherbakov <[email protected]>:

> SELECT * is not really a good test query.
> It's result can be affected not only by engine performance.
>
> How many entries are downloaded to the client in both cases?
> Do the both queries involve network I/O ?
>
> 2016-05-25 7:58 GMT+03:00 Denis Magda <[email protected]>:
>
>> 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
>> [2]
>> 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
>>
>> —
>> 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
>>
>> And xml for server file:
>> http://pastebin.com/enR9h5J4
>>
>>
>> Try to consider why postgresql is still better, please.
>>
>>
>>
>
>
> --
>
> Best regards,
> Alexei Scherbakov
>

Reply via email to