You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Igor Seliverstov (JIRA)" <ji...@apache.org> on 2018/05/17 12:11:00 UTC

[jira] [Updated] (IGNITE-8031) MVCC TX: TxLog does not support partitions rebalance at the moment. We need to implement it.

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

Igor Seliverstov updated IGNITE-8031:
-------------------------------------
    Description: 
When new node joins to the cluster after the partitions rebalance it has empty TxLog. And therefore all transactions committed before this join are considered as uncommitted by this node.

Solution:
 #  introduce a special hint bits (most significant bits in operation counter) which will be actualized whenever it is possible.
 #  such bits should be updated via CAS operation and the page, which contains the data, should be marked as dirty even under read lock
 #  rebalance iterator returns only COMMITTED versions of row (the row must have committed start version) with actualized hint bits for both create and update versions.
 #  during force keys requests both COMMITTED rows and pending changes (rows having ACTIVE start version) should be sent with actualized hint bits for both create and update versions (if applicable).
 #  all readers check hint bits before checking with TxLog.

  was:
When new node joins to the cluster after the partitions rebalance it has empty TxLog. And therefore all transactions committed before this join are considered as uncommitted by this node.

We need to replicate TxLog to the new nodes as well as data partitions.


> MVCC TX: TxLog does not support partitions rebalance at the moment. We need to implement it.
> --------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-8031
>                 URL: https://issues.apache.org/jira/browse/IGNITE-8031
>             Project: Ignite
>          Issue Type: Bug
>          Components: sql
>            Reporter: Roman Kondakov
>            Priority: Major
>              Labels: mvcc, sql
>
> When new node joins to the cluster after the partitions rebalance it has empty TxLog. And therefore all transactions committed before this join are considered as uncommitted by this node.
> Solution:
>  #  introduce a special hint bits (most significant bits in operation counter) which will be actualized whenever it is possible.
>  #  such bits should be updated via CAS operation and the page, which contains the data, should be marked as dirty even under read lock
>  #  rebalance iterator returns only COMMITTED versions of row (the row must have committed start version) with actualized hint bits for both create and update versions.
>  #  during force keys requests both COMMITTED rows and pending changes (rows having ACTIVE start version) should be sent with actualized hint bits for both create and update versions (if applicable).
>  #  all readers check hint bits before checking with TxLog.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)