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

Igor Sapego commented on IGNITE-19242:
--------------------------------------

Let's put this ticket on hold for now as there is an issue that this ticket are 
not solving.
The problem: client receives new schema version (if any) on every tuple 
operation with the given table. However, this is too late:
# var view = client.tables().table("FOO").recordView(); view.upsert(...) - now 
client knows schema v1
# client.sql().exec("ALTER TABLE FOO ADD COLUMN NEWCOL INT"); - client alters 
the table, but does not know about schema v2 with new column
# view.upsert(Tuple.create().set("key", 1).set("NEWCOL", 100)) - v1 is used to 
send data to the server, NEWCOL is ignored, data is lost. Response says that 
schema v2 is available, but alas.

> .NET: Thin 3.0: propagate table schema updates to client on write-only 
> operations
> ---------------------------------------------------------------------------------
>
>                 Key: IGNITE-19242
>                 URL: https://issues.apache.org/jira/browse/IGNITE-19242
>             Project: Ignite
>          Issue Type: Improvement
>          Components: thin client
>    Affects Versions: 3.0.0-beta1
>            Reporter: Pavel Tupitsyn
>            Assignee: Pavel Tupitsyn
>            Priority: Major
>              Labels: ignite-3
>             Fix For: 3.0.0-beta2
>
>
> Currently, .NET client receives table schema updates when write-read requests 
> are performed. For example, client performs TUPLE_GET request, sends key 
> tuple using old schema version, receives result tuple with the latest schema 
> version, and retrieves the latest schema.
> However, some requests are "write-only": client sends a tuple, but does not 
> receive one back, like TUPLE_UPSERT. No schema updates are performed in this 
> case.
> To fix this, include the latest schema version into all write-only operation 
> responses:
> * TUPLE_UPSERT
> * TUPLE_UPSERT_ALL
> * TUPLE_INSERT
> * TUPLE_INSERT_ALL
> * TUPLE_REPLACE
> * TUPLE_REPLACE_EXACT
> * TUPLE_DELETE
> * TUPLE_DELETE_ALL
> * TUPLE_DELETE_EXACT
> * TUPLE_DELETE_ALL_EXACT
> * TUPLE_CONTAINS_KEY
> Client will compare this version to the known one and perform a background 
> update, if necessary.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to