IP Library Granted Patent US 12,705,140
Granted Patent B2
US 12,705,140 · App. 18/183,971 · Granted Aug 11, 2026

Continuous data protection using retroactive backup snapshots

Inventors: Adrian Kunzle (New York, NY); Ariel Berkman (Herzliya, IL); Etai Litov (Gan Yavne, IL); Jason K. S. Choy (Short Hills, NJ)
Assignee: Salesforce, Inc.
G06F11/1461G06F16/2365G06F2201/80G06F2201/84
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,705,140
App. No.
18/183,971
Filed
Mar 15, 2023
Granted
Aug 11, 2026
Kind
B2
Art Unit
2153
USPC
707/609
Abstract

Methods, storage systems and computer program products create a transactionally consistent backup of a database by generating, during a time period beginning with a first time and ending with a second time, a copy of the database including multiple tables. During the time period, queries that request updates to the tables are periodically generated and conveyed to a software system managing the database, responses including updates to the tables are received responsively to the periodic queries, and the received updates are stored to a journal. A set of the updates not stored in the copy are identified, in the journal, and copy of the database is updated with the updates so as to ensure that the copy includes the transactionally consistent backup of the database.

Claims (39)

1 . A method for use with a database comprising multiple tables, comprising:

during a time period beginning with a first time and ending with a second time, copying the database to a file;

receiving, from a software system managing the database, updates made to the tables during the time period, and storing the received updates to a journal including a raw journal and a set of journal partitions into which the raw journal is split; and

by accessing a set of partition records, which specify a lowest key value and a highest key value in each of the journal partitions:

identifying, in the journal, a set of the updates not stored in the file; and

updating the file, by a processor, with the set of the updates so that the file comprises a transactionally consistent backup of the database.

2 . The method according to claim 1 , wherein the journal and the file comprise respective structured text files.

3 . The method according to claim 2 , wherein the structured text files comprise comma-separated value (CSV) files.

4 . The method according to claim 1 , wherein the journal and the file comprise respective binary files.

5 . The method according to claim 1 , wherein the journal comprises one or more JavaScript Object Notation (JSON) files.

6 . The method according to claim 1 , further comprising generating and conveying, to the software system, queries that request the updates, wherein receiving the updates comprises receiving the updates by receiving responses to the queries that include the updates.

7 . The method according to claim 6 , wherein generating and conveying the queries comprises generating and conveying the queries during the time period.

8 . The method according to claim 6 , wherein generating and conveying the queries comprises periodically generating and conveying the queries.

9 . The method according to claim 6 , wherein the software system comprises a customer relationship management (CRM) application, and wherein the queries comprise calls to an application programming interface (API) of the CRM application.

10 . The method according to claim 9 , wherein the tables comprise respective sets of fields, and wherein a given response comprises a plurality of updates to one or more of the fields in one or more of the tables.

11 . An apparatus for use with a database comprising multiple tables, comprising:

a memory, configured to store;

a journal including a raw journal and a set of journal partitions into which the raw journal is split, and

a set of partition records, which specify a lowest key value and a highest key value in each of the journal partitions; and

one or more processors configured:

to copy the database, during a time period beginning with a first time and ending with a second time, to a file,

to receive, from a software system managing the database, updates made to the tables during the time period, and to store the received updates to the journal, and

by accessing the set of partition records:

to identify, in the journal, a set of the updates not stored in the file, and

to update the file with the set of the updates so that the file comprises a transactionally consistent backup of the database.

12 . A computer software product comprising a tangible non-transitory computer-readable medium in which program instructions are stored, which instructions, when read by one or more processors, cause the processors:

to copy to a file, during a time period beginning with a first time and ending with a second time, a database comprising multiple tables,

to receive, from a software system managing the database, updates made to the tables during the time period, and to store the received updates to a journal including a raw journal and a set of journal partitions into which the raw journal is split, and

by accessing a set of partition records, which specify a lowest key value and a highest key value in each of journal partitions:

to identify, in the journal, a set of the updates not stored in the file, and

to update the file with the set of the updates so that the file comprises a transactionally consistent backup of the database.

13 . The computer software product according to claim 12 , wherein the journal and the file comprise respective structured text files.

14 . The computer software product according to claim 13 , wherein the structured text files comprise comma-separated value (CSV) files.

15 . The computer software product according to claim 12 , wherein the journal and the file comprise respective binary files.

16 . The computer software product according to claim 12 , wherein the journal comprises one or more JavaScript Object Notation (JSON) files.

17 . The computer software product according to claim 12 , wherein the processors are further configured to generate and convey, to the software system, queries that request the updates, wherein the processors are configured to receive the updates by receiving responses to the queries that include the updates.

18 . The computer software product according to claim 17 , wherein the processors are configured to generate and convey the queries during the time period.

19 . The computer software product according to claim 17 , wherein the software system comprises a customer relationship management (CRM) application, and wherein the queries comprise calls to an application programming interface (API) of the CRM application.

20 . The computer software product according to claim 17 , wherein the tables comprise respective sets of fields, and wherein a given one of the responses includes updates to one or more of the fields in one or more of the tables.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2025
From: SALESFORCE.COM ISRAEL LTD.
To: SALESFORCE, INC.
Reel/Frame 071766/0207 →
MERGER AND CHANGE OF NAME Recorded Jul 20, 2025
From: OWN DATA COMPANY LTD; SALESFORCE.COM ISRAEL LTD
To: SALESFORCE.COM ISRAEL LTD
Reel/Frame 072092/0562 →
CHANGE OF NAME Recorded Dec 27, 2023
From: OWNBACKUP LTD.
To: OWN DATA COMPANY LTD.
Reel/Frame 066128/0974 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2023
From: KUNZLE, ADRIAN; BERKMAN, ARIEL; LITOV, ETAI; CHOY, JASON K. S.
To: OWNBACKUP LTD.
Reel/Frame 062996/0707 →
Continuity (3)
Continuation In Part 17528290 · Nov 17, 2021
Provisional Application 63115076 · Nov 18, 2020
Related Publication 20230222038A1 · Jul 13, 2023
References Cited (32)
US 6460055B1 · Midgley et al. · 2002 [cited by applicant]
US 9971655B1 · Li · 2018 [cited by examiner]
US 10210171B2 · Outcalt · 2019 [cited by examiner]
US 10437783B1 · Cohen · 2019 [cited by examiner]
US 10853182B1 · Vig · 2020 [cited by examiner]
US 11080336B2 · Van Dusen · 2021 [cited by applicant]
US 11157463B2 · Barabas et al. · 2021 [cited by applicant]
US 20070185923A1 · Nishikawa · 2007 [cited by examiner]
US 20080121690A1 · Carani et al. · 2008 [cited by applicant]
US 20080307021A1 · Okada · 2008 [cited by examiner]
US 20080313005A1 · Nessland et al. · 2008 [cited by applicant]
US 20090240744A1 · Thomson · 2009 [cited by examiner]
US 20100114831A1 · Gilbert · 2010 [cited by examiner]
US 20110295806A1 · Erofeev · 2011 [cited by examiner]
US 20120169842A1 · Chuang et al. · 2012 [cited by applicant]
US 20130132397A1 · MacMillan · 2013 [cited by examiner]
US 20130275462A1 · Jung · 2013 [cited by applicant]
US 20130297610A1 · Devarakonda et al. · 2013 [cited by applicant]
US 20140058801A1 · Deodhar et al. · 2014 [cited by applicant]
US 20150089134A1 · Mukherjee · 2015 [cited by examiner]
US 20150156213A1 · Baker · 2015 [cited by applicant]
US 20160092484A1 · Finkler · 2016 [cited by applicant]
US 20170116552A1 · Deodhar et al. · 2017 [cited by applicant]
US 20170132429A1 · Bell · 2017 [cited by examiner]
US 20170329983A1 · Grant et al. · 2017 [cited by applicant]
US 20200089798A1 · Ganichot et al. · 2020 [cited by applicant]
US 20200110792A1 · Tsabba · 2020 [cited by applicant]
US 20200389495A1 · Crabtree et al. · 2020 [cited by applicant]
US 20210019288A1 · Pang · 2021 [cited by applicant]
US 20220197904A1 · Gillis · 2022 [cited by applicant]
U.S. Appl. No. 18/468,759 Office Action dated Jul. 19, 2024. [cited by applicant]
U.S. Appl. No. 16/950,963 Office Action dated Apr. 3, 2023. [cited by applicant]