CPC G06F 16/273 (2019.01) | 18 Claims |
1. A system, comprising:
a plurality of computing devices configured to implement a distributed transaction system operating on a data set, the distributed transaction system comprising a proposer and a plurality of consensus groups including a first consensus group comprising a first plurality of members storing respective replicas of the data set and a second consensus group comprising a second plurality of members storing respective replicas of the data set, wherein individual ones of the plurality of consensus groups participate in different respective subsets of a plurality of transactions operating on the data set, wherein the proposer, the first plurality of members, and the second plurality of members implement a consensus protocol, and wherein the distributed transaction system is configured to:
send, from the proposer to at least a portion of the first consensus group and at least a portion of the second consensus group, a prepare-transaction request for a transaction, wherein a transaction group for the transaction comprises the first consensus group and the second consensus group, wherein the prepare-transaction describes the transaction comprising one or more data updates to be performed by individual members of the transaction group, and wherein a positive response to the prepare-transaction request by an individual member of the transaction group indicates acceptance of the transaction by the individual member; and
perform the transaction comprising the one or more data updates of the transaction on the data set based at least in part on one or more positive responses to the prepare-transaction request, wherein at least some of the one or more positive responses identify an additional transaction, and wherein to perform the one or more data updates of the transaction the distributed transaction system is configured to:
determine, based at least in part on the one or more positive responses to the prepare-transaction request as part of the consensus protocol, that the identified additional transaction, different from the transaction, has been accepted by a particular consensus group of the transaction group, wherein the acceptance locks the particular consensus group from performance of the transaction, wherein the additional transaction involves another transaction group comprising the particular consensus group and one or more additional consensus groups of the plurality of consensus groups; and
unlock, responsive to the determining, performance of the transaction for the particular consensus group, wherein to unlock performance of the transaction the distributed transaction system is configured to send an abort-transaction request of the additional transaction as part of the consensus protocol from the proposer to the particular consensus group of the transaction group.
|