[
https://issues.apache.org/jira/browse/IGNITE-18848?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Evgeny Stanilovsky updated IGNITE-18848:
----------------------------------------
Fix Version/s: 3.2
(was: 3.1)
> 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.2
>
>
> 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)