IP Library Granted Patent US 12,436,943
Granted Patent B2
US 12,436,943 · App. 18/431,285 · Granted Oct 7, 2025

Mechanisms for efficient point-in-time creation and maintenance in a distributed database

Inventors: Erez Webman (Petach Tikva, IL); Irit Yadin-Lempel (Caesarea, IL); Eran Borovik (Zikhron Ya'akov, IL); Hilla Atzmon (Haifa, IL)
Assignee: Regatta Data Ltd.
G06F16/2379G06F16/215G06F16/27
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,436,943
App. No.
18/431,285
Filed
Feb 2, 2024
Granted
Oct 7, 2025
Kind
B2
Art Unit
2164
USPC
707/703
Abstract

A method and system for managing execution of database transactions by facilitating point-in-time image (PIT). The method comprises receiving at least one statement being part of a transaction, the transaction is initiated by a client to be executed on a distributed database system; sending a single request to a sequencer server (SEQ-server) to create at least one PiT, wherein the SEQ-server provides a logical timestamp counter (LTC) value as a timestamp of the PiT; upon creation of the at least one PiT, causing execution of the at least one statement, a PiT provides a state and content of committed data in the distributed database system; upon receiving a commit statement, performing a commitment process of the transaction, the commitment process is based on a commitment timestamp (CMTS) set by the SEQ-server based on an incremented value of the LTC; and returning an acknowledgment of the transaction commitment to the client.

Claims (144)

1. A method for managing execution of database transactions by facilitating point-in-time image (PiT), comprising:

receiving at least one statement being part of a transaction, wherein the transaction is initiated by a client to be executed on a distributed database system;

sending a single request to a sequencer server (SEQ-server) to create at least one PiT, wherein the SEQ-server provides a logical timestamp counter (LTC) value as a timestamp of the PiT;

upon creation of the at least one PiT, causing execution of the at least one statement, wherein a PiT provides a state and content of committed data in the distributed database system;

upon receiving a commit statement, performing a commitment process of the transaction, wherein the commitment process is based on a commitment timestamp (CMTS) set by the SEQ-server based on an incremented value of the LTC; and

returning an acknowledgment of the transaction commitment to the client.

2. The method of claim 1 , initiating the creation of the at least one PiT further comprises:

receiving the single PiT creation request from an SEQ-agent, wherein the PiT creation request is initiated by a transaction manager executing the transaction;

upon receiving of the creation request, incrementing the LTC value; and

sending the incremented LTC value to the SEQ-agent as a PiT timestamp, wherein the PiT timestamp is returned to the transaction manager.

3. The method of claim 1 , wherein initiating the creation of the at least one PiT further comprises:

receiving a PiT creation request from an SEQ-agent, wherein the PiT creation request is initiated by a transaction manager executing the transaction;

queuing the received PiT request in the SEQ-server;

upon satisfying a PiT creation rule, incrementing the LTC value; and

sending the incremented LTC value to the SEQ-agent as a PiT timestamp, wherein the PiT timestamp is returned to the transaction manager.

4. The method of claim 3 , further comprising:

receiving a plurality of PiT creation requests from a plurality of SEQ-agents; and

for each queued PiT creation request, sending a response with the incremented LTC value to a respective SEQ-agent as the PiT timestamp.

5. The method of claim 4 , wherein the PiT creation rule includes any one of: a predetermined number of PiT creation requests, a predetermined time window, or both.

6. The method of claim 1 , wherein initiating the creation of the at least one PiT further comprises:

receiving a PiT creation request at an SEQ-agent, wherein the PiT creation request is initiated by a transaction manager executing the transaction;

queuing the received PiT request in the SEQ-agent;

upon satisfying a SEQ-agent-side PiT creation rule, sending a single unified PiT creation request to the SEQ-server to create a unified PiT for all requests queued in the SEQ-agent; and

receiving the incremented LTC value as a unified PiT timestamp, wherein the unified PiT timestamp is returned to the transaction manager.

7. The method of claim 6 , further comprising:

receiving a plurality of PiT creation requests from a plurality of transaction managers; and

for each queued PiT creation request, sending a response with the unified PiT timestamp to a respective transaction manager.

8. The method of claim 7 , further comprising:

queuing the unified PiT creation request in the SEQ-server; and

upon satisfying a SEQ-server-side PiT creation rule, incrementing the LTC value, thereby creating a unified PiT timestamp, wherein the created unified PiT timestamp serves multiple unified PiT creation requests sent by a plurality of SEQ-agents.

9. The method of claim 8 , the SEQ-server-side PiT creation rule includes any one of: a predetermined number of PiT creation requests, a predetermined time window, or both, wherein the SEQ-server-side PiT creation rule is triggered when a first transaction manager of the plurality of transaction managers calls the SEQ-agent.

10. The method of claim 1 , further comprising:

generating the CMTS based on the incremented value of the LTC.

11. The method of claim 10 , further comprising:

receiving a CMTS creation request from an SEQ-agent, wherein the CMTS creation request is initiated by a transaction manager executing the transaction;

upon reception of the creation request, incrementing the LTC value; and

sending the incremented LTC value to the SEQ-agent as the CMTS, wherein the CMTS is returned to the transaction manager.

12. The method of claim 10 , further comprising:

receiving a CMTS creation request at an SEQ-agent, wherein the CMTS creation request is initiated by a transaction manager executing the transaction;

queuing the received CMTS request in the SEQ-agent;

counting the queued CMTS requests;

upon satisfying a CMTS creation rule, sending a single CMTS creation request, wherein the single CMTS creation request specifies a number of queued CMTS requests; and

receiving a range of LTC values as CMTSs.

13. The method of claim 12 , further comprising:

receiving a plurality of CMTS creation requests from a plurality of transaction managers; and

for each queued CMTS creation request, sending a response to a respective transaction manager with a CMTS from the received CMTSs, wherein each of the plurality of transaction managers receives a different CMTS.

14. The method of claim 12 , wherein the CMTS creation rule includes any one of: a predetermined number of CMTS creation requests, a predetermined time window, or both.

15. The method of claim 1 , wherein performing the commitment process of the transaction further comprises:

placing a commit pause on each data cell modified by the transaction;

obtaining the CMTS;

sending a commit completion message to a transaction agent that participated in the execution of the transaction; and

causing the transaction agent to commit row-versions and release any commit pause.

16. The method of claim 1 , wherein causing the execution of the at least one statement further comprises performing any one of: a write operation and a read operation.

17. The method of claim 16 , wherein performing the read operation further comprises:

reading data from at least the created PiT.

18. The method of claim 16 , wherein performing the read operation further comprises:

when data has changed after the creation of the PiT, reading data from at least a latest committed row-version.

19. The method of claim 16 , wherein performing the write operation further comprises:

writing data to at least one data cell in an uncommitted manner.

20. The method of claim 1 , wherein the distributed database system comprises: one SEQ-server and a plurality of SEQ-agents executed on a plurality of nodes of the distributed database system, wherein each of the plurality of nodes incudes a storage implementing a persistent data-layout that allows multi-version data-cells.

21. The method of claim 20 , wherein the plurality of SEQ-agents are configured at a predefined hierarchy.

22. A system for managing execution of database transactions by facilitating point-in-time image (PiT) comprising:

one or more processors configured to:

receive at least one statement being part of a transaction, wherein the transaction is initiated by a client to be executed on a distributed database system;

send a single request to a sequencer server (SEQ-server) to create at least one PiT, wherein the SEQ-server provides a logical timestamp counter (LTC) value as a timestamp of the PiT;

upon creation of the at least one PiT, cause execution of the at least one statement, wherein a PiT provides a state and content of committed data in the distributed database system;

upon receiving a commit statement, perform a commitment process of the transaction, wherein the commitment process is based on a commitment timestamp (CMTS) set by the SEQ-server based on an incremented value of the LTC; and

return an acknowledgment of the transaction commitment to the client.

23. The system of claim 22 , wherein the one or more processors are further configured to:

initiate the creation of the at least one PiT further comprises:

receive the single PiT creation request from an SEQ-agent, wherein the PiT creation request is initiated by a transaction manager executing the transaction;

upon receiving of the creation request, increment the LTC value; and

send the incremented LTC value to the SEQ-agent as a PiT timestamp, wherein the PiT timestamp is returned to the transaction manager.

24. The system of claim 22 , wherein the one or more processors, when initiating the creation of the at least one PiT, are configured to:

receive a PiT creation request from an SEQ-agent, wherein the PiT creation request is initiated by a transaction manager executing the transaction;

queue the received PiT request in the SEQ-server;

upon satisfying a PiT creation rule, increment the LTC value; and

send the incremented LTC value to the SEQ-agent as a PiT timestamp, wherein the PiT timestamp is returned to the transaction manager.

25. The system of claim 24 , wherein the one or more processors are further configured to:

receive a plurality of PiT creation requests from a plurality of SEQ-agents; and

for each queued PiT creation request, send a response with the incremented LTC value to a respective SEQ-agent as the PIT timestamp.

26. The system of claim 25 , wherein the PiT creation rule includes any one of:

a predetermined number of PiT creation requests, a predetermined time window, or both.

27. The system of claim 22 , wherein the one or more processors, when initiating the creation of the at least one PiT, are configured to:

receive a PiT creation request at an SEQ-agent, wherein the PiT creation request is initiated by a transaction manager executing the transaction;

queue the received PiT request in the SEQ-agent;

upon satisfying a SEQ-agent-side PiT creation rule, send a single unified PiT creation request to the SEQ-server to create a unified PiT for all requests queued in the SEQ-agent; and

receive the incremented LTC value as a unified PiT timestamp, wherein the unified PiT timestamp is returned to the transaction manager.

28. The system of claim 27 , wherein the one or more processors are further configured to:

receive a plurality of PiT creation requests from a plurality of transaction managers; and

for each queued PiT creation request, send a response with the unified PiT timestamp to a respective transaction manager.

29. The system of claim 28 , wherein the one or more processors are further configured to:

queue the unified PiT creation request in the SEQ-server; and

upon satisfying a SEQ-server-side PiT creation rule, increment the LTC value, thereby creating a unified PiT timestamp, wherein the created unified PiT timestamp serves multiple unified PiT creation requests sent by a plurality of SEQ-agents.

30. The system of claim 29 , the SEQ-server-side PiT creation rule includes any one of:

a predetermined number of PiT creation requests, a predetermined time window, or both, wherein the SEQ-server-side PiT creation rule is triggered when a first transaction manager of the plurality of transaction managers calls the SEQ-agent.

31. The system of claim 22 , wherein the one or more processors are further configured to:

generate the CMTS based on the incremented value of the LTC.

32. The system of claim 31 , wherein the one or more processors are further configured to:

receive a CMTS creation request from an SEQ-agent, wherein the CMTS creation request is initiated by a transaction manager executing the transaction;

upon reception of the creation request, increment the LTC value; and

send the incremented LTC value to the SEQ-agent as the CMTS, wherein the CMTS is returned to the transaction manager.

33. The system of claim 31 , wherein the one or more processors are further configured to:

receive a CMTS creation request at an SEQ-agent, wherein the CMTS creation request is initiated by a transaction manager executing the transaction;

queue the received CMTS request in the SEQ-agent;

count the queued CMTS requests;

upon satisfying a CMTS creation rule, send a single CMTS creation request, wherein the single CMTS creation request specifies a number of queued CMTS requests; and

receive a range of LTC values as CMTSs.

34. The system of claim 33 , wherein the one or more processors are further configured to:

receive a plurality of CMTS creation requests from a plurality of transaction managers; and

for each queued CMTS creation request, send a response to a respective transaction manager with a CMTS from the received CMTSs, wherein each of the plurality of transaction managers receives a different CMTS.

35. The system of claim 33 , wherein the CMTS creation rule includes any one of: a predetermined number of CMTS creation requests, a predetermined time window, or both.

36. The system of claim 22 , wherein the one or more processors, when performing the commitment process of the transaction, are configured to:

place a commit pause on each data cell modified by the transaction;

obtain the CMTS;

send a commit completion message to a transaction agent that participated in the execution of the transaction; and

cause the transaction agent to commit row-versions and release any commit pause.

37. The system of claim 22 , wherein the one or more processors are configured to execute the at least one statement performing any one of a write operation and a read operation.

38. The system of claim 37 , wherein the one or more processors, when performing the read operation, are configured to:

read data from at least the created PiT.

39. The system of claim 37 , wherein the one or more processors, when performing the read operation, are configured to:

when data has changed after the creation of the PiT, read data from at least a latest committed row-version.

40. The system of claim 37 , wherein the one or more processors, when performing the write operation, are configured to:

write data to at least one data cell in an uncommitted manner.

41. The system of claim 22 , wherein the distributed database system comprises: one SEQ-server and a plurality of SEQ-agents executed on a plurality of nodes of the distributed database system, wherein each of the plurality of nodes incudes a storage implementing a persistent data-layout that allows multi-version data-cells.

42. The system of claim 41 , wherein the plurality of SEQ-agents are configured at a predefined hierarchy.

43. A distributed database system comprises:

a plurality of nodes, wherein each of the plurality of nodes incudes a storage implementing a persistent data-layout that allows multi-version data-cells and one or more processors;

one sequencer server (SEQ-server); and

a plurality of SEQ-agents executed on a plurality of nodes of the distributed database system;

wherein the one or more processors on each node configured to:

receive at least one statement being part of a transaction, wherein the transaction is initiated by a client to be executed on a distributed database system;

send a single request to the SEQ-server to create at least one PiT, wherein the SEQ-server provides a logical timestamp counter (LTC) value as a timestamp of the PiT;

upon creation of the at least one PiT, cause execution of the at least one statement, wherein a PiT provides a state and content of committed data in the distributed database system;

upon receiving a commit statement, perform a commitment process of the transaction, wherein the commitment process is based on a commitment timestamp (CMTS) set by the SEQ-server based on an incremented value of the LTC; and

return an acknowledgment of the transaction commitment to the client.

44. The system of claim 43 , wherein the plurality of SEQ-agents are configured at a predefined hierarchy.

45. A non-transitory computer-readable medium storing a set of instructions for managing execution of database transactions by facilitating point-in-time image (PiT), the set of instructions comprising:

one or more instructions that, when executed by one or more processors of a device, cause the device to:

receive at least one statement being part of a transaction, wherein the transaction is initiated by a client to be executed on a distributed database system;

send a single request to a sequencer server (SEQ-server) to create at least one PiT, wherein the SEQ-server provides a logical timestamp counter (LTC) value as a timestamp of the PIT;

upon creation of the at least one PiT, cause execution of the at least one statement, wherein a PiT provides a state and content of committed data in the distributed database system;

upon receiving a commit statement, perform a commitment process of the transaction, wherein the commitment process is based on a commitment timestamp (CMTS) set by the SEQ-server based on an incremented value of the LTC; and

return an acknowledgment of the transaction commitment to the client.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 5, 2024
From: WEBMAN, EREZ; YADEN-LEMPEL, IRIT; BOROVIK, ERAN; ATZMON, HILLA
To: REGATTA DATA LTD.
Reel/Frame 066349/0615 →
Continuity (2)
Provisional Application 63499566 · May 2, 2023
Related Publication 20240370427A1 · Nov 7, 2024
References Cited (43)
US 7395382B1 · Moir · 2008 [cited by applicant]
US 9659038B2 · Saito · 2017 [cited by examiner]
US 10630840B1 · Karp et al. · 2020 [cited by applicant]
US 11593316B2 · Haldar · 2023 [cited by examiner]
US 11843663B1 · Depoutovitch · 2023 [cited by examiner]
US 12056130B1 · Ayala et al. · 2024 [cited by applicant]
US 12321847B2 · Kauffmann et al. · 2025 [cited by applicant]
US 20070271242A1 · Lindblad · 2007 [cited by applicant]
US 20120311273A1 · Marathe et al. · 2012 [cited by applicant]
US 20130085988A1 · Hiraguchi · 2013 [cited by examiner]
US 20160092496A1 · Dietterich et al. · 2016 [cited by applicant]
US 20160306709A1 · Shaull · 2016 [cited by applicant]
US 20170139890A1 · Bendig et al. · 2017 [cited by applicant]
US 20170357577A1 · Lee et al. · 2017 [cited by applicant]
US 20180144014A1 · Mittal et al. · 2018 [cited by applicant]
US 20180349418A1 · Lee et al. · 2018 [cited by applicant]
US 20210034598A1 · Arye et al. · 2021 [cited by applicant]
US 20220164366A1 · Kuppahally · 2022 [cited by examiner]
US 20220245133A1 · Li · 2022 [cited by examiner]
US 20220300483A1 · Singh et al. · 2022 [cited by applicant]
US 20230334031A1 · Acker et al. · 2023 [cited by applicant]
US 20230385742A1 · Dybas et al. · 2023 [cited by applicant]
US 20240370418A1 · Webman et al. · 2024 [cited by applicant]
US 20250028694A1 · Yadin-Lempel et al. · 2025 [cited by applicant]
US 20250156400A1 · Al-Shihabi et al. · 2025 [cited by applicant]
CN 114968976A · 2022 [cited by applicant]
EP 2595068 · 2013 [cited by applicant]
EP 2738697A1 · 2014 [cited by applicant]
EP 3401806A1 · 2018 [cited by applicant]
WO 2019226387A1 · 2019 [cited by applicant]
Scriba, Dr. Albrecht, “Chapter 9: Point in Time Copies (Snapshots)”, Storage Management in Data Centers, Springer-Verlag, Berlin, Germany, © 2009, pp. 233-317. [cited by examiner]
Moh, Chuang-Hue, “Snapshots in a Distributed Persistent Object Storage System”, Massachusetts Institute of Technology, Boston, MA, Master of Science in Electrical Engineering and Computer Science Dissertation, May 2003,… [cited by examiner]
Barber, Ronald, et al., “WiSer: A Highly Available HTAP DBMS for IoT Applications”, BigData 2019, Los Angeles, CA, Dec. 9-12, 2019, pp. 268-277. [cited by examiner]
Wu, Lengdong, et al., “Survey of Large-Scale Data Management Systems for Big Data Systems”, Journal of Computer Science and Technology, vol. 30, Issue 1, SpringerNature Link, Jan. 2015, pp. 163-183. [cited by examiner]
International Search Report for PCT/IB2024/056903, dated Nov. 10, 2024. Searching Authority, Israel Patent Office, Jerusalem, Israel, 3 pages. [cited by applicant]
Written Opinion of the Searching Authority for PCT/IB2024/056903, dated Nov. 10, 2024. Searching Authority, Israel Patent Office, Jerusalem, Israel, 4 pages. [cited by applicant]
International Search Report for PCT/IB2024/050987, dated Jul. 11, 2024. Searching Authority, Israel Patent Office, Jerusalem, Israel, 4 pages. [cited by applicant]
Moh, Chuang-Hue; Liskov, Barbara. TimeLine: A High Performance Archive for a Distributed Object Store. In: NSDI. 2004. Mar. 29, 2004 (Mar. 29, 2004) the whole doc, 15 pages. [cited by applicant]
Written Opinion of the Searching Authority for PCT/IB2024/050987, dated Jul. 11, 2024. Searching Authority, Israel Patent Office, Jerusalem, Israel, 4 pages. [cited by applicant]
Yong I Yoon, Song C Moon, Reliable transaction processing for real-time distributed database systems, Microprocessing and Microprogramming, vol. 34, Issues 1-5, 1992, ISSN 0165-6074, Feb. 28, 1992 (Feb. 28, 1992) the wh… [cited by applicant]
Ado.net, Snapshot Isolation in SQL Server, Sep. 15, 2021, 13 pages. [cited by applicant]
Sybooks online, Snapshot isolation, 2012 (Year: 2012) 1 page. [cited by applicant]
Sybooks online., Enabling snapshot isolation, 2012 (Year: 2012) 1 page. [cited by applicant]