Alex, I think we have to create an issue in Jira. This behavior looks suboptimal to me.
Sergi 2017-04-13 15:12 GMT+03:00 afedotov <alexander.fedot...@gmail.com>: > Charles, > > In your case, you have many caches registered on server nodes (debug shows > me about 80) which are to be created on > the client. These caches don't participate in common activities, instead > they are used to prepare execution plan. > As for now, a separate request is sent to remote nodes for each > unregistered cache. > You can use client mode, but you need to register all the missing caches > before running queries. > After loading missing caches explicitly the time reduced to 50-60ms in > client mode. > > I've used a trick to avoid declaring all the caches in configuration file > or calling getOrCreateCache for each of them. > To give it a try, just add the line below before the queries execution > logic in your example. > IgniteStorage.getInstance().getIgniteCache(Quote.class.getName(), 0 > ).unwrap(IgniteCacheProxy.class).context().kernalContext(). > cache().createMissingCaches(); > > Kind regards, > Alex. > > On Thu, Apr 13, 2017 at 10:08 AM, woo charles [via Apache Ignite Users] > <[hidden > email] <http:///user/SendEmail.jtp?type=node&node=11941&i=0>> wrote: > >> "If you select some data from the joined table it leads to all dynamic >> cache creation requests being sent" <-- is that mean the client node will >> copy the selected table to local? >> >> If I set false to client mode, it will become server node and >> start participate in caching, compute execution, stream processing, etc., >> Then it will affect the performance of my client program. How can I >> prevent this? >> >> 2017-04-13 14:24 GMT+08:00 afedotov <[hidden email] >> <http:///user/SendEmail.jtp?type=node&node=11926&i=0>>: >> >>> Hi, >>> >>> Sergi, when join query is called from client >>> It leads to createMissingCaches being called which makes a remote >>> requests of a dynamic cache creation for each registered but not enabled >>> cache and since there is a cache for each entity there are many requests to >>> server nodes. >>> >>> Charles, >>> If you select some data from the joined table it leads to all dynamic >>> cache creation requests being sent therefore allowing to skip these on the >>> next query runs. >>> To disable client mode in your example just pass false to >>> Ignition.setClientMode(true) >>> >>> Kind regards, >>> Alex >>> >>> >>> >>> 13 апр. 2017 г. 5:22 AM пользователь "woo charles [via Apache Ignite >>> Users]" <[hidden email] >>> <http:///user/SendEmail.jtp?type=node&node=11925&i=0>> написал: >>> >>> I found that this time can be reduced to a value below 100ms if I >>> already selected some data from join query related table. >>> For example, >>> if I run 2 query "select * from Quote where stock_id = xxx" & "Select * >>> from StockInfo where stock_id = xxx" first and then run the join query, >>> the time for 1st join query will become similar to other(around 10 -20 >>> ms). >>> Why will it happen? >>> >>> Also, How to run queries from a server node? I had try >>> "ignite.compute().run()" but it doesn't work. >>> >>> >>> thanks& best regards, >>> Charles >>> >>> 2017-04-13 0:48 GMT+08:00 Sergi Vladykin <[hidden email] >>> <http:///user/SendEmail.jtp?type=node&node=11922&i=0>>: >>> >>>> Alex, >>>> >>>> Why do we have such a huge difference between client nodes and server >>>> nodes? Looks like we should fix it if possible. Even 7 seconds looks too >>>> much for me. >>>> >>>> Sergi >>>> >>>> 2017-04-12 18:11 GMT+03:00 afedotov <[hidden email] >>>> <http:///user/SendEmail.jtp?type=node&node=11922&i=1>>: >>>> >>>>> Hi Charles, >>>>> >>>>> You are running the query from a client node what implies additional >>>>> network round trips. >>>>> Try to run queries from a server node. In my environment it reduced >>>>> the time from about 7 seconds to 220ms for the first run. >>>>> >>>>> Kind regards, >>>>> Alex. >>>>> >>>>> On Wed, Apr 12, 2017 at 9:21 AM, woo charles [via Apache Ignite Users] >>>>> <[hidden email] <http:///user/SendEmail.jtp?type=node&node=11908&i=0>> >>>>> wrote: >>>>> >>>>>> *Sorry for wrong calculation * >>>>>> *-> (i.e. 3 Server node stored 236MB [2.2MB * 20 table +3.2MB * 60 >>>>>> table] data)* >>>>>> >>>>>> *Best Regards,* >>>>>> *Charles* >>>>>> >>>>>> 2017-04-12 10:17 GMT+08:00 woo charles <[hidden email] >>>>>> <http:///user/SendEmail.jtp?type=node&node=11896&i=0>>: >>>>>> >>>>>>> *Source >>>>>>> code: https://drive.google.com/open?id=0B_-zUEFkybdLQVF4U2dwTE11ajA >>>>>>> <https://drive.google.com/open?id=0B_-zUEFkybdLQVF4U2dwTE11ajA>* >>>>>>> >>>>>>> *Below is a screen cap on GridGain's web console & the log of my >>>>>>> client program. * >>>>>>> *(i.e. 3 Server node stored 756MB [2.2MB * 10 table +3.2MB * 30 >>>>>>> table] data)* >>>>>>> [image: 內置圖片 2] >>>>>>> >>>>>>> Apr 12, 2017 9:50:10 AM java.util.logging.LogManager$RootLogger log >>>>>>> SEVERE: Failed to resolve default logging config file: >>>>>>> config/java.util.logging.properties >>>>>>> [09:50:10] __________ ________________ >>>>>>> [09:50:10] / _/ ___/ |/ / _/_ __/ __/ >>>>>>> [09:50:10] _/ // (7 7 // / / / / _/ >>>>>>> [09:50:10] /___/\___/_/|_/___/ /_/ /___/ >>>>>>> [09:50:10] >>>>>>> [09:50:10] ver. 1.8.0#20161205-sha1:9ca40dbe >>>>>>> [09:50:10] 2016 Copyright(C) Apache Software Foundation >>>>>>> [09:50:10] >>>>>>> [09:50:10] Ignite documentation: http://ignite.apache.org >>>>>>> [09:50:10] >>>>>>> [09:50:10] Quiet mode. >>>>>>> [09:50:10] ^-- To see **FULL** console log here add >>>>>>> -DIGNITE_QUIET=false or "-v" to ignite.{sh|bat} >>>>>>> [09:50:10] >>>>>>> [09:50:10] OS: Linux 3.10.0-123.el7.x86_64 amd64 >>>>>>> [09:50:10] VM information: Java(TM) SE Runtime Environment >>>>>>> 1.8.0_121-b13 Oracle Corporation Java HotSpot(TM) 64-Bit Server VM >>>>>>> 25.121-b13 >>>>>>> [09:50:10] Initial heap size is 128MB (should be no less than 512MB, >>>>>>> use -Xms512m -Xmx512m). >>>>>>> [09:50:10] Configured plugins: >>>>>>> [09:50:10] ^-- None >>>>>>> [09:50:10] >>>>>>> [09:50:10] Security status [authentication=off, tls/ssl=off] >>>>>>> [09:50:11] To start Console Management & Monitoring run >>>>>>> ignitevisorcmd.{sh|bat} >>>>>>> [09:50:11] >>>>>>> [09:50:11] Ignite node started OK (id=b663472c) >>>>>>> [09:50:11] Topology snapshot [ver=19, servers=3, clients=1, CPUs=8, >>>>>>> heap=3.1GB] >>>>>>> PreLoadDataSize = 10000 >>>>>>> NumOfTest = 2 >>>>>>> /----------------------- Test 0 -----------------------\ >>>>>>> Name = SQL_Select_2_Join_10 >>>>>>> ActionType = SQL_SELECT_2_JOIN >>>>>>> Object class = com.performance.test.dao.Quote >>>>>>> Thread Size = 80 >>>>>>> [09:50:20] New version is available at ignite.apache.org: 1.9.0 >>>>>>> MaxTime(First Time): 12710 >>>>>>> Thread [SQL_Select_2_Join_10] Average Time: 18.913ms - 0.018913s, >>>>>>> Max Time: 183ms >>>>>>> \-----------------------------------------------------/ >>>>>>> /----------------------- Test 1 -----------------------\ >>>>>>> Name = QUERY_Quote_price_large_1000_Small_950 >>>>>>> ActionType = QUERY >>>>>>> Object class = com.performance.test.dao.Quote >>>>>>> Thread Size = 80 >>>>>>> MaxTime(First Time): 30 >>>>>>> Thread [QUERY_Quote_price_large_1000_Small_950] Average Time: >>>>>>> 118.752ms - 0.118752s, Max Time: 1094ms >>>>>>> \-----------------------------------------------------/ >>>>>>> >>>>>>> *Also, I found that 1st **SQL J**oin query time reduced about 2 - >>>>>>> 3s if my program's memory **increase** from 128mb to 1gb.* >>>>>>> *Is it show that this problem is due to client side not server side?* >>>>>>> >>>>>>> *Best Regards,* >>>>>>> *Charles* >>>>>>> >>>>>>> >>>>>>> 2017-04-11 23:29 GMT+08:00 afedotov <[hidden email] >>>>>>> <http:///user/SendEmail.jtp?type=node&node=11896&i=1>>: >>>>>>> >>>>>>>> I'm not able to reproduce the timings you specified. Probably I do >>>>>>>> something wrong. >>>>>>>> Could you please provide a log for that case? >>>>>>>> Also, it would be of great help if you provide the reproducer >>>>>>>> sources. >>>>>>>> >>>>>>>> Kind regards, >>>>>>>> Alex. >>>>>>>> >>>>>>>> On Tue, Apr 11, 2017 at 4:57 AM, woo charles [via Apache Ignite >>>>>>>> Users] <[hidden email] >>>>>>>> <http:///user/SendEmail.jtp?type=node&node=11889&i=0>> wrote: >>>>>>>> >>>>>>>>> My testing program: https://drive.google.com/open? >>>>>>>>> id=0B_-zUEFkybdLcW5LR3RXZnJfOFE >>>>>>>>> >>>>>>>>> It runs on linux system with 8cpu 24gb ram. >>>>>>>>> 3 Server node(each 1 gb) are created. >>>>>>>>> 20 set tables created(ie. 1 set table contain table >>>>>>>>> Quote, StockInfo, BidAskBrokerQueue, PreviousQuote which mean 20*4 = >>>>>>>>> 80 >>>>>>>>> table created) >>>>>>>>> Each table will insert 10000 records. >>>>>>>>> >>>>>>>>> After inserted data, sql join "select q.stock_id, q.price , >>>>>>>>> s.symbol from Quote0.Quote as q, StockInfo0.StockInfo as s where >>>>>>>>> q.stock_id = s.stock_id and q.stock_id = XXX" is perform. >>>>>>>>> >>>>>>>>> And about 13s is needed for the first sql query. >>>>>>>>> >>>>>>>>> >>>>>>>>> 2017-04-10 14:53 GMT+08:00 Sergi Vladykin <[hidden email] >>>>>>>>> <http:///user/SendEmail.jtp?type=node&node=11870&i=0>>: >>>>>>>>> >>>>>>>>>> I think 13s is still too much. Can you share a reproducer? >>>>>>>>>> >>>>>>>>>> Sergi >>>>>>>>>> >>>>>>>>>> 2017-04-10 9:51 GMT+03:00 afedotov <[hidden email] >>>>>>>>>> <http:///user/SendEmail.jtp?type=node&node=11870&i=1>>: >>>>>>>>>> >>>>>>>>>>> Hello, >>>>>>>>>>> >>>>>>>>>>> That is an expected behavior. On the first run a query is parsed >>>>>>>>>>> and metadata is built for it what takes some additional time >>>>>>>>>>> compared to >>>>>>>>>>> the following runs. >>>>>>>>>>> >>>>>>>>>>> Kind regards, >>>>>>>>>>> Alex >>>>>>>>>>> >>>>>>>>>>> 10 апр. 2017 г. 8:13 AM пользователь "woo charles [via Apache >>>>>>>>>>> Ignite Users]" <[hidden email] >>>>>>>>>>> <http:///user/SendEmail.jtp?type=node&node=11848&i=0>> написал: >>>>>>>>>>> >>>>>>>>>>>> Hi, >>>>>>>>>>>> >>>>>>>>>>>> I set up 3 Server nodes(8 cpu, 1gb ram) in the same server. >>>>>>>>>>>> 2 table each 10000 rows are entered. >>>>>>>>>>>> >>>>>>>>>>>> When I perform a *SQL Join* query on two table and run it 100 >>>>>>>>>>>> times, I found that the first query is much slower than other(i.e. >>>>>>>>>>>> First >>>>>>>>>>>> query used 13s & other used around 0.02s). >>>>>>>>>>>> >>>>>>>>>>>> Why will it happen? >>>>>>>>>>>> Can I reduce the running time on 1st query? >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> ------------------------------ >>>>>>>>>>>> If you reply to this email, your message will be added to the >>>>>>>>>>>> discussion below: >>>>>>>>>>>> http://apache-ignite-users.70518.x6.nabble.com/Slow-on-1st-t >>>>>>>>>>>> ime-query-SQL-Join-tp11847.html >>>>>>>>>>>> To start a new topic under Apache Ignite Users, email [hidden >>>>>>>>>>>> email] <http:///user/SendEmail.jtp?type=node&node=11848&i=1> >>>>>>>>>>>> To unsubscribe from Apache Ignite Users, click here. >>>>>>>>>>>> NAML >>>>>>>>>>>> <http://apache-ignite-users.70518.x6.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> ------------------------------ >>>>>>>>>>> View this message in context: Re: Slow on 1st time query "SQL >>>>>>>>>>> Join" >>>>>>>>>>> <http://apache-ignite-users.70518.x6.nabble.com/Slow-on-1st-time-query-SQL-Join-tp11847p11848.html> >>>>>>>>>>> Sent from the Apache Ignite Users mailing list archive >>>>>>>>>>> <http://apache-ignite-users.70518.x6.nabble.com/> at Nabble.com. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> ------------------------------ >>>>>>>>> If you reply to this email, your message will be added to the >>>>>>>>> discussion below: >>>>>>>>> http://apache-ignite-users.70518.x6.nabble.com/Slow-on-1st-t >>>>>>>>> ime-query-SQL-Join-tp11847p11870.html >>>>>>>>> To start a new topic under Apache Ignite Users, email [hidden >>>>>>>>> email] <http:///user/SendEmail.jtp?type=node&node=11889&i=1> >>>>>>>>> To unsubscribe from Apache Ignite Users, click here. >>>>>>>>> NAML >>>>>>>>> <http://apache-ignite-users.70518.x6.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> ------------------------------ >>>>>>>> View this message in context: Re: Slow on 1st time query "SQL Join" >>>>>>>> <http://apache-ignite-users.70518.x6.nabble.com/Slow-on-1st-time-query-SQL-Join-tp11847p11889.html> >>>>>>>> Sent from the Apache Ignite Users mailing list archive >>>>>>>> <http://apache-ignite-users.70518.x6.nabble.com/> at Nabble.com. >>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> ------------------------------ >>>>>> If you reply to this email, your message will be added to the >>>>>> discussion below: >>>>>> http://apache-ignite-users.70518.x6.nabble.com/Slow-on-1st-t >>>>>> ime-query-SQL-Join-tp11847p11896.html >>>>>> To start a new topic under Apache Ignite Users, email [hidden email] >>>>>> <http:///user/SendEmail.jtp?type=node&node=11908&i=1> >>>>>> To unsubscribe from Apache Ignite Users, click here. >>>>>> NAML >>>>>> <http://apache-ignite-users.70518.x6.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> >>>>>> >>>>> >>>>> >>>>> ------------------------------ >>>>> View this message in context: Re: Slow on 1st time query "SQL Join" >>>>> <http://apache-ignite-users.70518.x6.nabble.com/Slow-on-1st-time-query-SQL-Join-tp11847p11908.html> >>>>> Sent from the Apache Ignite Users mailing list archive >>>>> <http://apache-ignite-users.70518.x6.nabble.com/> at Nabble.com. >>>>> >>>> >>>> >>> >>> >>> ------------------------------ >>> If you reply to this email, your message will be added to the discussion >>> below: >>> http://apache-ignite-users.70518.x6.nabble.com/Slow-on-1st-t >>> ime-query-SQL-Join-tp11847p11922.html >>> To start a new topic under Apache Ignite Users, email [hidden email] >>> <http:///user/SendEmail.jtp?type=node&node=11925&i=1> >>> To unsubscribe from Apache Ignite Users, click here. >>> NAML >>> <http://apache-ignite-users.70518.x6.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> >>> >>> >>> >>> *first_run_from_client.png* (119K) Download Attachment >>> <http://apache-ignite-users.70518.x6.nabble.com/attachment/11925/0/first_run_from_client.png> >>> *first_run_from_client.png* (119K) Download Attachment >>> <http://apache-ignite-users.70518.x6.nabble.com/attachment/11925/1/first_run_from_client.png> >>> >>> ------------------------------ >>> View this message in context: Re: Slow on 1st time query "SQL Join" >>> <http://apache-ignite-users.70518.x6.nabble.com/Slow-on-1st-time-query-SQL-Join-tp11847p11925.html> >>> Sent from the Apache Ignite Users mailing list archive >>> <http://apache-ignite-users.70518.x6.nabble.com/> at Nabble.com. >>> >> >> >> >> ------------------------------ >> If you reply to this email, your message will be added to the discussion >> below: >> http://apache-ignite-users.70518.x6.nabble.com/Slow-on-1st- >> time-query-SQL-Join-tp11847p11926.html >> To start a new topic under Apache Ignite Users, email [hidden email] >> <http:///user/SendEmail.jtp?type=node&node=11941&i=1> >> To unsubscribe from Apache Ignite Users, click here. >> NAML >> <http://apache-ignite-users.70518.x6.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> >> > > > ------------------------------ > View this message in context: Re: Slow on 1st time query "SQL Join" > <http://apache-ignite-users.70518.x6.nabble.com/Slow-on-1st-time-query-SQL-Join-tp11847p11941.html> > Sent from the Apache Ignite Users mailing list archive > <http://apache-ignite-users.70518.x6.nabble.com/> at Nabble.com. >