[ 
https://issues.apache.org/jira/browse/IGNITE-11287?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16803720#comment-16803720
 ] 

Alexander Lapin edited comment on IGNITE-11287 at 4/22/19 9:40 AM:
-------------------------------------------------------------------

Key points
 * IEP about affinity awareness 
[https://cwiki.apache.org/confluence/display/IGNITE/IEP-23%3A+Best+Effort+Affinity+for+thin+clients]
 * Within jdbc thin client affinity awareness is switched off by default. In 
order to enable it please add 'affinityAwareness=true' to connection string: 
jdbc:ignite:thin://127.0.0.1:10800..10802?affinityAwareness=true
 * Jdbc thin affinity awareness is an optimization, so almost always it should 
be transparent to user. No new exceptions are expected, etc.

Test plan draft.
 # Сheck that requests go to the expected number of nodes for different 
combinations of conditions
 ** Transactional*
 *** Without params
 **** Select
 ***** Different partition tree options(All/NONE/Group/CONST) produced by 
different query types.
 **** DML: Update, Delete

 ***** - // -
 *** With params
 **** - // -
 ** Non-Transactional
 *** - // -
 # Check that request/response functionality works fine if server response 
lacks partition result.
 # Check that partition result is supplied only in case of rendezvous affinity 
function without custom filters.
 # Check that best effort functionality works fine for different partitions 
count.
 # Сheck that a change in topology leads to jdbc thin affinity cache 
invalidation.
 ## Topology changed during partition result retrieval.
 ## Topology changed during cache distribution retrieval.
 ## Topology changed during best-effort-affinity-unrelated query.
 # Check that jdbc thin best effort affinity works fine if cache is full and 
new data still coming. For given case we probably should decrease cache 
boundaries.
 # Check that proper connection is used if set of nodes we are connected to and 
set of nodes derived from partitions
 ## Fully intersect;
 ## Partially intersect;
 ## Doesn't intersect, i.e.
||User Specified||Derived from partitons||
|host:port1 - > UUID1
 host:port2 -> UUID2|partition1 -> UUID3|

No intersection, so random connection should be used.

 # Check client reconnection after failure.
 # Check that jdbc thin best effort affinity skipped if it is switched off.

* Please, pay attention that in case of transactions we should use sticky 
connections.


was (Author: alapin):
Test plan draft.
 # Сheck that requests go to the expected number of nodes for different 
combinations of conditions
 ** Transactional
 *** Without params
 **** Select
 ***** Different partition tree options(All/NONE/Group/CONST) produced by 
different query types.
 **** Dml
 ***** - // -
 *** With params
 **** - // -
 ** Non-Transactional
 *** - // -
 # Check that request/response functionality works fine if server response 
lacks partition result.
 # Check that partition result is supplied only in case of rendezvous affinity 
function without custom filters.
 # Check that best effort functionality works fine for different partitions 
count.
 # Сheck that a change in topology leads to jdbc thin affinity cache 
invalidation.
 ## Topology changed during partition result retrieval.
 ## Topology changed during cache distribution retrieval.
 ## Topology changed during best-effort-affinity-unrelated query.
 # Check that jdbc thin best effort affinity works fine if cache is full and 
new data still coming. For given case we probably should decrease cache 
boundaries.
 # Check that proper connection is used if set of nodes we are connected to and 
set of nodes derived from partitions
 ## Fully intersect;
 ## Partially intersect;
 ## Doesn't intersect, i.e.
||User Specified||Derived from partitons||
|host:port1 - > UUID1
 host:port2 -> UUID2|partition1 -> UUID3|

No intersection, so random connection should be used.

 # Check client reconnection after failure.
 # Check that jdbc thin best effort affinity skipped if it is switched off.

> JDBC Thin: best effort affinity
> -------------------------------
>
>                 Key: IGNITE-11287
>                 URL: https://issues.apache.org/jira/browse/IGNITE-11287
>             Project: Ignite
>          Issue Type: New Feature
>          Components: jdbc
>            Reporter: Alexander Lapin
>            Assignee: Alexander Lapin
>            Priority: Major
>              Labels: iep-23, iep-24
>             Fix For: 2.8
>
>
> It's an umbrella ticket for implementing 
> [IEP-23|https://cwiki.apache.org/confluence/display/IGNITE/IEP-23%3A+Best+Effort+Affinity+for+thin+clients]
>  within the scope of JDBC Thin driver.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to