IP Library Granted Patent US 9,348,831
Granted Patent B1
US 9,348,831 · App. 14/194,342 · Granted May 24, 2016

Persistent file system objects for management of databases

Inventors: Matthew C. McCline (Foster City, CA); Milena Bergant (San Mateo, CA)
Assignee: Pivotal Software, Inc.
G06F17/30117
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 9,348,831
App. No.
14/194,342
Filed
Feb 28, 2014
Granted
May 24, 2016
Kind
B1
Examiner
PHAM, TUAN A
Art Unit
2163
USPC
707/826
Abstract

In a mirrored database system, a careful write of intentions to perform the system actions is recorded in a persistent file system objects table that is flushed to disk prior to the actions being taken. The table durably and accurately records identities of file system objects that were in use by the database to facilitate creation and deletion of physical file directories and files on a database during crash recovery and during mirror resynchronize. In the event of a failure, crash recovery may quickly and easily identify file system objects which need to be cleaned up by reference to the persistent file system objects table. Similarly, resynchronization of the mirror database can be performed quickly by referring to the persistent file system table data to detect changes since the last database checkpoint.

Claims (40)

1. A computer-implemented method comprising:

receiving, by a create transaction of a database system, a request to create a database system object, the database system object including a physical file to be stored on a database file system;

generating, in a persistent file system object table, a persistent state record that includes a status of the database system object, wherein the persistent file system object table is a first table of the database system configured to store one or more references to physical files and a respective status of each of the one or more physical files, and the status of the database system object in the persistent state record indicates that the request to create the database system object is pending;

creating the requested database system object, including writing, in a system catalog, an entry referencing the database system object and referencing the persistent file system object table, the system catalog being a second table of the database system that is different from the persistent file system object table;

determining that the database system was interrupted before completion of the create transaction, wherein an interruption causes the entry in the system catalog to be unusable to reference the database system object or the persistent file system object table;

determining that the entry in the system catalog is no longer usable to reference the database system object and no longer usable to reference the persistent file system object table, and that the status of the database system object in the persistent state record indicates that the request to create the database system object is pending, wherein determining that the database system object is associated with the persistent state record indicating that the request to create the database system object is pending comprises determining the status of the database system object as part of a crash recovery process; and

in response to determining that the entry in the system catalog is unusable and that the database system object is associated with the persistent state record indicating that the request to create the database system object is pending, modifying the databased file system, including deleting the database system object from the database file system.

2. The method of claim 1 , wherein the interruption is a system crash.

3. The method of claim 2 , wherein the persistent state record includes a reference to the physical file, and wherein the entry in the system catalog includes a reference to a table of persistent state records that includes the persistent state record for the database system object.

4. The method of claim 1 , wherein the persistent state record has status values for the database system object comprising create pending, created, drop pending, and free.

5. The method of claim 1 , wherein generating the persistent state record comprises generating the persistent state record before initiating creation of the database system object.

6. The method of claim 1 , wherein determining that the entry in the system catalog is unusable comprises:

determining that the database system object has no corresponding entry in the system catalog of the database system.

7. A system comprising:

one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:

receiving, by a create transaction of a database system, a request to create a database system object, the database system object including a physical file to be stored on a database file system;

generating, in a persistent file system object table, a persistent state record that includes a status of the database system object, wherein the persistent file system object table is a first table of the database system, and the status indicates that the request to create the database system object is pending;

creating the requested database system object, including writing, in a system catalog, an entry referencing the database system object and referencing the persistent file system object table, the system catalog being a second table of the database system that is different from the persistent file system object table;

determining that the database system was interrupted before completion of the create transaction, wherein an interruption causes the entry in the system catalog to be unusable to reference the database system object;

determining that the entry in the system catalog is unusable and that the status of the database system object in the persistent state record indicates that the request to create the database system object is pending, wherein determining that the database system object is associated with the persistent state record indicating that the request to create the database system object is pending comprises determining the status of the database system object as part of a crash recovery process; and

in response to determining that the entry in the system catalog is unusable and that the database system object is associated with the persistent state record indicating that the request to create the database system object is pending, modifying a databased file system, including deleting the database system object from the database file system.

8. The system of claim 7 , wherein the interruption is a system crash.

9. The system of claim 8 , wherein the persistent state record includes a reference to the physical file, and wherein the entry in the system catalog includes a reference to a table of persistent state records that includes the persistent state record for the database system object.

10. The system of claim 7 , wherein the persistent state record has status values for the database system object comprising create pending, created, drop pending, and free.

11. The system of claim 7 , wherein generating the persistent state record comprises generating the persistent state record before initiating creation of the database system object.

12. The system of claim 7 , wherein determining that the entry in the system catalog is unusable comprises:

determining that the database system object has no corresponding entry in the system catalog of the database system.

13. A computer program product, encoded on one or more non-transitory computer storage media, comprising instructions that when executed by one or more computers cause the one or more computers to perform operations comprising:

receiving, by a create transaction of a database system, a request to create a database system object;

generating a persistent state record that includes a status of the database system object, wherein the status indicates that the request to create the database system object is pending;

creating the requested database system object, including writing, in a system catalog, an entry referencing the database system object;

determining that the database system was interrupted before completion of the create transaction, wherein an interruption causes the entry in the system catalog to be unusable to reference the database system object;

determining that the entry in the system catalog is unusable and that the status of the database system object in the persistent state record indicates that the request to create the database system object is pending, wherein determining that the database system object is associated with the persistent state record indicating that the request to create the database system object is pending comprises determining the status of the database system object as part of a crash recovery process; and

in response to determining that the entry in the system catalog is unusable and that the database system object is associated with the persistent state record indicating that the request to create the database system object is pending, modifying a databased file system, including deleting the database system object from the database file system.

14. The computer program product of claim 13 , wherein the database system object is a physical file of the database file system.

15. The computer program product of claim 14 , wherein the persistent state record includes a reference to the physical file, and wherein the entry in the system catalog includes a reference to a table of persistent state records that includes the persistent state record for the database system object.

16. The computer program product of claim 13 , wherein the persistent state record has status values for the database system object comprising create pending, created, drop pending, and free.

17. The computer program product of claim 13 , wherein generating the persistent state record comprises generating the persistent state record before initiating creation of the database system object.

18. The computer program product of claim 13 , wherein determining that the entry in the system catalog is unusable comprises:

determining that the database system object has no corresponding entry in the system catalog of the database system.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2014
From: MCCLINE, MATTHEW C.; BERGANT, MILENA
To: EMC CORPORATION
Reel/Frame 032339/0734 →
CHANGE OF NAME Recorded Mar 3, 2014
From: GOPIVOTAL, INC.
To: PIVOTAL SOFTWARE, INC.
Reel/Frame 032382/0721 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2014
From: EMC CORPORATION
To: GOPIVOTAL, INC.
Reel/Frame 032339/0880 →
Continuity (1)
Continuation 13107898 · May 14, 2011