Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id BE4C4200BE1 for ; Mon, 19 Dec 2016 12:32:18 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id BCD5E160B21; Mon, 19 Dec 2016 11:32:18 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id E0D20160B18 for ; Mon, 19 Dec 2016 12:32:17 +0100 (CET) Received: (qmail 58238 invoked by uid 500); 19 Dec 2016 11:32:17 -0000 Mailing-List: contact dev-help@ignite.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ignite.apache.org Delivered-To: mailing list dev@ignite.apache.org Received: (qmail 58221 invoked by uid 99); 19 Dec 2016 11:32:16 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 19 Dec 2016 11:32:16 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 24E51C0090 for ; Mon, 19 Dec 2016 11:32:16 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -0.121 X-Spam-Level: X-Spam-Status: No, score=-0.121 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd1-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id jFllXKSJ8r5C for ; Mon, 19 Dec 2016 11:32:15 +0000 (UTC) Received: from mail-yw0-f177.google.com (mail-yw0-f177.google.com [209.85.161.177]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id E21F85FBC1 for ; Mon, 19 Dec 2016 11:32:14 +0000 (UTC) Received: by mail-yw0-f177.google.com with SMTP id i145so64314791ywg.2 for ; Mon, 19 Dec 2016 03:32:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-transfer-encoding; bh=+nIunk2Lrf866vvqTavmTdJsb0fAsXqd1eIqo2l6+0M=; b=aJ8lW6idGmKwQl0WThxnoC32RcmUbkQTAYAoNjrOrJjWi3QWfZ+U/TMt0lNxO8GKfO Uja3CZziXGJOemvL9gTmdGakyYEhKFp/fUny/vM++15LPa/iqOhLx4zXqElMWQxP42tv JM8JDEzPn3Qe9/qcHn710hJaIwXBg0qhl3F8/q830TbIQZ6u9/5ZZtmqUgMsl68eUprw rbmK4lhYvKeiONZutNopBZ4azwO82KqKtwkKShcr+5kAQ+AhWVlaMkxgZjB1TCsmujKH IKigEf536CQCTdVJOvHRU7Cgrz6MQo/9PjKRmo2A4euskWYpQUFEk2AR3t8p1X39AS2S EMNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:content-transfer-encoding; bh=+nIunk2Lrf866vvqTavmTdJsb0fAsXqd1eIqo2l6+0M=; b=LCEXN7LOPNmfWU1GL12aYWmhbg7/70HDt8ryXX/ac8e7rH35SoW6n5EREU8s9zyJ8W 3ZUBKtsgGNd2hm0cAAuMuRrcnbzjTnhqUIYRQsuRgiR+2Cab/v0HBo3oIV1gpQcIMIvy OrTiYoUHgOAWcgNG45rC7ULFHLUqxWetw7AISr/onBZY9dNfy3RDpqMZTKE268BccwJN DboTAF9xpp+pnTBx5z2Yz5b8yjoz6naKFxaxhjgW2/plwmsccLC5i6E6yWjTjIvhBIWs OKj2cS/7SbdvM3v+K9jYmxNv3KHLXQo3tbCkaStNUi/Q5mjw4Nlt9GHL8B9nWPX3llsO 3EWA== X-Gm-Message-State: AKaTC02NSw5qJ8b0qJZ6ZRBadkh71jX7VHXMwQ1b3mBjp6iH/j1RAmeLXYoBsg5TQ0Vdwh+0O3L7SNMwQ3vBRg== X-Received: by 10.13.226.13 with SMTP id l13mr12939837ywe.77.1482147134415; Mon, 19 Dec 2016 03:32:14 -0800 (PST) MIME-Version: 1.0 Received: by 10.129.110.70 with HTTP; Mon, 19 Dec 2016 03:32:13 -0800 (PST) In-Reply-To: References: <0B7F19C7-231D-4C3F-83C6-D232059B8CF9@apache.org> <759FAA7E-FB31-4449-BE35-C7C597E3731C@apache.org> From: Alexander Paschenko Date: Mon, 19 Dec 2016 14:32:13 +0300 Message-ID: Subject: Re: Communication from JDBC/ODBC drivers To: dev@ignite.apache.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable archived-at: Mon, 19 Dec 2016 11:32:18 -0000 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 : > 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 implement= ed >> there. Basically, there is an option to execute the query on a particula= r >> 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 drive= r >> 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 defa= ult >> 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 wrote: >> >> > Frankly speaking, even single (non batched) updates or queries are sen= t >> 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? >> > >> > =E2=80=94 >> > Denis >> > >> > > On Dec 16, 2016, at 3:08 PM, Dmitriy Setrakyan >> > 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 >> wrote: >> > > >> > >> Dmitriy, >> > >> >> > >> JDBC drivers spawns an Ignite client node and uses it for cluster >> > >> connectivity and queries execution. Queries issued over the JDBC ar= e >> > turned >> > >> into SqlFieldsQueries and sent to the cluster in this form. >> > >> >> > >> ODBC driver works in a bit different way. It connects to the cluste= r >> via >> > >> ODBC processor that needs to be running on one of the nodes: >> > >> https://apacheignite.readme.io/docs/odbc-driver#cluster-configurati= on >> < >> > >> https://apacheignite.readme.io/docs/odbc-driver#cluster-configurati= on >> > >> > >> >> > >> =E2=80=94 >> > >> 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 OD= BC >> > >>> 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. >> > >> >> > >> >> > >> > >>