ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dmitriy Setrakyan <dsetrak...@apache.org>
Subject Re: Communication from JDBC/ODBC drivers
Date Mon, 19 Dec 2016 20:44:12 GMT
Alex,

What Val and I are suggesting is that we get rid of any JdbcCallable calls
and invoke putAll(...) directly. Wrapping it into JdbcCallable will slow us
down and introduce unnecessary thread context switch.

Do you agree?

D.

On Mon, Dec 19, 2016 at 11:01 AM, Valentin Kulichenko <
valentin.kulichenko@gmail.com> wrote:

> By "locally executed callable" I meant something like this:
>
> new JdbcCallable(...).call();
>
> So it's not a network call and it's not even going through IgniteCompute.
> It's just the logic is incapsulated in the callable to support remote
> execution of the same logic.
>
> But anyway, +1 to removing nodeId property. It doesn't make much sense with
> the new implementation of JDBC.
>
> -Val
>
> On Mon, Dec 19, 2016 at 10:15 AM, Alexander Paschenko <
> alexander.a.paschenko@gmail.com> wrote:
>
> > When node is local, no network interaction occurs on query send. Would be
> > shame otherwise :)
> >
> > — Alex
> > 19 дек. 2016 г. 8:36 PM пользователь "Denis Magda" <dmagda@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 <
> dsetrakyan@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.paschenko@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 <dsetrakyan@apache.org
> >:
> > > >>> On Fri, Dec 16, 2016 at 9:53 PM, Valentin Kulichenko <
> > > >>> valentin.kulichenko@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 <dmagda@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 <
> > > >> dsetrakyan@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 <dmagda@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
<
> > > >>>> dsetrakyan@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.
> > > >>>>>>>
> > > >>>>>>>
> > > >>>>>
> > > >>>>>
> > > >>>>
> > > >>
> > >
> > >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message