ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Taras Ledkov <tled...@gridgain.com>
Subject Re: [DISCUSS] Query API for Ignite 3.0
Date Tue, 06 Apr 2021 12:57:54 GMT
Hi, Ivan.

My comments are inline.

In general about JDBC native API:
I see no reasons why a user must use different query APIs on the client 
and on the server node (e.g. inside services or jobs).
It is complicate and not user-friendly.


>>> 1.1. Thin JDBC client will be really thin: provide network communication
> layer and transparently map to native API.
> But we have already this in AI 2.x
Not complete.
JDBC thin is a implementation of the JDBC specification. But it uses 
Query API `query(SqlFieldsQuery)`.
I see no reason to introduce new internal query API for 3.0 and wrap it 
into JDBC again.
May be we try to use JDBC as native query API?
This way doesn't prohibit to use any internal extension if need.

>>> 1.2. Thick JDBC client implementation will be trivial: start client node
> and open JDBC connection on the started node.
> We have already this in AI 2.x and IMHO this functionality is weird and
> need to be removed. No one wants to start new node from DBeaver :)

I guess it will be removed on Ignite 2.x because implementation is weird 
(due to legacy).


>>> 1.3 JDBC provides sufficient functionality to implement ODBC (need to
> investigate: may be thin protocol may be extended to unify JDBC and ODBC).
> We already have this in AI 2.x (JDBC and ODBC is mostly unified)
It is absolutely wrong.
ODBC, JDBC and thin client use the same port and unified head of the 
handshake message.
The protocols are different a lot.


On 06.04.2021 15:40, Ivan Daschinsky wrote:
> Hi Taras!
>>> 1.1. Thin JDBC client will be really thin: provide network communication
> layer and transparently map to native API.
> But we have already this in AI 2.x
>>> 1.2. Thick JDBC client implementation will be trivial: start client node
> and open JDBC connection on the started node.
> We have already this in AI 2.x and IMHO this functionality is weird and
> need to be removed. No one wants to start new node from DBeaver :)
>>> 1.3 JDBC provides sufficient functionality to implement ODBC (need to
> investigate: may be thin protocol may be extended to unify JDBC and ODBC).
> We already have this in AI 2.x (JDBC and ODBC is mostly unified)
>
>
> вт, 6 апр. 2021 г. в 15:05, Taras Ledkov <tledkov@gridgain.com>:
>
>> Hi,
>>
>> Ignite 3.0 requires a rethinking of the query API.
>> We have 'cache.query()' and 'SqlFieldQuery' abstractions at the Ignite
>> 2.x native API and several JDBC implementation for clients.
>>
>> I propose to think about new query/SQL API for the Ignite 3.0.
>>
>> My vision is something like this:
>> Ignite will support two query APIs: standard JDBC (on native) and one of
>> reactive DB API.
>>
>> 1. Native JDBC API, e.g.:
>>       Connection conn = node.sql().connection(props);
>>
>> JDBC is the industrial standard of the DB access and we have to support
>> one.
>> Also:
>> 1.1. Thin JDBC client will be really thin: provide network communication
>> layer and transparently map to native API.
>> 1.2. Thick JDBC client implementation will be trivial: start client node
>> and open JDBC connection on the started node.
>> 1.3. JDBC provides sufficient functionality to implement ODBC (need to
>> investigate: may be thin protocol may be extended to unify JDBC and ODBC).
>>
>> 2. About reactive DB API.
>> I don't know of any industrial standard API for DB reactive access now.
>> There are several candidates:
>> 2.1. R2DBC look like the popular and alive. See [1];
>> 2.2. ADBA (java.sql2 [2]) looks like not alive. Not sure;
>> 2.3. Custom async/reactive API.
>> e.g. oracle DB use this way [3].
>>
>> Igniters, WDYT?
>>
>> [1]. https://github.com/r2dbc/r2dbc-spi
>> [2].
>> http://cr.openjdk.java.net/~lancea/apidoc/java/sql2/package-summary.html
>> [3].
>>
>> https://docs.oracle.com/en/database/oracle/oracle-database/21/jjdbc/jdbc-reactive-extensions.html#GUID-1C40C43B-3823-4848-8B5A-D2F97A82F79B
>>
>> --
>> Taras Ledkov
>> Mail-To: tledkov@gridgain.com
>>
>>
-- 
Taras Ledkov
Mail-To: tledkov@gridgain.com


Mime
View raw message