[ 
https://issues.apache.org/jira/browse/IGNITE-18848?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alexander Lapin updated IGNITE-18848:
-------------------------------------
    Description: 
After the rebalancing of storages 
({*}org.apache.ignite.internal.storage.MvPartitionStorage{*} and 
{*}org.apache.ignite.internal.tx.storage.state.TxStateStorage{*}) has begun and 
before it is completed, the methods for reading and cursors will throw 
exceptions *org.apache.ignite.internal.storage.StorageRebalanceException* and 
{*}org.apache.ignite.lang.IgniteInternalException{*}(with 
{*}org.apache.ignite.lang.ErrorGroups.Transactions#TX_STATE_STORAGE_REBALANCE_ERR{*}),
 so RO transactions may fall with errors and you need to handle this somehow.
h3. Upd

As for *StorageRebalanceException* we can remap the request to some other node 
and continue data retrieval from the there. It’s an open question of how to 
move the cursor, or in other words continue the iteration from the position 
we’ve propagated to the user. As a naive solution we can cnt the amount of rows 
returned to the user and skip exact amount on cursor recreation. Better 
solutions required.

As for *IgniteInternalException* for TxnStateStorage, it seems to be about 
writeIntent resolution only, so we should retry the resolution request to new 
node. PD may help here.

  was:After the rebalancing of storages 
(*org.apache.ignite.internal.storage.MvPartitionStorage* and 
*org.apache.ignite.internal.tx.storage.state.TxStateStorage*) has begun and 
before it is completed, the methods for reading and cursors will throw 
exceptions *org.apache.ignite.internal.storage.StorageRebalanceException* and 
*org.apache.ignite.lang.IgniteInternalException*(with 
*org.apache.ignite.lang.ErrorGroups.Transactions#TX_STATE_STORAGE_REBALANCE_ERR*),
 so RO transactions may fall with errors and you need to handle this somehow.


> Error handling for RO transactions on rebalance
> -----------------------------------------------
>
>                 Key: IGNITE-18848
>                 URL: https://issues.apache.org/jira/browse/IGNITE-18848
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Kirill Tkalenko
>            Priority: Major
>              Labels: ignite-3
>             Fix For: 3.0.0-beta2
>
>
> After the rebalancing of storages 
> ({*}org.apache.ignite.internal.storage.MvPartitionStorage{*} and 
> {*}org.apache.ignite.internal.tx.storage.state.TxStateStorage{*}) has begun 
> and before it is completed, the methods for reading and cursors will throw 
> exceptions *org.apache.ignite.internal.storage.StorageRebalanceException* and 
> {*}org.apache.ignite.lang.IgniteInternalException{*}(with 
> {*}org.apache.ignite.lang.ErrorGroups.Transactions#TX_STATE_STORAGE_REBALANCE_ERR{*}),
>  so RO transactions may fall with errors and you need to handle this somehow.
> h3. Upd
> As for *StorageRebalanceException* we can remap the request to some other 
> node and continue data retrieval from the there. It’s an open question of how 
> to move the cursor, or in other words continue the iteration from the 
> position we’ve propagated to the user. As a naive solution we can cnt the 
> amount of rows returned to the user and skip exact amount on cursor 
> recreation. Better solutions required.
> As for *IgniteInternalException* for TxnStateStorage, it seems to be about 
> writeIntent resolution only, so we should retry the resolution request to new 
> node. PD may help here.



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

Reply via email to