[
https://issues.apache.org/jira/browse/IGNITE-15083?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alexey Scherbakov updated IGNITE-15083:
---------------------------------------
Description:
The tx design [1] assumes the presence of leaseholder (stronger form of a
leader) for each partition raft group.
* Leaseholder is used for reads without majority heartbeat
* Leaseholder is used for lock requests processing.
* Only one leaseholder should exists at a time.
* Leaseholders map is stored in metastore (can be discovered by asking group
members in the first approach)
* Tx coordinators are subscribed for leaseholder status updates.
The lease acquisiotion implementation details are open for now [2].
Jraft includes expiration based leases (similar to yugabyte's), and this should
be enough for the first approach.
[1] https://github.com/apache/ignite-3/tree/main/modules/transactions
[2] Cocroach and tikv use raft log based approach.
was:
The tx design [1] assumes the presence of leaseholder (stronger form of a
leader) for each partition raft group.
* Leaseholder is used for reads without majority heartbeat
* Leaseholder for lock acquisition.
* Only one leaseholder should exists at a time.
* Leaseholders map is stored in metastore (can be discovered by asking group
members in the first approach)
* Tx coordinators are subscribed for leaseholder status updates.
The lease acquisiotion implementation details are open for now [2].
Jraft includes expiration based leases (similar to yugabyte's), and this should
be enough for the first approach.
[1] https://github.com/apache/ignite-3/tree/main/modules/transactions
[2] Cocroach and tikv use raft log based approach.
> Implement leaseholder selection and failover
> --------------------------------------------
>
> Key: IGNITE-15083
> URL: https://issues.apache.org/jira/browse/IGNITE-15083
> Project: Ignite
> Issue Type: Task
> Reporter: Alexey Scherbakov
> Priority: Major
> Labels: iep-61, ignite-3
> Fix For: 3.0.0-alpha3
>
>
> The tx design [1] assumes the presence of leaseholder (stronger form of a
> leader) for each partition raft group.
> * Leaseholder is used for reads without majority heartbeat
> * Leaseholder is used for lock requests processing.
> * Only one leaseholder should exists at a time.
> * Leaseholders map is stored in metastore (can be discovered by asking group
> members in the first approach)
> * Tx coordinators are subscribed for leaseholder status updates.
> The lease acquisiotion implementation details are open for now [2].
> Jraft includes expiration based leases (similar to yugabyte's), and this
> should be enough for the first approach.
> [1] https://github.com/apache/ignite-3/tree/main/modules/transactions
> [2] Cocroach and tikv use raft log based approach.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)