When node is local, no network interaction occurs on query send. Would be shame otherwise :)
— Alex 19 дек. 2016 г. 8:36 PM пользователь "Denis Magda" <dma...@apache.org> написал: > Dmitriy, > > According to Val and Alex P. explanations this happens when a specific > node id is set. I got confused by the code flow initially. > > — > Denis > > > On Dec 19, 2016, at 9:13 AM, Dmitriy Setrakyan <dsetrak...@apache.org> > wrote: > > > > Thanks, Alex. > > > > Can you clarify if the putAll(...) call is made directly, or from locally > > executed callable? According to Denis, "even single (non batched) updates > > or queries are sent as callables", which should be fixed in my view. > > > > D. > > > > On Mon, Dec 19, 2016 at 3:32 AM, Alexander Paschenko < > > alexander.a.pasche...@gmail.com> wrote: > > > >> Dima, Val, > >> > >> Introduction of updates has not changed public API at all (only > >> configuration, in some cases), so they work in this respect exactly > >> like SELECTs - by default they run on client node started by the > >> driver itself, but can be sent via the same callables mechanism to any > >> remote node by its id. > >> > >> So Dima, you're right, currently it's possible to send query to any > >> given node. And, at the same time, currently by default everything > >> works exactly like you want it to - that is, any MERGE, batched or > >> not, boils down to putAll, and by default this call happens locally. > >> > >> - Alex > >> > >> 2016-12-17 18:47 GMT+03:00 Dmitriy Setrakyan <dsetrak...@apache.org>: > >>> On Fri, Dec 16, 2016 at 9:53 PM, Valentin Kulichenko < > >>> valentin.kuliche...@gmail.com> wrote: > >>> > >>>> I'm not sure about updates, but can tell about how selects are > >> implemented > >>>> there. Basically, there is an option to execute the query on a > >> particular > >>>> node specified by ignite.jdbc.nodeId property. Not sure why we need > this > >>>> though, probably it's just leftover from the legacy version of the > >> driver > >>>> based on thin client. > >>>> > >>>> If the property is set, the callable is sent to a remote node. But if > >> it is > >>>> not, the same callable is created, but it is invoked directly on the > >>>> embedded client which is the behavior that you expect. And it's the > >> default > >>>> one. > >>>> > >>>> > >>> Ouch. If this is the reason, I would drop the nodeId property. I don't > >>> think it makes sense and it significantly slows down the > implementation. > >>> > >>> > >>>> -Val > >>>> > >>>> On Fri, Dec 16, 2016 at 7:51 PM, Denis Magda <dma...@apache.org> > wrote: > >>>> > >>>>> Frankly speaking, even single (non batched) updates or queries are > >> sent > >>>> as > >>>>> callables. This is what I see in the code. > >>>>> No idea what was the reason behind this design. > >>>>> > >>>>> Andrey G., Alex P. could you shed a light on this? > >>>>> > >>>>> — > >>>>> Denis > >>>>> > >>>>>> On Dec 16, 2016, at 3:08 PM, Dmitriy Setrakyan < > >> dsetrak...@apache.org> > >>>>> wrote: > >>>>>> > >>>>>> To my understanding, we are implementing JDBC batches by sending a > >>>>> callable > >>>>>> to another node. If we already have a client node on the JDBC driver > >>>>> side, > >>>>>> why not just issue a putAll(...) call from the client? > >>>>>> > >>>>>> D. > >>>>>> > >>>>>> On Fri, Dec 16, 2016 at 3:02 PM, Denis Magda <dma...@apache.org> > >>>> wrote: > >>>>>> > >>>>>>> Dmitriy, > >>>>>>> > >>>>>>> JDBC drivers spawns an Ignite client node and uses it for cluster > >>>>>>> connectivity and queries execution. Queries issued over the JDBC > >> are > >>>>> turned > >>>>>>> into SqlFieldsQueries and sent to the cluster in this form. > >>>>>>> > >>>>>>> ODBC driver works in a bit different way. It connects to the > >> cluster > >>>> via > >>>>>>> ODBC processor that needs to be running on one of the nodes: > >>>>>>> https://apacheignite.readme.io/docs/odbc-driver#cluster- > >> configuration > >>>> < > >>>>>>> https://apacheignite.readme.io/docs/odbc-driver#cluster- > >> configuration > >>>>> > >>>>>>> > >>>>>>> — > >>>>>>> Denis > >>>>>>> > >>>>>>>> On Dec 16, 2016, at 2:41 PM, Dmitriy Setrakyan < > >>>> dsetrak...@apache.org> > >>>>>>> wrote: > >>>>>>>> > >>>>>>>> Igniters, > >>>>>>>> > >>>>>>>> Can someone explain to me how Ignite executes SQL from JDBC and > >> ODBC > >>>>>>>> drivers? Do we start an Ignite client node on the driver side? Or > >> do > >>>> we > >>>>>>> use > >>>>>>>> some other protocol to send commands to one of the Ignite nodes? > >>>>>>>> > >>>>>>>> Thanks, > >>>>>>>> D. > >>>>>>> > >>>>>>> > >>>>> > >>>>> > >>>> > >> > >