IP Library Granted Patent US 11,689,619
Granted Patent B2
US 11,689,619 · App. 16/831,674 · Granted Jun 27, 2023

Highly efficient native e-mail message data protection for office 365

Inventors: Mark Malamut (Aliso Viejo, CA); Arun Murti (Mission Viejo, CA); Adam Brenner (Mission Viejo, CA)
Assignee: EMC IP Holding Company LLC
H04L67/1095G06F11/1464H04L51/42
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 11,689,619
App. No.
16/831,674
Granted
Jun 27, 2023
Kind
B2
Abstract

Embodiments for a method of storing e-mail messages using a cloud native e-mail data protection process. E-mail messages are first compressed and stored in a container along with selected metadata. An Email Record is created for each e-mail message. A Container Record is created for each newly created container, and a Backup Record is created for each container for each backup. Once the required records are created, the process facilitates the execution of backup operations, such as full or incremental backups of the stored e-mail messages. Data tiering is supported so that low cost object storage in the public cloud is used instead of expensive processing methods, such as deduplication backups.

Claims (65)

1. A computer-implemented method of providing data protection for cloud-native electronic mail (e-mail) files, comprising:

accessing the e-mail files provided as a Software-as-a-Service (SaaS) product comprising e-mail messages stored in object-based storage format in object storage and including a globally unique identifier (ID) for each message;

compressing e-mail messages using a data compression method;

storing the compressed e-mail messages in a container of a plurality of containers along with selected metadata, the container holding container data formatted as a number of documents indicator (NID) for documents in a data stream received through an application programming interface (API) of the SaaS product, a respective ID, and respective content data for each message;

creating an Email Record for each e-mail message;

creating a Container Record for each created container;

creating a Backup Record for each container in a backup operation comprising one of a full backup or an incremental backup;

grouping the e-mail messages together into a Container Data (CD) object of the container having e-mail message data respectively associated with a data ID field and a number of IDs (Nids) field;

first linking the Email Record to the Container Data through an index that references the data ID field and a respective bucket ID/container ID field that references the Nids field;

second linking the Backup Record to the Container Data through a respective bucket ID/container ID field that references the Nids field; and

third linking the Container Record to the Container Data through a respective bucket ID/container ID field that references the Nids field.

2. The method of claim 1 further comprising:

storing the Container Data object in an object stored denoted as a bucket corresponding to the bucket ID and located within a cloud computing account of a public cloud network.

3. The method of claim 2 wherein the container is configured to be a write once object, and holds up to 1024 e-mail messages.

4. The method of claim 2 wherein the Email Record holds metadata and location information about each e-mail message for partial restore and delete operations, and wherein there is one Email Record for each e-mail message.

5. The method of claim 2 wherein the Container Record holds metadata and location information about each container and is shared by all backup operations, and wherein there is one Container Record per container.

6. The method of claim 5 wherein the Backup Record comprises a pointer to a record that holds the container location, a delete bitmask (dmask), and a timestamp of a respective backup operation, and wherein there is one backup record for each point-in-time (PIT) backup.

7. The method of claim 2 wherein the cloud storage comprises storage media resident in a cloud computing network maintained by a cloud service provider, and provided for long term retention of the data objects, and wherein the storing step comprises storing the e-mail messages to the cloud storage media consisting of a plurality of data tiers based on storage cost.

8. The method of claim 7 wherein a full backup is performed by:

performing a full query against a graph API (application programming interface) of the cloud-native electronic e-mail application to retrieve a list of all e-mail messages;

creating a number of required containers for all the e-mail messages based on the number of e-mail messages per container;

creating system metadata records for each container; and

storing the system metadata records in a lightweight, portable database.

9. The method of claim 7 wherein an incremental backup is performed by:

requesting changes from a prior full or incremental backup point in time, wherein each incremental backup comprises a series of e-mail messages that are added, deleted or modified since a prior point in time;

making a copy of a Backup Record from the prior point in time;

changing a timestamp of the Backup Record to reflect a current incremental backup time;

processing changed e-mail messages as a synthetic e-mail delete followed by an e-mail add;

reading, for a deleted e-mail message, the Email Record to find an index and container associated with the deleted e-mail message; and

locating a Backup Record that contains a container ID for the deleted e-mail message and setting the dmask value to binary 1.

10. The method of claim 9 further comprising performing a full point-in-time recovery operation by:

finding all containers from the Backup Record using an appropriate timestamp; and

restoring, from each container, every e-mail message where the dmask value is set to binary 0.

11. The method of claim 9 further comprising performing a recovery of an individual e-mail message by finding a container that holds the individual e-mail message using an e-mail ID and a timestamp by:

retrieving a set of Email Records that have the e-mail ID;

querying a Backup Record table for the timestamp to find container IDs of interest from a set of container IDs retrieved from Email Records; and

inspecting dmask bits of each container related to the e-mail ID to find a binary value 0 dmask value indicating location of the individual e-mail message.

12. The method of claim 8 further comprising using the Container Record to move e-mail messages to lower cost storage of the data tiers by:

updating a last access timestamp for a container when the container is created or referenced in a new backup operation;

placing new or most recently created containers in higher cost storage; and

moving containers from higher cost storage to the lower cost storage in accordance with one or more data movement policies.

13. The method of claim 12 wherein the data tiers comprise hot, warm, and cold tiers of storage from highest cost to lowest cost storage, and wherein the data movement policies comprise an age of an e-mail message in days.

14. The method of claim 6 wherein the dmask of the Backup record is used to perform a garbage collection operation through a simple query operation.

15. A computer-implemented method of providing data protection for cloud-native electronic mail (e-mail) messages, comprising:

accessing the e-mail message provided as a Software-as-a-Service (SaaS) product and stored in object-based storage format in object storage and including a globally unique identifier (ID) for each message;

grouping e-mail messages together into a Container Data object of a container, wherein the container is configured to be a write once object, and holds up to 1024 e-mail messages, the container holding container data formatted as a number of documents indicator (NID) for messages in a data stream received through an application programming interface (API) of the SaaS product, a respective ID, and respective content data for each message;

storing the Container Data object in a bucket located within a cloud computing account of a public cloud, and including a second BID entry referencing the NID;

defining an Email Record to hold metadata and location information about each e-mail message to be used for partial restore and delete operations;

defining a Container Record to hold metadata and location information about each container;

defining a Backup Record consisting of a reference to a container, a bitmask and timestamp of a respective backup operation, wherein the backup operation is one of a full backup and an incremental backup, and including a third BID entry referencing the NID, the backup record containing one backup per container every backup point-in-time (PIT) to facilitate backup operations to the object store for any point in time; and

first linking the Email Record to the Container Data through an index that references the data ID field and a respective BID/container ID field that references the NID field;

second linking the Backup Record to the Container Data through a respective bucket ID/container ID field that references the NID field; and

third linking the Container Record to the Container Data through a respective BID/container ID field that references the NID field.

16. The method of claim 15 wherein the Container Data object is a data structure comprising a data fields including a number of e-mails in a data stream (Nids) field, an IdData field indicating an absolute byte offset and length of each e-mail in the data stream, and a data field comprising a compressed stream of data from a graph API of the cloud-native e-mail application.

17. The method of claim 16 wherein the Email Record is a data object comprising an e-mail ID field (Eid), a bucket ID field (Bid) indicating a bucket where a container of interest exists, an container ID field (Cid) and an index into a container where an e-mail of interest is stored.

18. The method of claim 17 wherein the Container Record is a data object comprising the Bid, the Cid, a tier field indicating a relative cost of storage media storing the containers, and a last access timestamp indicating a point in time of a most recent write or read of a container.

19. The method of claim 18 wherein the Backup Record is a data object comprising the last access timestamp, a delete mask (dmask) bit indicating a valid or invalid e-mail message in a container for a backup operation, the Bid, and the Cid.

20. A system providing data protection for cloud-native electronic mail (e-mail) messages, comprising:

a Software-as-a-Service (SaaS) product providing native applications generating the-mail messages and stored in object-based storage format in object storage and including a globally unique identifier (ID) for each message;

a Container Data object grouping e-mail messages together, wherein the container is configured to be a write once object, and holds up to 1024 e-mail messages;

a bucket storing the Container Data object within a cloud computing account of a public cloud;

an Email Record data structure to hold metadata and location information about each e-mail message to be used for partial restore and delete operations, the Email record indexing the container data through the ID, and including first bucket ID (BID) entry indicating location of a respective container and referencing the NID;

a Container Record data structure to hold metadata and location information about each container, and including a second BID entry referencing the NID;

a Backup Record data object consisting of a reference to a container, a bitmask and timestamp of a respective backup operation, wherein the backup operation is one of a full backup and an incremental backup, and including a third BID entry referencing the NID, the backup record containing one backup per container every backup point-in-time (PIT) to facilitate backup operations to the object store for any point in time; and

a component grouping the e-mail messages together into a Container Data (CD) object of the container having e-mail message data respectively associated with a data ID field and the NID field, first linking the Email Record to the Container Data through an index that references the data ID field and a respective BID/container ID field that references the NID field, second linking the Backup Record to the Container Data through a respective BID/container ID field that references the NID field, and third linking the Container Record to the Container Data through a respective BID/container ID field that references the NID field.

Assignments (11)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0081) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0441 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0917) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0509 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052852/0022) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060436/0582 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST AT REEL 052771 FRAME 0906 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0298 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2020
From: MALAMUT, MARK; MURTI, ARUN; BRENNER, ADAM
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 053925/0584 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0917 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052852/0022 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0081 →
SECURITY AGREEMENT Recorded May 28, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052771/0906 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →