[ https://issues.apache.org/jira/browse/IGNITE-23747?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Roman Puchkovskiy updated IGNITE-23747: --------------------------------------- Description: TransactionOptions allows to specify a transaction timeout, but the timeout is not handled; even more, if it's set, an attempt to start a transaction fails because timeouts are not supported yet. We should support timeouts for RO transactions. For an RO transaction, a timeout defines maximum amount of time the transaction can hold LWMs on nodes participating in the transaction. That is, on any such node its local LWM can be held/locked only until txBeginTime + txTimeout (txBeginTime can be extracted from transactionId). If the user did not specify a timeout in TransactionOptions or did not provide TransactionOptions when creating an RO transaction, a default timeout is used (which is proposed to be equal to dataAvailabilityTime). Definition of done: # It's possible to start an RO transaction with a timeout # When registering an RO transaction with a local LWM, its timeout defines the moment when the registration will automatically be cancelled (allowing the LWM to proceed and making the transaction expired on this node) # A default timeout is used if not provided by the user (it is equal to ignite.transaction.timeout defaulting to 10 seconds) was: TransactionOptions allows to specify a transaction timeout, but the timeout is not handled; even more, if it's set, an attempt to start a transaction fails because timeouts are not supported yet. We should support timeouts for RO transactions. For an RO transaction, a timeout defines maximum amount of time the transaction can hold LWMs on nodes participating in the transaction. That is, on any such node its local LWM can be held/locked only until txBeginTime + txTimeout (txBeginTime can be extracted from transactionId). If the user did not specify a timeout in TransactionOptions or did not provide TransactionOptions when creating an RO transaction, a default timeout is used (which is proposed to be equal to dataAvailabilityTime). Definition of done: # It's possible to start an RO transaction with a timeout # When registering an RO transaction with a local LWM, its timeout defines the moment when the registration will automatically be cancelled (allowing the LWM to proceed and making the transaction expired on this node) # A default timeout is used if not provided by the user (it is equal to dataAvailabilityTime) > Support timeouts for RO transactions > ------------------------------------ > > Key: IGNITE-23747 > URL: https://issues.apache.org/jira/browse/IGNITE-23747 > Project: Ignite > Issue Type: Improvement > Reporter: Roman Puchkovskiy > Assignee: Roman Puchkovskiy > Priority: Major > Labels: ignite-3, important > Fix For: 3.0 > > Time Spent: 3h 40m > Remaining Estimate: 0h > > TransactionOptions allows to specify a transaction timeout, but the timeout > is not handled; even more, if it's set, an attempt to start a transaction > fails because timeouts are not supported yet. > We should support timeouts for RO transactions. > For an RO transaction, a timeout defines maximum amount of time the > transaction can hold LWMs on nodes participating in the transaction. That is, > on any such node its local LWM can be held/locked only until txBeginTime + > txTimeout (txBeginTime can be extracted from transactionId). > If the user did not specify a timeout in TransactionOptions or did not > provide TransactionOptions when creating an RO transaction, a default timeout > is used (which is proposed to be equal to dataAvailabilityTime). > Definition of done: > # It's possible to start an RO transaction with a timeout > # When registering an RO transaction with a local LWM, its timeout defines > the moment when the registration will automatically be cancelled (allowing > the LWM to proceed and making the transaction expired on this node) > # A default timeout is used if not provided by the user (it is equal to > ignite.transaction.timeout defaulting to 10 seconds) -- This message was sent by Atlassian Jira (v8.20.10#820010)