ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sergey Kozlov <skoz...@gridgain.com>
Subject Collocated/replicatedOnly flags for Thin JDBC driver
Date Thu, 14 Nov 2019 11:23:53 GMT
Hi, Igniters

During testing Thin JDBC Driver I found some interesting things that would
be good to discuss:

collocated flag
==============

The flag helps to optimize query against collocated data in advance. We've
following:
1. Simple queries against single tables return weird results [3]. It means
that either a connection has reset every switch collocated/non-collocated
requests or make two connections for collocated and collocated
requests respectively.
2. *distrubitedJoins *flag mostly covers the cases:
 - if it is true we don't concern how the data distributed over cluster
 - if not we always operate local data no matter it's collocated or not
3. There was an activity to remove it but  it was cancelled [2].


replicatedOnly flag
===============

The flag helps to optimize query against replicated tables (caches) and
query always operates local data.
1. But why can't we find at preparing the request for execution?
2. For PRIMARY_SYNC cache mode using local node data may lead to
inconsistent results. Thus it may be implemented as an explicit hint for a
query if user want to do that and accept the possible risks or just re-use
*distrubitedJoins=false*.
3. Same concern that it used per JDBC connection and required reconnect for
change the flag.

I guess both flags should be deprecated and removed (2.8?).

Ideally *distrubitedJoins *should be removed as well and replaced by query
hints (default *distrubitedJoins=true*)

1. https://apacheignite-sql.readme.io/docs/jdbc-driver
2. https://issues.apache.org/jira/browse/IGNITE-6296
3. https://issues.apache.org/jira/browse/IGNITE-12372
-- 
Sergey Kozlov
GridGain Systems
www.gridgain.com

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