apache/ignite

Question: Why is MVCC Being Removed? Are There Unknown Bugs?

Opened this issue · 2 comments

Hi,

I’ve recently been looking to use the TRANSACTIONAL_SNAPSHOT atomicity mode in Ignite for achieving consistency across key reads, which is dependent on MVCC. I’ve noticed that since version 2.12, MVCC has been deprecated, and it was fully removed in version 2.16.

I have built parts of my project on version 2.15 and I am mainly interested in an embedded memory database scenario that involves using KV, SQL, and Index interfaces for production use. Are there any unforeseen bugs or risks that I should be aware of when using these features in a production environment? Could someone provide insights into the reasons behind the removal of MVCC and any associated risks?

Thanks.

Hi @liupan664021 ,

The main issue with the current MVCC implementation is that it is based on using a single node (the coordinator node of the cluster) for transaction ordering and 2PC protocol for distributed commits. IMHO, this approach is slow and is not scalable by design.

Also, It seems that there are not enough contributors/maintainers willing to support, develop, and improve the feature.

You can find additional details here:

Thanks,
S.

Thanks so much for the explanation. @sk0x50

The MVCC feature is quite important for non-KV APIs, including SQL, Index, etc. Is this on Ignite’s roadmap? For example, will version 3.x of Ignite have better MVCC features?

Thanks.