IP Library Granted Patent US 12,373,424
Granted Patent B2
US 12,373,424 · App. 18/301,115 · Granted Jul 29, 2025

Supporting two phase commit protocol in blockchain system

Inventors: Carlo Innocenti (Wakefield, MA); Sharthak Mishra (Karnataka, IN); Vignesh Subramanian (Karnataka, IN)
Assignee: Oracle International Corporation
G06F16/2379G06F16/252
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,373,424
App. No.
18/301,115
Granted
Jul 29, 2025
Kind
B2
Abstract

A blockchain system is enabled to participate in distributed transactions that uses a two-phase commit protocol (“2PC”). In a 2PC, a computer system, such as a DBMS or blockchain system, commits a transaction that changes data (e.g. database, world state) using two phases. To participate in a distributed transaction using 2PC, a blockchain system executes a “staged transaction”. A staged transaction transitions through the 2PC phases. In the prepare phase, the new values for world state records are staged in staging records as staged values. In the second phase, if the distributed transaction is to be committed, the world staging records are set to the staged values.

Claims (72)

1. A method, comprising:

receiving a request to execute a particular distributed transaction that requires changing a particular world state record in a world state of a particular blockchain channel to a particular value, wherein said particular distributed transaction is a heterogeneous distributed transaction that requires changing particular data in a computer system that commits particular changes to said particular data using a two-phase protocol, wherein said heterogenous distributed transaction comprises one or more transactions executed on a blockchain system and one or more transactions executed on a non-blockchain data processing system;

executing a particular staged transaction of said particular distributed transaction, where the particular staged transaction transitions through a prepare phase and a commit phase for changing said particular world state record to said particular value;

within said prepare phase of said particular staged transaction of said particular distributed transaction, committing a first blockchain transaction, wherein committing said first blockchain transaction includes committing:

a particular staged record that is set to said particular value;

a particular transaction metadata record denoting that said particular staged transaction is prepared;

wherein said particular staged record and said particular transaction metadata record are world state records in said world state;

receiving a prepared notification from said computer system indicating that said computer system is prepared to commit said particular change to said particular data;

after receiving said prepared notification from said computer system, sending a request to commit said particular changes;

within said commit phase of said particular staged transaction that commences after said prepare phase, committing a second blockchain transaction, wherein committing said second blockchain transaction includes committing:

said particular world state record to said particular value; and

said particular transaction metadata record to a value that denotes that said particular staged transaction is committed.

2. The method of claim 1 , further including:

said particular distributed transaction requires changing another world state record in another blockchain channel to another value;

within a prepare phase of another staged transaction of said particular distributed transaction, committing a third blockchain transaction, wherein committing said third blockchain transaction includes committing:

another staged record set to said another value;

another transaction metadata record denoting that said another staged transaction is prepared;

within a commit phase of said another staged transaction, committing a fourth blockchain transaction, wherein committing said fourth blockchain transaction includes committing:

said another world state record to said another value; and

said another transaction metadata record to a value that denotes that said particular staged transaction is committed.

3. The method of claim 1 , further including:

a blockchain client of said particular blockchain channel proposing said first blockchain transaction to at least one peer of said particular blockchain channel; and

said blockchain client receiving a prepared notification from said at least one peer of said particular blockchain channel.

4. The method of claim 1 , further including:

a blockchain client of said particular blockchain channel proposing said second blockchain transaction to at least one peer of said particular blockchain channel; and

said blockchain client receiving a commit notification from said at least one peer of said particular blockchain channel.

5. The method of claim 1 , wherein said computer system is a database management system.

6. The method of claim 1 , further including:

receiving a request to execute another distributed transaction that requires changing another world state record in said particular blockchain channel to another value;

within a prepare phase of another staged transaction of said another distributed transaction, committing a third blockchain transaction, wherein committing said third blockchain transaction includes committing:

another staged record set to said particular value;

another transaction metadata record denoting that said another staged transaction is prepared;

within a rollback phase of said another staged transaction, committing a fourth blockchain transaction, wherein committing said second blockchain transaction includes committing said another transaction metadata record to a value that denotes that said particular staged transaction is rolled back.

7. The method of claim 1 , further including locking said particular world state record during said prepare phase.

8. The method of claim 1 , further including locking said particular world state record during said commit phase.

9. The method of claim 1 , wherein said blockchain system comprises said particular blockchain channel, wherein said blockchain system is configured to modify a blockchain and a respective world state using an endorsement phase, an ordering phase, and a validate phase.

10. One or more computer-readable non-transitory storage media storing one or more sequences of instructions that, when executed by one or more computing devices, cause:

receiving a request to execute a particular distributed transaction that requires changing a particular world state record in a world state of a particular blockchain channel to a particular value, wherein said particular distributed transaction is a heterogeneous distributed transaction that requires changing particular data in a computer system that commits particular changes to said particular data using a two-phase protocol, wherein said heterogenous distributed transaction comprises one or more transactions executed on a blockchain system and one or more transactions executed on a non-blockchain data processing system;

executing a particular staged transaction of said particular distributed transaction, where the particular staged transaction transitions through a prepare phase and a commit phase for changing said particular world state record to said particular value;

within said prepare phase of said particular staged transaction of said particular distributed transaction, committing a first blockchain transaction, wherein committing said first blockchain transaction includes committing:

a particular staged record that is set to said particular value;

a particular transaction metadata record denoting that said particular staged transaction is prepared;

wherein said particular staged record and said particular transaction metadata record are world state records in said world state;

receiving a prepared notification from said computer system indicating that said computer system is prepared to commit said particular change to said particular data;

after receiving said prepared notification from said computer system, sending a request to commit said particular changes;

within said commit phase of said particular staged transaction that commences after said prepare phase, committing a second blockchain transaction, wherein committing said second blockchain transaction includes committing:

said particular world state record to said particular value; and

said particular transaction metadata record to a value that denotes that said particular staged transaction is committed.

11. The one or more computer-readable non-transitory storage media of claim 10 , wherein the one or more sequences of instructions include instructions that, when executed by one or more computing devices, cause:

said particular distributed transaction requires changing another world state record in another blockchain channel to another value;

within a prepare phase of another staged transaction of said particular distributed transaction, committing a third blockchain transaction, wherein committing said third blockchain transaction includes committing:

another staged record set to said another value;

another transaction metadata record denoting that said another staged transaction is prepared;

within a commit phase of said another staged transaction, committing a fourth blockchain transaction, wherein committing said fourth blockchain transaction includes committing:

said another world state record to said another value; and

said another transaction metadata record to a value that denotes that said particular staged transaction is committed.

12. The one or more computer-readable non-transitory storage media of claim 10 , wherein the one or more sequences of instructions include instructions that, when executed by one or more computing devices, cause:

a blockchain client of said particular blockchain channel proposing said first blockchain transaction to at least one peer of said particular blockchain channel; and

said blockchain client receiving a prepared notification from said at least one peer of said particular blockchain channel.

13. The one or more computer-readable non-transitory storage media of claim 10 , wherein the one or more sequences of instructions include instructions that, when executed by one or more computing devices, cause:

a blockchain client of said particular blockchain channel proposing said second blockchain transaction to at least one peer of said particular blockchain channel; and

said blockchain client receiving a commit notification from said at least one peer of said particular blockchain channel.

14. The one or more computer-readable non-transitory storage media of claim 10 , wherein said computer system is a database management system.

15. The one or more computer-readable non-transitory storage media of claim 10 , wherein the one or more sequences of instructions include instructions that, when executed by one or more computing devices, cause:

receiving a request to execute another distributed transaction that requires changing another world state record in said particular blockchain channel to another value;

within a prepare phase of another staged transaction of said another distributed transaction, committing a third blockchain transaction, wherein committing said third blockchain transaction includes committing:

another staged record set to said particular value;

another transaction metadata record denoting that said another staged transaction is prepared;

within a rollback phase of said another staged transaction, committing a fourth blockchain transaction, wherein committing said second blockchain transaction includes committing said another transaction metadata record to a value that denotes that said particular staged transaction is rolled back.

16. The one or more computer-readable non-transitory storage media of claim 10 , wherein the one or more sequences of instructions include instructions that, when executed by one or more computing devices, cause locking said particular world state record during said prepare phase.

17. The one or more computer-readable non-transitory storage media of claim 10 , wherein the one or more sequences of instructions include instructions that, when executed by one or more computing devices, cause locking said particular world state record during said commit phase.

18. The one or more computer-readable non-transitory storage media of claim 10 , wherein said blockchain system comprises said particular blockchain channel, wherein said blockchain system is configured to modify a blockchain and a respective world state using an endorsement phase, an ordering phase, and a validate phase.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2023
From: INNOCENTI, CARLO; MISHRA, SHARTHAK; SUBRAMANIAN, VIGNESH
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 063331/0637 →
Continuity (1)
Related Publication 20240346011A1 · Oct 17, 2024
References Cited (79)
US 5546582A · Brockmeyer · 1996 [cited by examiner]
US 6728719B1 · Ganesh et al. · 2004 [cited by applicant]
US 9589041B2 · Tran et al. · 2017 [cited by applicant]
US 9747356B2 · Lu et al. · 2017 [cited by applicant]
US 9767178B2 · Srivastava et al. · 2017 [cited by applicant]
US 9830372B2 · Rajamani et al. · 2017 [cited by applicant]
US 9904722B1 · Shevade et al. · 2018 [cited by applicant]
US 10191932B2 · Lehouillier et al. · 2019 [cited by applicant]
US 10616324B1 · Kaddoura · 2020 [cited by applicant]
US 11025409B1 · Fields · 2021 [cited by applicant]
US 11108553B2 · Irazabal · 2021 [cited by applicant]
US 11145017B1 · Wu · 2021 [cited by applicant]
US 11343313B1 · Manevich · 2022 [cited by examiner]
US 20070299887A1 · Novik et al. · 2007 [cited by applicant]
US 20080162728A1 · Robeal · 2008 [cited by applicant]
US 20100153423A1 · Lu et al. · 2010 [cited by applicant]
US 20160224604A1 · Petculescu et al. · 2016 [cited by applicant]
US 20170123846A1 · Gschwind et al. · 2017 [cited by applicant]
US 20170352012A1 · Hearn et al. · 2017 [cited by applicant]
US 20180152289A1 · Hunt et al. · 2018 [cited by applicant]
US 20180158034A1 · Hunt · 2018 [cited by applicant]
US 20180349458A1 · Guirguis · 2018 [cited by examiner]
US 20180374086A1 · Ardashev · 2018 [cited by applicant]
US 20190156332A1 · Christidis et al. · 2019 [cited by applicant]
US 20190238525A1 · Padmanabhan et al. · 2019 [cited by applicant]
US 20190342149A1 · Guo et al. · 2019 [cited by applicant]
US 20190356674A1 · Irazabal et al. · 2019 [cited by applicant]
US 20190370793A1 · Zhu et al. · 2019 [cited by applicant]
US 20190372772A1 · Novotny · 2019 [cited by applicant]
US 20190378134A1 · Asari · 2019 [cited by applicant]
US 20200082025A1 · Zhou · 2020 [cited by examiner]
US 20200125556A1 · Yang · 2020 [cited by examiner]
US 20200167243A1 · Rauh · 2020 [cited by examiner]
US 20200250694A1 · Mock · 2020 [cited by examiner]
US 20200310860A1 · Arumugam · 2020 [cited by examiner]
US 20200327545A1 · Xie · 2020 [cited by applicant]
US 20200364201A1 · Cseri et al. · 2020 [cited by applicant]
US 20200374106A1 · Padmanabhan · 2020 [cited by applicant]
US 20200387432A1 · Kamijoh · 2020 [cited by applicant]
US 20210014042A1 · Sivathanu et al. · 2021 [cited by applicant]
US 20210034606A1 · Stamos · 2021 [cited by examiner]
US 20210149775A1 · Novotny · 2021 [cited by applicant]
US 20220027348A1 · Manevich · 2022 [cited by examiner]
US 20220035652A1 · Stamos · 2022 [cited by examiner]
US 20220284011A1 · Qian · 2022 [cited by examiner]
US 20220358098A1 · Stamos · 2022 [cited by examiner]
US 20230062434A1 · Wagner · 2023 [cited by examiner]
US 20240070166A1 · Innocenti · 2024 [cited by examiner]
CN 111008206A · 2020 [cited by examiner]
CN 111241589A · 2020 [cited by examiner]
CN 114936256A · 2022 [cited by examiner]
CN 114942847A · 2022 [cited by examiner]
CN 116433373A · 2023 [cited by examiner]
WO WO2017161275 · 2017 [cited by applicant]
WO WO2021021757A1 · 2021 [cited by examiner]
WO WO2021030906A1 · 2021 [cited by examiner]
WO WO2023185045A1 · 2023 [cited by examiner]
WO WO2023185051A1 · 2023 [cited by examiner]
WO WO2023231343A1 · 2023 [cited by examiner]
WO WO2023231344A1 · 2023 [cited by examiner]
Stamos, U.S. Appl. No. 16/932,633, filed Jul. 17, 2020, Notice of Allowance and Fees Due, Jan. 19, 2023. [cited by applicant]
Stamos, U.S. Appl. No. 16/932,633, filed Jul. 17, 2020, Notice of Allowance and Fees Due, Oct. 6, 2022. [cited by applicant]
Stamos, U.S. Appl. No. 16/932,633, filed Jul. 17, 2020, Non-Final Rejection, Mar. 29, 2022. [cited by applicant]
Stamos, U.S. Appl. No. 16/944,011, filed Jul. 30, 2020, Final Rejection, May 4, 2023. [cited by applicant]
Stamos, U.S. Appl. No. 16/944,011, filed Jul. 30, 2020, Non-Final Rejection, Dec. 5, 2022. [cited by applicant]
Wikipedia.com, “Two-Phase Commit Protocol”, Wikipedia, The Free Encyclopedia, https://en.wikipedia.org/w/index.php?title=two-phase_commit_protocol&oldid=886121497, dated Mar. 2019, 9 pages. [cited by applicant]
Wikipedia.com, “Raft (Algorithm)”, Wikipedia, The Free Encyclopedia, https://en.wikipedia.org/w/index.php?title=raft_(computer_science)&oldid=89512171 8, dated May 2019, 7 pages. [cited by applicant]
Muzammal et al., “Renovating Blockchain with Distributed Databases: An Open Source System”, Future Generation Computer Systems, Jul. 23, 2018, 27 pages. [cited by applicant]
Ezhilchelvan et al., “Non-Blocking Two Phase Commit Using Blockchain”, 1st Workshop on Cryptocurrencies and Blockchains Distributed Systems, CryBlock'18, dated Jan. 1, 2018, pp. 36-41. [cited by applicant]
Cucurull et al., “Distributed Immutalilization of Secure Logs”, dated Sep. 17, 2016, Big Data Analytics in the Social and Ubiquitous Context, 16 pages. [cited by applicant]
Anonymous: “Two-Phase Commit Protocol - Wikipedia”, dated Mar. 4, 2019, https://en.wikipedia.org/w/index.php?title=Two-phase_commit_protocol&oldid=886121497, retrieved on Sep. 28, 2020, 6 pages. [cited by applicant]
Anonymous: “Raft (computer science)—Wikipedia”, dated May 2, 2019, https://en.wikipedia.org/w/index.php?title=Raft_computer_science)&oldid=895121718, dated Sep. 28, 2020, 4 pages. [cited by applicant]
Zsolt et al., “StreamChain: Do Blockchains Need Blocks?”, Proceedings of the 2nd Workshop on Scalable and Resilient Infrastructures for Distributed Ledgers, Dec. 10, 2018, pp. 1-6, XP093181815. [cited by applicant]
Anonymous, “Ledger”, Jul. 6, 2022, XP093181665, 10 pages, retrieved: https://hyperledger-fabric.readthedocs.io/en/release-2.2/ledger/ledger.html documentation. [cited by applicant]
Androulaki et al., “Endorsement in Hyperledger Fabric”, 2019 IEEE International Conference on Blockchain (Blockchain), IEEE, Jul. 14, 2019, pp. 510-519. [cited by applicant]
Alkhatib et al., “Transaction Management in Distributed Database Systems: the Case of Oracle's Two-Phase Commit”, Journal of information systems education, Mar. 1, 2023, p. 95, XP093181830. [cited by applicant]
Anynymous, “Blockchain-based database—Wikipedia”, May 28, 2020, 3 pages, Available: https://en.wikipedia.org/w/index.php?title=Blockchainbased_database&oldid=959295487. [cited by applicant]
Stamos, U.S. Appl. No. 18/405,122, filed Jan. 5, 2024, Notice of Allowance and Fees Due, Jan. 31, 2025. [cited by applicant]
Stamos, U.S. Appl. No. 18/405,122, filed Jan. 5, 2024, Notice of Allowance and Fees Due, Jan. 17, 2025. [cited by applicant]