IP Library Granted Patent US 12,737,264
Granted Patent B2
US 12,737,264 · App. 19/035,026 · Granted Sep 15, 2026

System and method for querying a backup of a database system based on a temporal table

Inventors: Ron Kimchi (Tel Aviv, IL); Ofir Ehrlich (Tel Aviv, IL); Dmitry Kuznetsov (Tel Aviv Yafo, IL); Assaf Natanzon (Tel Aviv, IL); Yaniv Ptashnik (Tel Mond, IL); Ran Mizrachi (Mishmar Hashiva, IL); Peleg Kazaz (Tel Aviv, IL); Benjamin Gruenbaum (Herzliya, IL)
Assignee: Eon IO, Ltd.
G06F11/1464G06F16/221G06F16/245G06F16/2477G06F2201/80
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,737,264
App. No.
19/035,026
Granted
Sep 15, 2026
Kind
B2
Abstract

A method and system for generating a temporal, query-ready database backup. The method includes generating a plurality of backups of a database, each of the backups including a plurality of backup data objects, each of the backup data objects including a plurality of rows stored in a file having a column-oriented format, and each backup corresponding to a unique point in time; assigning each row in a file to a row group, the row group having a unique identifier; generating a temporal table including a column of row group identifiers for each backup of the plurality of backups; receiving a query for a backup of the plurality of backups created at different point in times; and generating a query result based on the temporal table and at least the respective backup data object, wherein results are from backups of the plurality of backups related to different point in time.

Claims (59)

1 . A method for generating a temporal query ready database backup, the method comprising:

generating a plurality of backups of a database, each of the backups including a plurality of backup data objects, each of the backup data objects including a plurality of rows stored in a file having a column-oriented format, and each backup corresponding to a unique point in time;

assigning each row in a file to a row group, the row group having a unique identifier;

generating a temporal table including a first column of row group identifiers for each backup of the plurality of backups and a second column of point-in-time identifiers, each point-in-time identifier identifying a specific backup point;

receiving a query for a backup of the plurality of backups;

generating, based on the query and the temporal table, a temporal query;

executing the temporal query on a plurality of the backup data objects, wherein the temporal query is modified to return a value from a column indicating a row identifier; and

generating a query result based on the temporal table and at least the respective backup data object.

2 . The method of claim 1 , further comprising:

generating a relevancy table based on each unique identifier; and

inserting a first value in the relevancy table indicating a first time of entry for a unique identifier.

3 . The method of claim 2 , further comprising:

inserting a second value in the relevancy table indicating a final time of entry for the unique identifier.

4 . The method of claim 3 , further comprising:

inserting the second value in response to determining that a row group corresponding to the unique identifier includes a row with a changed value.

5 . The method of claim 2 , further comprising:

generating the query result further based on the relevancy table.

6 . The method of claim 1 , further comprising:

joining a plurality of query results, each query result based on a backup data object.

7 . The method of claim 6 , further comprising:

joining the plurality of query results based on a row identifier.

8 . The method of claim 1 , further comprising:

assigning each row to a row group based on a hash value generated for a row of the row group.

9 . The method of claim 1 , further comprising:

generating a plurality of temporal tables, each temporal table including identifiers of row groups stored in a backup generated at a time corresponding to a time associated with the temporal table.

10 . A non-transitory computer-readable medium storing a set of instructions for generating a temporal, query-ready database backup, the set of instructions comprising:

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

generate a plurality of backups of a database, each of the backups including a plurality of backup data objects, each of the backup data objects including a plurality of rows stored in a file having a column-oriented format, and each backup corresponding to a unique point in time;

assign each row in a file to a row group, the row group having a unique identifier;

generate a temporal table including a first column of row group identifiers for each backup of the plurality of backups and a second column of point-in-time identifiers, each point-in-time identifier identifying a specific backup point;

receive a query for a backup of the plurality of backups; generate, based on the query and the temporal table, a temporal query;

execute the temporal query on a plurality of the backup data objects, wherein the temporal query is modified to return a value from a column indicating a row identifier; and

generate a query result based on the temporal table and at least the respective backup data object.

11 . A system for generating a temporal, query-ready database backup, comprising:

one or more processors configured to:

generate a plurality of backups of a database, each of the backups including a plurality of backup data objects, each of the backup data objects including a plurality of rows stored in a file having a column-oriented format, and each backup corresponding to a unique point in time;

assign each row in a file to a row group, the row group having a unique identifier;

generate a temporal table including a first column of row group identifiers for each backup of the plurality of backups and a second column of point-in-time identifiers, each point-in-time identifier identifying a specific backup point;

receive a query for a backup of the plurality of backups;

generate, based on the query and the temporal table, a temporal query;

execute the temporal query on a plurality of the backup data objects, wherein the temporal query is modified to return a value from a column indicating a row identifier; and

generate a query result based on the temporal table and at least the respective backup data object.

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

generate a relevancy table based on each unique identifier; and

insert a first value in the relevancy table indicating a first time of entry for a unique identifier.

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

insert a second value in the relevancy table indicating a final time of entry for the unique identifier.

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

insert the second value in response to determining that a row group corresponding to the unique identifier includes a row with a changed value.

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

generate the query result further based on the relevancy table.

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

join a plurality of query results, each query result based on a backup data object.

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

join the plurality of query results based on a row identifier.

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

assign each row to a row group based on a hash value generated for a row of the row group.

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

generate a plurality of temporal tables, each temporal table including identifiers of row groups stored in a backup generated at a time corresponding to a time associated with the temporal table.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 23, 2025
From: KIMCHI, RON; EHRLICH, OFIR; KUZNETSOV, DMITRY; NATANZON, ASSAF; PTASHNIK, YANIV; MIZRACHI, RAN; KAZAZ, PELEG; GRUENBAUM, BENJAMIN
To: EON IO, LTD.
Reel/Frame 069983/0074 →
Continuity (1)
Related Publication 20260211778A1 · Jul 23, 2026
References Cited (9)
US 9262491B2 · Nambiar · 2016 [cited by examiner]
US 12174845B1 · Gordon · 2024 [cited by examiner]
US 20110191299A1 · Huynh Huu · 2011 [cited by examiner]
US 20200012659A1 · Dageville · 2020 [cited by examiner]
US 20200364201A1 · Cseri · 2020 [cited by examiner]
US 20220019784A1 · Wen · 2022 [cited by examiner]
US 20230409545A1 · Gupta · 2023 [cited by examiner]
US 20240354300A1 · Plattner · 2024 [cited by examiner]
US 20240427794A1 · Dhaliwal · 2024 [cited by examiner]