IP Library Granted Patent US 10,067,945
Granted Patent B2
US 10,067,945 · App. 14/629,583 · Granted Sep 4, 2018

File and move data to shrink datafiles

Inventors: Daniel T. Wood (Irvine, CA); Jacques R. Kilchoer (Irvine, CA)
Assignee: QUEST SOFTWARE INC.
G06F17/30135G06F3/0608
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,067,945
App. No.
14/629,583
Granted
Sep 4, 2018
Kind
B2
Abstract

A system, method, and computer-readable medium for consolidating all the currently used areas to the beginning of the datafile by performing a datafile reorganization operation. With this consolidation, more space can be recovered from the datafile. More specifically, with the consolidation, because each used area can contain extents related to several different segments, locating all the segments that have extents in a used area and relocate these segments to lower addresses in the datafile can be challenging.

Claims (61)

1. A computer-implementable method, comprising:

locating segments that have extents in a used area of a datafile, the datafile comprising a datafile header portion, one or more datafile used area portions, one or more datafile unused but previously used area portion, and a datafile formatted portion, each segment containing a plurality of extents spread across non-contiguous areas of at least one datafile; and

relocating the segments that have extents in a used area to lower addresses in the datafile, the relocating the segments consolidating all unused extents within the datafile, for each segment to be relocated, the relocating the segments comprising:

creating a copy of the segment;

while creating the copy of the segment, identifying any changes made to the segment;

performing the changes to the copy of the segment;

swapping the segment with the copy of the segment; and

deleting the segment to release one or more extents at a higher address in the datafile.

2. The method of claim 1 , wherein:

all the extents in the used area are moved while a logical object of the datafile is being used, without affecting the applications using the logical objects.

3. The method of claim 1 , wherein the relocating further comprises:

copying the identified segments such that extents with corresponding data are created at lower addresses in the datafile.

4. The method of claim 3 , wherein:

after the copying is complete, the original segments are deleted so as to release locations corresponding to original extents at higher addresses in the datafile.

5. The method of claim 1 , wherein the locating further comprises:

identifying segments that own all used extents.

6. The method of claim 5 , wherein:

identifying segments that own used extents also identifies unused extents, including extents which were previously used and are above a location of a last used extent, extents which were previously used and are within a location of a last used extent and those that were unused.

7. The method of claim 1 , wherein swapping the segment with the copy of the segment comprises:

removing the segment from a storage location; and

saving the copy of the segment to the storage location.

8. The method of claim 1 , wherein identifying any changes made to the segment comprises identifying at least one of: an addition to, a deletion of at least a portion of, or a modification to the segment.

9. A system comprising:

a processor;

a data bus coupled to the processor; and

a non-transitory, computer-readable storage medium embodying computer program code, the non-transitory, computer-readable storage medium being coupled to the data bus, the computer program code interacting with a plurality of computer operations and comprising instructions executable by the processor to cause a system to perform operations comprising:

locating segments that have extents in a used area of the a datafile, the datafile comprising a datafile header portion, one or more datafile datafile used area portions, one or more datafile datafile unused but previously used area portion and a datafile formatted portion, each segment containing a plurality of extents spread across non-contiguous areas of at least one datafile; and

relocating the segments that have extents in a used area to lower addresses in the datafile, the relocating the segments consolidating all unused extents within the datafile, for each segment to be relocated, the relocating the segments comprising:

creating a copy of the segment;

while creating the copy of the segment, identifying any changes made to the segment;

performing the changes to the copy of the segment;

swapping the segment with the copy of the segment; and

deleting the segment to release one or more extents at a higher address in the datafile.

10. The system of claim 9 , wherein:

all the extents in the used area are moved while a logical object of the datafile is being used, without affecting the applications using the logical objects.

11. The system of claim 9 , wherein the relocating further comprises:

copying the identified segments such that extents with corresponding data are created at lower addresses in the datafile.

12. The system of claim 11 , wherein:

after the copying is complete, the original segments are deleted so as to release locations corresponding to original extents at higher addresses in the datafile.

13. The system of claim 9 , wherein the locating further comprises:

identifying segments that own all used extents.

14. The system of claim 13 , wherein:

identifying segments that own used extents also identifies unused extents, including extents which were previously used and are above a location of a last used extent, extents which were previously used and are within a location of a last used extent and those that were unused.

15. A non-transitory, computer-readable storage medium embodying computer program code, the computer program code comprising computer executable instructions that, when executed by a processor, cause a system to perform operations comprising:

locating segments that have extents in a used area of a datafile, the datafile comprising a datafile header portion, one or more datafile datafile used area portions, one or more datafile datafile unused but previously used area portion and a datafile formatted portion, each segment containing a plurality of extents spread across non-contiguous areas of at least one datafile; and

relocating the segments that have extents in a used area to lower addresses in the datafile, the relocating the segments consolidating all unused extents within the datafile, for each segment to be relocated, the relocating the segments comprising:

creating a copy of the segment;

while creating the copy of the segment, identifying any changes made to the segment;

performing the changes to the copy of the segment;

swapping the segment with the copy of the segment; and

deleting the segment to release one or more extents at a higher address in the datafile.

16. The non-transitory, computer-readable storage medium of claim 15 , wherein:

all the extents in the used area are moved while a logical object of the datafile is being used, without affecting the applications using the logical objects.

17. The non-transitory, computer-readable storage medium of claim 15 , wherein the relocating further comprises:

copying the identified segments such that extents with corresponding data are created at lower addresses in the datafile.

18. The non-transitory, computer-readable storage medium of claim 17 , wherein:

after the copying is complete, the original segments are deleted so as to release locations corresponding to original extents at higher addresses in the datafile.

19. The non-transitory, computer-readable storage medium of claim 15 , wherein the locating further comprises:

identifying segments that own all used extents.

20. The non-transitory, computer-readable storage medium of claim 19 , wherein:

identifying segments that own used extents also identifies unused extents, including extents which were previously used and are above a location of a last used extent, extents which were previously used and are within a location of a last used extent and those that were unused.

Assignments (27)
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/0649 →
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 →
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 →
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 →
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 →
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 →
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 →
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 →
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 Aug 8, 2017
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 043482/0228 →
CORRECTIVE ASSIGNMENT TO CORRECT THE RECEIVING PARTY NAME PREVIOUSLY RECORDED AT REEL: 035012 FRAME: 0514. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT . Recorded Aug 8, 2017
From: WOOD, DANIEL T.; KILCHOER, JACQUES R.
To: DELL SOFTWARE INC.
Reel/Frame 043481/0117 →
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 →
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 →
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 035858 FRAME 0612 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.; STATSOFT, INC.
Reel/Frame 040017/0067 →
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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2015
From: WOOD, DANIEL T.; KILCHOER, JACQUES R.
To: DELL SOFTWARE, INC.
Reel/Frame 035012/0514 →
Continuity (1)
Related Publication 20160246808A1 · Aug 25, 2016