IP Library Granted Patent US 10,671,565
Granted Patent B2
US 10,671,565 · App. 14/695,681 · Granted Jun 2, 2020

Partitioning target data to improve data replication performance

Inventor: William James Romine (Aliso Viejo, CA)
Assignee: QUEST SOFTWARE INC.
G06F16/113G06F16/214G06F16/22
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 10,671,565
App. No.
14/695,681
Filed
Apr 24, 2015
Granted
Jun 2, 2020
Kind
B2
Examiner
HU, JENSEN
Art Unit
2169
USPC
707/740
Abstract

The presently claimed invention relates to a system and method for organizing data replicated in a target data repository. The method of the presently claimed invention may receive data from a primary data store for replication in the target data repository. The method may then determine that the received data should be organized and stored according to one or more priority metrics. The method may then organize the received data according to the one or more priority metrics, and store the received data based on the priority metrics. Higher priority data may be stored faster data storage devices or be stored in smaller files where lower priority data may be stored in slower data storage devices or be stored in larger files.

Claims (64)

1. A method for organizing replicated data stored in a target data repository, the method comprising:

receiving data for storage in the target data repository from a primary data repository, wherein the received data is associated with a data structure, wherein the primary data repository includes a relational database, wherein the target data repository includes a write-once file system;

separating the received data into a first data set and a second data set according to one or more priority metrics, wherein the first data set is assigned a first priority level and the second data set is assigned a second priority level;

splitting the first data set into a plurality of data files;

separating the plurality of data files into a first data file and a second data file, wherein the first data file is assigned a higher probability of changing with respect to the first data set, than the second data file;

storing the received data based on the priority metrics into different data files that include the first data file of the plurality of data files;

identifying that data associated with the first data set has changed;

updating the first data set with the changed data, wherein the updating of the first data set includes re-writing at least a portion of the first data file; and

rebuilding the data associated with the data structure by:

combining the first data set with the second data set; and

writing the data associated with the data structure as a new file in the write-once file system.

2. The method of claim 1 , wherein the first data set is stored on a first type of data storage device, and the data structure is a table, wherein the changed data is associated with information stored in at least one row of the table.

3. The method of claim 2 , wherein the second data set is stored on a second type of data storage device.

4. The method of claim 1 , wherein the first data set is organized in the first data file and the second data set is organized in a second data file, wherein the first file is split into the plurality of data files, wherein at least one of the first data file or each data file of the plurality of data files are smaller than the second data file.

5. The method of claim 1 , wherein the primary data storage repository is a relational database management system (RDBMS) and the target data storage repository includes a Hadoop distributed file system (HDFS).

6. The method of claim 1 , wherein the primary and the target data storage repositories are both relational database management systems (RDBMS).

7. The method of claim 1 , further comprising:

receiving data for storage in the target data repository from a primary data repository;

identifying that the received data should be re-organized according to one or more priority metrics;

re-organizing the received data according to the one or more priority metrics; and

storing the received data based on the priority metrics.

8. The method of claim 1 , further comprising:

receiving data for storage in the target data repository from a primary data repository; and

storing the received data based on current priority metrics.

9. A non-transitory computer readable storage medium having embodied thereon a program executable by a processor for organizing replicated data stored in a target data repository, the method comprising:

receive data for storage in the target data repository from a primary data repository, wherein the received data is associated with a data structure, wherein the primary data repository includes a relational database, wherein the target data repository includes a write-once file system;

separate the received data into a first data set and a second set according to one or more priority metrics, wherein the first data set is assigned a first priority level and the second data set is assigned a second priority level;

split the first data set into a plurality of data files;

separate the plurality of data files into a first data file and a second data file, wherein the first data file is assigned a higher probability of changing with respect to the first data set, than the second data file;

store the received data based on the priority metrics into different data files that include the first data file;

identify that data associated with the first data set has changed;

updating the first data set with the changed data, wherein the updating of the first data set includes re-writing at least a portion of the first data file; and

rebuild the data associated with the data structure by:

combining the first data set with the second data set; and

writing the data associated with the data structure as a new file in the write-once file system.

10. The non-transitory computer readable storage medium of claim 9 , wherein the first data set is stored on a first type of data storage device, and the data structure is a table, wherein the changed data is associated with information stored in at least one row of the table.

11. The non-transitory computer readable storage medium of claim 10 , wherein the second data set is stored on a second type of data storage device.

12. The non-transitory computer readable storage medium of claim 9 , wherein the first data set is organized in the first data file and the second data set is organized in a second data file, wherein the first file is split into the plurality of data files, wherein at least one of the first file or each data file of the plurality of data files are smaller than the second data file.

13. The non-transitory computer readable storage medium of claim 9 , wherein the primary data storage repository is a relational database management system (RDBMS) and the target data storage repository includes a Hadoop distributed file system (HDFS).

14. The non-transitory computer readable storage medium of claim 9 , wherein the primary and the target data storage repositories are both relational database management systems (RDBMS).

15. The non-transitory computer readable storage medium of claim 9 , the program further executable to:

receive data for storage in the target data repository from a primary data repository

identify that the received data should be re-organized according to one or more priority metrics;

re-organize the received data according to the one or more priority metrics; and

store the received data based on the priority metrics.

16. The non-transitory computer readable storage medium of claim 9 , the program further executable to:

receive data for storage in the target data repository from a primary data repository; and

store the received data based on current priority metrics.

17. An apparatus for organizing replicated data stored in a target data repository, the apparatus comprising:

a memory;

a data communication interface that receives data for storage in the target data repository from a primary data repository, wherein the received data is associated with a data structure, wherein the primary data repository includes a relational database, wherein the target data repository includes a write-once file system; and

a processor that executes instructions stored in memory to:

separate the received data into a first data set and a second data set according to one or more priority metrics, wherein the first data set is assigned a first priority level and the second data set is assigned a second priority level;

split the first data set into a plurality of data files;

separate the plurality of data files into a first data file and a second data file, wherein the first data file is assigned a higher probability of changing with respect to the first data set, than the second data file;

organize the received data for storage in the target data repository based on the priority metrics into different data files that include the first data file;

identify that data associated with the first data set has changed;

update the first data set with the changed data, wherein the updating of the first data set includes re-writing at least a portion of the first data file; and

rebuild the data associated with the data structure by:

combining the first data set with the second data set; and

writing the data associated with the data structure as a new file in the write-once file system.

18. The apparatus of claim 17 , wherein the first data set is stored on a first type of data storage device, and the data structure is a table, wherein the changed data is associated with information stored in at least one row of the table.

19. The apparatus of claim 18 , wherein the second data set is stored on a second type of data storage device.

20. The apparatus of claim 17 , wherein the first data set is organized in the first data file and the second data set is organized in a second data file, wherein the first file is split into the plurality of data files, wherein at least one of the first data file or each data file of the plurality of data files are smaller than the second data file.

Assignments (26)
RELEASE OF SECURITY INTEREST Recorded Nov 19, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073606/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 18, 2025
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073613/0326 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0001 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0649 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: GOLDMAN SACHS BANK USA
Reel/Frame 058945/0778 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059105/0479 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059096/0683 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 058952/0279 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0347 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0486 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS RECORDED AT R/F 040581/0850 Recorded May 22, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 046211/0735 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 040587 FRAME: 0624. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 28, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 044811/0598 →
CHANGE OF NAME Recorded Jul 20, 2017
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 043275/0001 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 10, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040587/0624 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 9, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040581/0850 →
RELEASE OF SECURITY INTEREST Recorded Oct 31, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0467 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040039/0642) Recorded Oct 31, 2016
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0016 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040030/0187 →
RELEASE OF REEL 035860 FRAME 0878 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.; STATSOFT, INC.
Reel/Frame 040027/0158 →
RELEASE OF REEL 035860 FRAME 0797 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.; STATSOFT, INC.
Reel/Frame 040028/0551 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040039/0642 →
RELEASE OF REEL 035858 FRAME 0612 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.; STATSOFT, INC.
Reel/Frame 040017/0067 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded Jun 9, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.; STATSOFT, INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 035858/0612 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Jun 9, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.; STATSOFT, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 035860/0797 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded Jun 9, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; COMPELLENT TECHNOLOGIES, INC; SECUREWORKS, INC.; STATSOFT, INC.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 035860/0878 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2015
From: ROMINE, WILLIAM JAMES
To: DELL SOFTWARE, INC.
Reel/Frame 035510/0577 →
Continuity (1)
Related Publication 20160314147A1 · Oct 27, 2016