You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ignite.apache.org by "igor.tanackovic" <ig...@gmail.com> on 2018/10/17 15:41:00 UTC

SQL Engine

Hello,

Seems that SQL engine always deserialize whole objects instead of using just
SQL enabled fields (annotated with @QuerySqlField). This may have a huge
impact on Ignite heap usage and GC overhead as well. 

For example, we have a cache holding big objects but with only two sql query
fields which for each query execution (SELECT COUNT(*) FROM 'cache')
consumes large amount on heap memory (~300MB). As a proof of concept, we
decided the same cache to *index* cache with only sql query field and a
*data* holding whole object for materialization. The same query (SELECT
COUNT(*) FROM 'index-cache') consumes ~25 time less memory! The same is true
for all other queries.

The obvious workaround would be to always have separated regions for indexes
(sql query enabled region) and a data/value region for materialization, but
it might be a good idea to fix this in a systematic way during off heap
deserialization.

Regards,
Igor 



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

Re: SQL Engine

Posted by Igor Tanackovic <ig...@gmail.com>.
Thx… moved to dev list.


Regards,
Igor

> On Oct 17, 2018, at 6:10 PM, aealexsandrov <ae...@gmail.com> wrote:
> 
> Hi Igor,
> 
> I think that optimizationd for Ignite better to discuss it on the Apache
> Ignite Developer list:
> 
> http://apache-ignite-developers.2346864.n4.nabble.com/
> 
> BR,
> Andrei
> 
> 
> 
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/


Re: SQL Engine

Posted by aealexsandrov <ae...@gmail.com>.
Hi Igor,

I think that optimizationd for Ignite better to discuss it on the Apache
Ignite Developer list:

http://apache-ignite-developers.2346864.n4.nabble.com/

BR,
Andrei



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