zstan commented on code in PR #6553:
URL: https://github.com/apache/ignite-3/pull/6553#discussion_r2339083947


##########
docs/_docs/developers-guide/clients/overview.adoc:
##########
@@ -105,6 +105,88 @@ For each key that needs updating, the client will get the 
name of the node holdi
 
 NOTE: Partition awareness assumes that the cluster is stable. Client receives 
information about cluster data assignments in the background, and it may be 
outdated by the time an update is sent. If it is, nodes will automatically 
redirect requests to correct nodes until data on the client is updated.
 
+=== Limitations
+
+* Equality condition on colocation columns is required. +
+Partition awareness optimization can be applied only if the SQL query contains 
an equality condition on all colocated columns. The mandatory requirement 
allows the client to route SQL query to the node where the partition with the 
data resides. +
+
+* DML query, which can **not** be rewritten to key-value operation, are not 
supported yet. +
+This statement is more stronger comparing to previous one and require equality 
condition on all key columns.
+Partition awareness works only if the SQL query could be rewritten to a single 
key-value operation. The explain plan contains `KeyValueGet` or 
`KeyValueModify` nodes in that case.
+Bulk DML operations (like ```INSERT FROM SELECT``` or multi-values ```INSERT 
FROM VALUES```) are not supported yet.
+
+* Partition awareness cache on client may miss required metadata +
+Client node do not parse or executed query by itself, it require query 
metadata with colocation information from the server node to utilize partition 
awareness optimization. The query metadata is cached on client after the first 
query execution and can be used in later query runs. However, it also can be 
evicted due to cache eviction policies.
+
+NOTE: As for now, Partition awareness is supported for queries over single 
partition of a single table.
+
+=== How to Check if Partition Awareness is Applicable
+
+You can verify whether partition awareness is used for a given SQL query by 
inspecting the EXPLAIN command results.
+
+* The resulting plan should contain a `TableScan` node with equality 
conditions on all colocation columns of the table.
+----
+TableScan
+      table: PUBLIC.T
+      predicate: AND(=(COLOCATION_COL_1, ?), =(COLOCATION_COL_2, ?))
+----
+* or similar `IndexScan` that search bound has a prefix of all the colocation 
columns.
+----
+IndexScan

Review Comment:
   you previously write :
   "Partition awareness works only if the SQL query could be rewritten to a 
single key-value operation. The explain plan contains `KeyValueGet` or 
`KeyValueModify` nodes in that case." But this explain is not contain mention 
nodes - it contradicts ?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to