IP Library Granted Patent US 9,875,249
Granted Patent B1
US 9,875,249 · App. 14/675,454 · Granted Jan 23, 2018

Reducing database fragmentation

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,875,249
App. No.
14/675,454
Granted
Jan 23, 2018
Kind
B1
Abstract

Techniques to reduce database fragmentation are disclosed. In various embodiments, an indication is received to store an attribute value for an entity that has a row or other entry in a first database table, wherein the first database table does not have a column for the attribute. It is determined that the value corresponds to a mapped value that is associated with not having an entry in a separate, second database table configured to store the attribute. Entries are made in the second database table only for values of the attribute other than the mapped value. Application level software code is configured to associate absence of a row in the second database table with the mapped value for the attribute.

Claims (37)

1. A method of storing data, comprising:

storing, by one or more processors, a null value in a first database table in place of a first attribute value, wherein the first attribute value is mapped to the null value for storing in the first database table;

reducing, by one or more processors, fragmentation of the first database table, wherein reducing fragmentation of the first database table comprises:

forming, by one or more processors, a second database table and a third database table, wherein the second database table corresponds to the first database table without a column for an attribute corresponding to the first attribute value, and wherein the third database table is configured to store values for the attribute;

receiving, by one or more processors, an indication to store a second attribute value for an entry; and

determining that the second attribute value corresponds to a value that is mapped to the null value;

wherein entries are made in the third database table only for values of the attribute that are not mapped to the null value, and wherein application level software code is configured to associate absence of a row in the third database table with a mapped value for the attribute.

2. The method of claim 1 , wherein the second database table does not have the column for the attribute at least in part as a result of a transformation of the first database table.

3. The method of claim 2 , wherein the forming of the second database table comprises transforming the first database table by removing from the first database table a former column configured to store the attribute, and wherein the third database table is created and configured to store only those values in the former column that were not mapped to the null value.

4. The method of claim 1 , wherein the application level software code is configured to associate the null value for the attribute with the mapped value.

5. The method of claim 1 , wherein the first attribute value corresponds to a most common value for the attribute.

6. The method of claim 1 , further comprising receiving an indication to update a row in the third database table, determining that an updated value comprising the update is associated with a mapping to the null value, and deleting the row from the third database table based at least in part on the determination.

7. A system, comprising:

one or more processors configured to:

store a null value in a first database table in place of a first attribute value, wherein the first attribute value is mapped to the null value for storing in the first database table;

reduce fragmentation of the first database table, wherein reducing fragmentation of the first database table comprises:

forming, by one or more processors, a second database table and a third database table, wherein the second database table corresponds to the first database table without a column for an attribute corresponding to the first attribute value, and wherein the third database table is configured to store values for the attribute;

receive an indication to store a second attribute value for an entry; and

determine that the second attribute value corresponds to a value that is mapped to the null value;

wherein entries are made in the third database table only for values of the attribute that are not mapped to the null value, and wherein application level software code is configured to associate absence of a row in the third database table with a mapped value for the attribute.

8. The system of claim 7 , wherein the second database table does not have the column for the attribute at least in part as a result of a transformation of the first database table.

9. The system of claim 8 , wherein the forming of the second database table comprises transforming the first database table by removing from the first database table a former column configured to store the attribute, and wherein the third database table is created and configured to store only those values in the former column that were not mapped to the null value.

10. The system of claim 7 , wherein the application level software code is configured to associate the null value for the attribute with the mapped value.

11. The system of claim 7 , wherein the first attribute value corresponds to a most common value for the attribute.

12. The system of claim 7 , wherein the processor is further configured to receive an indication to update a row in the third database table, determine that an updated value comprising the update is associated with a mapping to the null value, and delete the row from the third database table based at least in part on the determination.

13. A computer program product to store data, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

storing, by one or more processors, a null value in a first database table in place of a first attribute value, wherein the first attribute value is mapped to the null value for storing in the first database table;

reducing, by one or more processors, fragmentation of the first database table, wherein reducing fragmentation of the first database table comprises:

forming, by one or more processors, a second database table and a third database table, wherein the second database table corresponds to the first database table without a column for an attribute corresponding to the first attribute value, and wherein the third database table is configured to store values for the attribute;

receiving, by one or more processors, an indication to store a second attribute value for an entry; and

determining that the second attribute value corresponds to a value that is mapped to the null value;

wherein entries are made in the third database table only for values of the attribute that are not mapped to the null value, and wherein application level software code is configured to associate absence of a row in the third database table with a mapped value for the attribute.

14. The computer program product of claim 13 , wherein the second database table does not have the column for the attribute at least in part as a result of a transformation of the first database table.

15. The computer program product of claim 14 , wherein the forming of the second database table comprises transforming the first database table by removing from the first database table a former column configured to store the attribute, creating the third database table is created and configured to store only those values in the former column that were not mapped to the null value.

16. The computer program product of claim 13 , wherein the first attribute value corresponds to a most common value for the attribute.

17. The computer program product of claim 13 , further comprising computer instructions for: receiving an indication to update a row in the third database table, determining that an updated value comprising the update is associated with a mapping to the null value, and deleting the row from the third database table based at least in part on the determination.

18. The method of claim 1 , wherein the first attribute value is equal to the second attribute value.

Assignments (8)
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: DELL USA L.P.; ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; 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 →
MERGER Recorded Feb 2, 2021
From: MAGINATICS LLC
To: EMC CORPORATION
Reel/Frame 055118/0382 →
SECURITY AGREEMENT Recorded Mar 21, 2019
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 049452/0223 →
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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2015
From: MANVILLE, THOMAS; LOPEZ, JULIO
To: MAGINATICS LLC
Reel/Frame 035304/0787 →