Re: How to manage the Multi-Version Concurrency Control (MVCC) in Fabric on time-critical applications


Yacov
 

you don't have to write to the same key.

You can have each voter / bidder commit to his vote / bid by writing to a separate key that corresponds to its identity, and in the end have all the voters / bidders reveal their votes / bids, and this will not create any MVCC conflicts.



From:        "Mr.Phuwanai Thummavet" <mr.thummavet@...>
To:        fabric@...
Date:        10/23/2019 12:16 PM
Subject:        [EXTERNAL] [Hyperledger Fabric] How to manage the Multi-Version Concurrency Control (MVCC) in Fabric on time-critical applications
Sent by:        fabric@...




Hi everyone,

I know that the multi-version concurrency control (MVCC) is used to address double-spending problems in Fabric. However, the MVCC might become one of the most obstacles when designing time-critical applications such as auction and voting systems. On a voting system, for example, two voters commit to voting for the same candidate in the same block-time frame. This results in an invalid transaction for the 2nd voter according to the MVCC.

My solution to such an issue was to use an off-chain messaging queue system to gather and categorize certain transaction requests from clients. Then, the batches of the categorized transactions were sent to a chaincode to invoke.

Here are my questions:
1.        Was my solution suitable for the above example? 
2.        Does anyone have better solutions?
3.        Is Hyperledger Fabric suitable for real-time applications such as auction and voting systems?

Thanks.

--
Best Regards,
Phuwanai Thummavet



Join fabric@lists.hyperledger.org to automatically receive all group messages.