IP Library Granted Patent US 8,214,411
Granted Patent B2
US 8,214,411 · App. 12/637,930 · Granted Jul 3, 2012

Atomic deletion of database data categories

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 8,214,411
App. No.
12/637,930
Granted
Jul 3, 2012
Kind
B2
Abstract

A device maintains, in a database, a plurality of data items, each data item of the plurality of data items being associated with a respective category. The device associates, in the database, a first counter value with each data item, the first counter value indicating a number of times the respective category has been deleted from the database at a time when the data item was stored in the database. The device associates, in the database or another database, a second counter value with the respective category, the second counter value indicating a current value for a number of times the respective category has been deleted from the database. The device selectively deletes, from the database, one or more data items of the plurality of data items from the database based on the first counter values and the second counter value.

Claims (99)

1. A method, comprising:

maintaining, by a device and in a database, a plurality of data items, each data item of the plurality of data items being associated with a respective category;

associating, by the device and in the database, a first counter value with each data item, the first counter value indicating a number of times the respective category has been deleted from the database at a time when the data item was stored in the database;

associating, by the device and in the database or another database, a second counter value with the respective category, the second counter value indicating a current value for a number of times the respective category has been deleted from the database;

comparing, by the device, the first counter value with the second counter value to produce a first comparison, the comparing further including:

determining if the second counter value is less than or equal to the first counter value;

performing, by the device and based on the first comparison, selective retrieving and returning the requested data item or hiding the requested data item for garbage collection, the performing including one of:

retrieving and returning the requested data item if the second counter value is less than or equal to the first counter value, or

designating the requested data item for garbage collection, without retrieving and returning the data item, if the second counter value is greater than the first counter value; and

selectively deleting, by the device and from the database, one or more of the data items, of the plurality of data items, from the database based on the first counter values and the second counter value.

2. The method of claim 1 , further comprising:

determining the respective category by extracting data from the data item, or by extracting data from data related to the data item.

3. The method of claim 1 , further comprising:

determining the respective category by computing a function of the data item.

4. The method of claim 1 , further comprising:

receiving, at a data access device, a request to delete the respective category; and

incrementing the second counter value, in response to receiving the deletion request, to generate an incremented second counter value,

where selectively deleting the one or more data items from the database is further based on the first counter values and the incremented second counter value.

5. The method of claim 1 , further comprising:

receiving a query for a requested data item of the plurality of data items;

retrieving the first counter value associated with the requested data item; and

retrieving the second counter value associated with the respective category.

6. The method of claim 1 , where selectively deleting the one or more data items from the database comprises:

deleting the one or more data items based on the first comparison.

7. The method of claim 6 , where selectively deleting the one or more data items from the database comprises:

deleting the one or more data items when the second counter value is different than the first counter value.

8. The method of claim 7 , where

deleting the one or more data items when the second counter value is different than the first counter value comprises:

deleting the one or more data items the second counter value is greater than the first counter value.

9. The method of claim 1 , where the respective category identifies the plurality of data items as a set of related data items.

10. The method of claim 9 , where the respective category comprises an identifier associated with a publisher that originated the plurality of data items.

11. The method of claim 4 , where the deletion request comprises an Interface for Metadata Access Points (IF-MAP) purgePublisher request.

12. A device, comprising:

a memory to store instructions; and

a processor to execute the instructions to:

maintain, in a database, a plurality of data items, each data item of the plurality of data items being associated with a respective category,

associate, in the database, a first counter value with each data item, the first counter value indicating a number of times the respective category has been deleted from the database at a time when the data item was stored in the database,

associate, in the database or another database, a second counter value with the respective category, the second counter value indicating a current value for a number of times the respective category has been deleted from the database,

receive a request to delete the respective category,

increment the second counter value, in response to receiving the deletion request, to generate an incremented second counter value, and

selectively delete, from the database, one or more of the plurality of data items based on the first counter value and the incremented second counter value, the processor being further to selectively delete the one or more of the plurality of data items by executing instructions to:

compare the first counter value, associated with one data item of the plurality of data items, with the second counter value to:

determine if the second counter value is greater than the first counter value; and

produce a first comparison; and

delete the one or more of the plurality of data items based on the first comparison and when the second counter value is greater than the first counter value.

13. The device of claim 12 , where the processor is further to execute the instructions to:

determine the respective category by extracting data from at least one data item, of the plurality of data items, or by extracting data from data related to the at least one data item, of the plurality of data items.

14. The device of claim 12 , where the processor is further to execute the instructions to:

determine the respective category by computing a function of the at least one data item, of the plurality of data items.

15. The device of claim 12 , where the processor is further to execute the instructions to:

receive a query for a requested data item of the plurality of data items;

retrieve the first counter value associated with the requested data item;

retrieve the second counter value associated with the respective category;

compare the first counter value with the second counter value to produce a second comparison; and

selectively retrieve and return the requested data item, or designate the requested data item for garbage collection, based on the second comparison.

16. The device of claim 15 , where, when comparing the first counter value with the second counter value to produce the second comparison, the processor is further to execute the instructions to:

determine if the second counter value is less than or equal to the first counter value, and

where, when selectively retrieving and returning the requested data item, or designating the requested data item for garbage collection, the processor is further to execute the instructions to:

retrieve and return the requested data item when the second counter value is less than or equal to the first counter value, or

designate the requested data item for garbage collection, and not retrieve and return the requested data item, when the second counter value is greater than the first counter value.

17. The device of claim 12 , where the respective category identifies the plurality of data items as a set of related data items.

18. The device of claim 17 , where the respective category comprises an identifier associated with a publisher that originated the plurality of data items.

19. The device of claim 12 , where the deletion request comprises an Interface for Metadata Access Points (IF-MAP) purgePublisher request.

20. A non-transitory computer-readable medium containing instructions, the instructions comprising:

one or more instructions, executable by a processor, to maintain, in a database, a plurality of data items, each data item of the plurality of data items being associated with a respective category;

one or more instructions, executable by the processor, to associate, in the database, a first counter value with each data item, the first counter value indicating a number of times the respective category has been deleted from the database at a time when the data item was stored in the database;

one or more instructions, executable by the processor, to associate, in the database or another database, a second counter value with the respective category, the second counter value indicating a current value for a number of times the respective category has been deleted from the database;

one or more instructions, executable by the processor, to compare the first counter value with the second counter value to produce a first comparison, the one or more instructions to compare the first counter value with the second counter further including:

one or more instructions to determine if the second counter value is less than or equal to the first counter value;

one or more instructions, executable by the processor, to selectively retrieve and return the requested data item, based on the first comparison, or hide, based on the first comparison, the requested data item for garbage collection, the one or more instructions to selectively retrieve and return the requested data item or hide the requested data item further including one of:

one or more instructions to selectively retrieve and return the requested data item if the second counter value is less than or equal to the first counter value, or

one or more instructions to designate the requested data item for garbage collection, without including one or more instructions to selectively retrieve and return the data item, if the second counter value is greater than the first counter value; and

one or more instructions, executable by the processor, to selectively delete, from the database, one or more data items of the plurality of data items from the database based on the first counter values and the second counter value.

21. A system, comprising:

one or more devices to:

maintain, in a database, a plurality of data items, each data item of the plurality of data item being associated with a respective category;

associate, in the database, a first counter value with each data item, the first counter value indicating a number of times the respective category has been deleted from the database at a time when the data item was stored in the database;

associate, in the database or another database, a second counter value with the respective category, the second counter value indicating a current value for a number of times the respective category has been deleted from the database;

receive a request to delete the respective category;

increment the second counter value, in response to receiving the deletion request, to generate an incremented second counter value; and

selectively delete, from the database, one or more data items of the plurality of data items from the database based on the first counter value and the incremented second counter value, the one or more devices being further to:

compare the first counter value, associated with one data item of the plurality of data items, with the second counter value to:

determine if the second counter value is greater than the first counter value; and

produce a first comparison; and

delete the one or more of the plurality of data items based on the first comparison and when the second counter value is greater than the first counter value.

22. The medium of claim 20 , where the one or more instructions to selectively delete the one or more data items further include:

one or more instructions to delete the one or more data items when the second counter value is different than the first counter value.

23. The medium of claim 22 , where the one or more instructions to delete the one or more data items when the second counter value is different than the first counter value further include:

one or more instructions to delete the one or more data items the second counter value is greater than the first counter value.

24. The system of claim 21 , where the one or more devices are further to:

determine the respective category by extracting data from the data item;

determine the respective category by extracting data from data related to the data item; or

determine the respective category by computing a function of the data item.

25. The system of claim 21 , where the one or more devices are further to:

receive a query for a requested data item of the plurality of data items;

retrieve the first counter value associated with the requested data item;

retrieve the second counter value associated with the respective category;

compare the first counter value with the second counter value to produce a second comparison; and

selectively retrieve and return the requested data item, or designate the requested data item for garbage collection, based on the second comparison.

Assignments (13)
NOTICE OF SUCCESSION OF AGENCY FOR SECURITY INTEREST AT REEL/FRAME 054665/0873 Recorded Apr 29, 2025
From: BANK OF AMERICA, N.A., AS RESIGNING AGENT
To: ALTER DOMUS (US) LLC, AS SUCCESSOR AGENT
Reel/Frame 071123/0386 →
SECURITY INTEREST Recorded Dec 9, 2020
From: CELLSEC, INC.; PULSE SECURE, LLC; INVANTI, INC.; MOBILEIRON, INC.; INVANTI US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 054665/0873 →
SECURITY INTEREST Recorded Dec 9, 2020
From: CELLSEC, INC.; PULSE SECURE, LLC; IVANTI, INC.; MOBILEIRON, INC.; IVANTI US LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 054665/0062 →
RELEASE OF SECURITY INTEREST : RECORDED AT REEL/FRAME - 053638-0220 Recorded Dec 1, 2020
From: KKR LOAN ADMINISTRATION SERVICES LLC
To: PULSE SECURE, LLC
Reel/Frame 054559/0368 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 042380/0859 Recorded Aug 29, 2020
From: CERBERUS BUSINESS FINANCE, LLC, AS AGENT
To: PULSE SECURE, LLC
Reel/Frame 053638/0259 →
SECURITY INTEREST Recorded Aug 29, 2020
From: PULSE SECURE, LLC
To: KKR LOAN ADMINISTRATION SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 053638/0220 →
RELEASE OF SECURITY INTEREST Recorded Jul 21, 2020
From: JUNIPER NETWORKS, INC.
To: PULSE SECURE, LLC; SMOBILE SYSTEMS, INC.
Reel/Frame 053271/0307 →
GRANT OF SECURITY INTEREST PATENTS Recorded May 1, 2017
From: PULSE SECURE, LLC
To: CERBERUS BUSINESS FINANCE, LLC, AS COLLATERAL AGENT
Reel/Frame 042380/0859 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL 037338, FRAME 0408 Recorded May 1, 2017
From: US BANK NATIONAL ASSOCIATION
To: PULSE SECURE, LLC
Reel/Frame 042381/0568 →
SECURITY INTEREST Recorded Dec 21, 2015
From: PULSE SECURE, LLC
To: U.S BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037338/0408 →
SECURITY INTEREST Recorded Dec 30, 2014
From: PULSE SECURE, LLC; SMOBILE SYSTEMS, INC.
To: JUNIPER NETWORKS, INC.
Reel/Frame 034713/0950 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2014
From: JUNIPER NETWORKS, INC.
To: PULSE SECURE, LLC
Reel/Frame 034045/0717 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2009
From: KAHN, CLIFFORD E.; CHICKERING, ROGER A.
To: JUNIPER NETWORKS, INC.
Reel/Frame 023653/0717 →