IP Library Granted Patent US 12,487,890
Granted Patent B2
US 12,487,890 · App. 18/511,383 · Granted Dec 2, 2025

Automated data backup

Inventors: Jason K. S. Choy (Short Hills, NJ); Adrian Edward Kunzle (New York, NY); Harel Oz Yadgar (Jerusalem, IL); Etai Litov (Gan-Yavne, IL)
Assignee: Salesforce, Inc.
G06F11/1458G06F2201/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,487,890
App. No.
18/511,383
Granted
Dec 2, 2025
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for backing up data. One of the methods includes, as part of a data backup process for a plurality of data objects, determining, for each of two or more data objects from the plurality of data objects and using metadata for the respective data object, a backup score that indicates an importance of the respective data object; determining different priority levels for two or more subsets of the plurality of data objects based at least in part on the backup scores; and backing up at least one of the subsets of the plurality of data objects according to the respective priorities of the subsets.

Claims (46)

1 . A method comprising:

as part of a data backup process for a plurality of data objects:

receiving, from data storage, a schema that indicates relationships between different types of data objects in the plurality of data objects and is separate data from the plurality of data objects;

calculating, for each of two or more data objects from the plurality of data objects and using metadata for a respective data object that includes one or more relationships from the received schema, a backup score that indicates an importance of the respective data object, wherein using the metadata includes calculating, based on one or more relationships from the received schema, an impact ratio of the respective data object and an entity rank of an entity corresponding to the data object;

determining different priority levels for two or more subsets of the plurality of data objects based at least in part on the backup scores; and

backing up at least one of the subsets of the plurality of data objects according to the respective priority levels of the subsets.

2 . The method of claim 1 , wherein the impact ratio is calculated based on change data of the respective data object indicating two or more changes previously made to the respective data object, and wherein the impact ratio is calculated by applying different weights to different types of changes included in the two or more changes.

3 . The method of claim 1 , wherein the impact ratio of the respective data object is calculated based on a relationship between a total number of changes for a given entity corresponding to the respective data object divided by the total number of changes corresponding to the plurality of data objects.

4 . The method of claim 1 , wherein the different types of data objects comprise at least one of different types of tables or different types of fields.

5 . The method of claim 1 , further comprising, as part of the data backup process:

backing up the schema.

6 . The method of claim 1 , wherein the backup score is further calculated based at least in part on how many changes to the respective data object were made within a time period.

7 . The method of claim 1 , wherein the backup score is further calculated based at least in part on how many references to the respective data object are included in other data objects in the plurality of data objects.

8 . The method of claim 7 , further comprising:

determining a number of references to the respective data object that are included in the other data objects in the plurality of data objects, wherein the number of references is based at least in part on one or more artifacts for the other data objects that do not include content of the other data objects.

9 . The method of claim 1 , wherein the backup score is further calculated based on:

determining, for a child object of the respective data object in the plurality of data objects, a child backup score.

10 . The method of claim 1 , wherein the backup score is further calculated based on:

determining child backup scores for all children of the respective data object; and

determining a combination score from the child backup scores.

11 . The method of claim 10 , wherein determining the combination score from the child backup scores comprises:

obtaining a discount factor based on at least the impact ratio or the entity rank of the respective data object; and

applying the discount factor to a summation of the child backup scores.

12 . The method of claim 1 , wherein the backup score is further calculated based on determining a number of references to the respective data object.

13 . The method of claim 12 , wherein the respective data object is a data field.

14 . The method of claim 12 , further comprising:

determining that the backup score of the respective data object satisfies a score threshold; and

in response to the determination, configuring backup monitoring for the respective data object.

15 . The method of claim 1 , wherein calculating the backup score is further performed using a backup score determined for a previously backed up instance of the respective data object.

16 . The method of claim 1 , further comprising, prior to backing up at least one of the subsets of the plurality of data objects:

determining using the backup scores, (1) a frequency for backing up at least one of the subsets of the plurality of data objects and (2) a location for backing up at least one of the subsets of the plurality of data objects, wherein backing up at least one of the subsets of the plurality of data objects is performed at the frequency and in the location.

17 . The method of claim 16 , wherein the location for storing a portion of the plurality of data objects indicates a type, from a plurality of types, of computer memory to use for backup.

18 . The method of claim 1 , wherein the entity rank is calculated based on reference data indicating one or more references to or from the respective data object, wherein a greater number of references to or from a first respective data object results in a greater entity rank for the first respective data object than one or more other respective data objects.

19 . The method of claim 1 , further comprising:

backing up, based at least in part on the backup scores, one or more of the plurality of data objects to a first location and a different second location.

20 . One or more computer-readable storage media encoded with instructions that, when executed by one or more computers, cause the one or more computers to perform, as part of a data backup process for a plurality of data objects, operations comprising:

receiving, from data storage, a schema that indicates relationships between different types of data objects in the plurality of data objects and is separate data from the plurality of data objects;

calculating, for each of two or more data objects from the plurality of data objects and using metadata for a respective data object that includes one or more relationships from the received schema, a backup score that indicates an importance of the respective data object, wherein using the metadata includes calculating, based on one or more relationships from the received schema, an impact ratio of the respective data object and an entity rank of an entity corresponding to the data object;

determining different priority levels for two or more subsets of the plurality of data objects based at least in part on the backup scores; and

backing up at least one of the subsets of the plurality of data objects according to the respective priority levels of the subsets.

21 . A system comprising:

one or more computers and one or more storage devices on which are stored instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform, as part of a data backup process for a plurality of data objects, operations comprising:

receiving, from data storage, a schema that indicates relationships between different types of data objects in the plurality of data objects and is separate data from the plurality of data objects;

calculating, for each of two or more data objects from the plurality of data objects and using metadata for a respective data object that includes one or more relationships from the received schema, a backup score that indicates an importance of the respective data object, wherein using the metadata includes calculating, based on one or more relationships from the received schema, an impact ratio of the respective data object and an entity rank of an entity corresponding to the data object;

determining different priority levels for two or more subsets of the plurality of data objects based at least in part on the backup scores; and

backing up at least one of the subsets of the plurality of data objects according to the respective priority levels of the subsets.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2025
From: SALESFORCE.COM ISRAEL LTD.
To: SALESFORCE, INC.
Reel/Frame 071024/0288 →
MERGER Recorded May 5, 2025
From: OWN DATA COMPANY LTD
To: SALESFORCE.COM ISRAEL LTD.
Reel/Frame 071177/0415 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2024
From: CHOY, JASON K. S.; KUNZLE, ADRIAN EDWARD; YADGAR, HAREL OZ; LITOV, ETAI
To: OWN DATA COMPANY LTD
Reel/Frame 066151/0237 →
Continuity (1)
Related Publication 20250165351A1 · May 22, 2025
References Cited (26)
US 7509468B1 · Dalal et al. · 2009 [cited by applicant]
US 8260750B1 · Gugick et al. · 2012 [cited by applicant]
US 10180885B2 · Blackburn · 2019 [cited by examiner]
US 10936435B2 · Natanzon et al. · 2021 [cited by applicant]
US 11108859B2 · Das et al. · 2021 [cited by applicant]
US 20120089572A1 · Raichstein et al. · 2012 [cited by applicant]
US 20150186076A1 · Andrews · 2015 [cited by examiner]
US 20180024893A1 · Sella · 2018 [cited by examiner]
US 20180189147A1 · Banasik et al. · 2018 [cited by applicant]
US 20190138727A1 · Dontov · 2019 [cited by examiner]
US 20190155695A1 · Protasov et al. · 2019 [cited by applicant]
US 20190163374A1 · Venkatesh · 2019 [cited by examiner]
US 20200159624A1 · Malkov et al. · 2020 [cited by applicant]
US 20200311023A1 · Rubin · 2020 [cited by examiner]
US 20210049075A1 · Gibbons et al. · 2021 [cited by applicant]
US 20210049077A1 · Gibbons et al. · 2021 [cited by applicant]
US 20210248041A1 · Yan et al. · 2021 [cited by applicant]
US 20210286678A1 · Reddy A V · 2021 [cited by examiner]
US 20220283907A1 · Murti · 2022 [cited by examiner]
US 20220391683A1 · Cmielowski · 2022 [cited by examiner]
US 20230056105A1 · Smith et al. · 2023 [cited by applicant]
US 20230229565A1 · Cheriyan · 2023 [cited by applicant]
US 20230315552A1 · Cacheaux · 2023 [cited by examiner]
US 20240152818A1 · Schmidt · 2024 [cited by examiner]
EP 3538998 · 2021 [cited by applicant]
Wikipedia.org [online], “Remote Backup Service,” published on Oct. 1, 2021, retrieved on Nov. 10, 2021, retrieved from URL<https://en.wikipedia.org/wiki/Remote_backup_service>, 8 pages. [cited by applicant]