IP Library Granted Patent US 10,133,746
Granted Patent B1
US 10,133,746 · App. 15/162,388 · Granted Nov 20, 2018

Persistent file system objects for management of databases

Inventors: Matthew C. McCline (Palo Alto, CA); Milena Bergant (Palo Alto, CA)
Assignee: Pivotal Software, Inc.
G06F17/30117G06F17/30607
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,133,746
App. No.
15/162,388
Granted
Nov 20, 2018
Kind
B1
Abstract

In a mirrored database system, a careful write of intentions to perform file 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 (47)

1. A computer-implemented method comprising:

maintaining, by a database system, a system catalog comprising a reference to a table of persistent state records, wherein a persistent state record in the table of persistent state records includes a status of a database system object that is a physical file of the database system, and wherein the persistent state record includes a reference to the physical file;

receiving, by a drop transaction of the database system, a request to delete the database system object;

determining, as part of a crash recovery process, that one or more post-commit operations for the drop transaction were not performed before the database system was interrupted, including:

determining, from an entry in a transaction log, that the drop transaction was committed by the database system, wherein the entry in the transaction log identifies the persistent state record of the database system object, and

determining that the status of the database system object in the persistent state record indicates that the database system object has not been deleted;

and

in response to determining that the one or more post-commit operations for the drop transaction were not performed before the database system was interrupted, performing one or more of the post-commit operations including deleting the database system object.

2. The method of claim 1 , further comprising:

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

generating the requested database system object; and

generating the persistent state record having a status indicating that the database system object has been created.

3. 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.

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 , further comprising:

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

6. A database system comprising:

one or more processors; and

a non-transitory storage device storing instructions operable to cause the one or more processors to perform operations comprising:

maintaining, by a database system, a system catalog comprising a reference to a table of persistent state records, wherein a persistent state record in the table of persistent state records includes a status of a database system object that is a physical file of the database system, and wherein the persistent state record includes a reference to the physical file;

receiving, by a drop transaction of the database system, a request to delete the database system object;

determining, as part of a crash recovery process, that one or more post-commit operations for the drop transaction were not performed before the database system was interrupted, including:

determining, from an entry in a transaction log, that the drop transaction was committed by the database system, wherein the entry in the transaction log identifies the persistent state record of the database system object, and

determining that the status of the database system object in the persistent state record indicates that the database system object has not been deleted;

and

in response to determining that the one or more post-commit operations for the drop transaction were not performed before the database system was interrupted, performing one or more of the post-commit operations including deleting the database system object.

7. The database system of claim 6 , the operations further comprising:

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

generating the requested database system object; and

generating the persistent state record having a status indicating that the database system object has been created.

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

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

10. The database system of claim 6 , the operations further comprising:

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

11. A non-transitory storage device storing instructions operable to cause one or more processors to perform operations comprising:

maintaining, by a database system, a system catalog comprising a reference to a table of persistent state records, wherein a persistent state record in the table of persistent state records includes a status of a database system object that is a physical file of the database system, and wherein the persistent state record includes a reference to the physical file;

receiving, by a drop transaction of the database system, a request to delete the database system object;

determining, as part of a crash recovery process, that one or more post-commit operations for the drop transaction were not performed before the database system was interrupted, including:

determining, from an entry in a transaction log, that the drop transaction was committed by the database system, wherein the entry in the transaction log identifies the persistent state record of the database system object, and

determining that the status of the database system object in the persistent state record indicates that the database system object has not been deleted;

and

in response to determining that that the one or more post-commit operations for the drop transaction were not performed before the database system was interrupted, performing one or more of the post-commit operations including deleting the database system object.

12. The non-transitory storage device of claim 11 , the operations further comprising:

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

generating the requested database system object; and

generating the persistent state record having a status indicating that the database system object has been created.

13. The non-transitory storage device of claim 11 , wherein generating the persistent state record comprises generating the persistent state record before initiating creation of the database system object.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 27, 2018
From: MCCLINE, MATTHEW C.; BERGANT, MILENA
To: EMC CORPORATION
Reel/Frame 045051/0995 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 27, 2018
From: EMC CORPORATION
To: GOPIVOTAL, INC.
Reel/Frame 045052/0085 →
CHANGE OF NAME Recorded Feb 27, 2018
From: GOPIVOTAL, INC.
To: PIVOTAL SOFTWARE, INC.
Reel/Frame 045454/0583 →
ASSIGNMENT OF ASSIGNORS INTEREST Recorded Feb 27, 2018
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 045455/0636 →
SECURITY AGREEMENT Recorded Feb 27, 2018
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 BRACH, AS COLLATERAL AGENT
Reel/Frame 045456/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 25, 2016
From: MCCLINE, MATTHEW C.; BERGANT, MILENA
To: EMC CORPORATION
Reel/Frame 038719/0338 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 25, 2016
From: EMC CORPORATION
To: GOPIVOTAL, INC.
Reel/Frame 038719/0374 →
CHANGE OF NAME Recorded May 25, 2016
From: GOPIVOTAL, INC.
To: PIVOTAL SOFTWARE, INC.
Reel/Frame 038811/0339 →
Continuity (2)
Division 14194342 · Feb 28, 2014
Continuation 13107898 · May 14, 2011
Cited By (2)
US 12,626,002 US 12,694,137