AMashenkov commented on code in PR #6553: URL: https://github.com/apache/ignite-3/pull/6553#discussion_r2339761047
########## 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 work for DML query only if it could be rewritten to a single key-value operation. The explain plan will contains `KeyValueGet` or `KeyValueModify` node 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. Review Comment: ```suggestion 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. + See ```org.apache.ignite.client.IgniteClient.Builder#sqlPartitionAwarenessMetadataCacheSize()```. ``` -- 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]
