IP Library Granted Patent US 9,418,003
Granted Patent B2
US 9,418,003 · App. 14/035,878 · Granted Aug 16, 2016

System, method and computer program product for conditionally performing garbage collection

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,418,003
App. No.
14/035,878
Granted
Aug 16, 2016
Kind
B2
Abstract

In accordance with embodiments, there are provided mechanisms and methods for conditionally performing garbage collection. These mechanisms and methods for conditionally performing garbage collection include identifying a predetermined portion of memory within a system, comparing one or more aspects of the predetermined portion of memory to a threshold, and conditionally performing garbage collection on the predetermined portion of memory, based on the comparison.

Claims (29)

1. A non-transitory computer readable medium having stored therein computer code adapted to be executed by a computer to perform operations comprising:

instantiating a plurality of database objects in a portion of memory of a multi-tenant database, wherein the plurality of database objects are owned by a plurality of tenants of the multi-tenant database and correspond to a plurality of applications having access to the multi-tenant database, and wherein the plurality of database objects includes a first database object corresponding to a database table that has first data accessible by a first tenant but not a second tenant and that has second data accessible by the second tenant but not the first tenant;

dynamically creating a threshold value based on a permissible occupancy level of the portion of memory of the multi-tenant database;

comparing to the threshold value an amount of free memory within the portion of memory of the multi-tenant database that is not currently assigned to any of the plurality of tenants of the multi-tenant database; and

upon determining that the amount of free memory within the portion of memory of the multi-tenant database meets the threshold value, performing garbage collection on the portion of memory of the multi-tenant database.

2. The non-transitory computer readable medium of claim 1 , wherein each row in the database table corresponds to a particular one of the plurality of tenants of the multi-tenant database.

3. The non-transitory computer readable medium of claim 1 , wherein data currently being used by the plurality of applications is stored in one or more available locations within the portion of the memory.

4. The non-transitory computer readable medium of claim 1 , wherein data included in the first database object includes metadata.

5. The non-transitory computer readable medium of claim 1 , wherein the operations further comprise determining a current occupancy level of the portion of memory.

6. The non-transitory computer readable medium of claim 1 , wherein the threshold value includes a percentage value.

7. The non-transitory computer readable medium of claim 1 , wherein the threshold value is based on a predetermined amount of free memory within the portion of memory.

8. The non-transitory computer readable medium of claim 1 , wherein performing garbage collection on the portion of memory includes retrieving contents of the portion of memory.

9. The non-transitory computer readable medium of claim 1 , wherein performing garbage collection on the portion of memory includes determining, for each location of the portion of memory, whether that location is currently allocated.

10. The non-transitory computer readable medium of claim 9 , wherein upon determining that a location of memory is deallocated, no action is performed in association with that location.

11. The non-transitory computer readable medium of claim 9 , wherein upon determining that a location of memory is allocated, one or more additional actions are performed in association with that location.

12. The non-transitory computer readable medium of claim 11 , wherein the one or more additional actions include determining whether data currently being used by one or more applications running within the multi-tenant database is stored in that particular location.

13. The non-transitory computer readable medium of claim 12 , wherein when it is determined for the particular location that the data stored in that location is not currently being used by one or more applications running within the multi-tenant database, that location is deallocated and returned to available memory.

14. A method, comprising:

instantiating, by a computer system, a plurality of database objects in a portion of memory of a multi-tenant database, wherein the plurality of database objects are owned by a plurality of tenants of the multi-tenant database and correspond to a plurality of applications having access to the multi-tenant database, and wherein the plurality of database objects includes a first database object corresponding to a database table that has first data accessible by a first tenant but not a second tenant and that has second data accessible by the second tenant but not the first tenant;

determining, by the computer system, a current occupancy level of the portion of memory of the multi-tenant database based on metadata relating to the plurality of tenants of the multi-tenant database;

dynamically creating a threshold value based on a permissible occupancy level of the portion of memory of the multi-tenant database;

based on a comparison of the current occupancy level with the dynamically created threshold value performing garbage collection on the portion of memory of the multi-tenant database.

15. An apparatus, comprising:

a processor; and

a non-transitory memory having stored thereon instructions configured to be executed by the processor to cause the apparatus to perform operations comprising:

instantiating a plurality of database objects in a portion of memory of a multi-tenant database, wherein the plurality of database objects are owned by a plurality of tenants of the multi-tenant database and correspond to a plurality of applications having access to the multi-tenant database, and wherein the plurality of database objects includes a first database object corresponding to a database table that has first data accessible by a first tenant but not a second tenant and that has second data accessible by the second tenant but not the first tenant;

dynamically creating a threshold value based on a permissible occupancy level of the portion of memory of the multi-tenant database;

comparing to the threshold value an amount of free memory within the portion of memory of the multi-tenant database that is not currently assigned to any of the plurality of tenants of the multi-tenant database; and

upon determining that the amount of free memory within the portion of memory of the multi-tenant database meets the threshold value, performing garbage collection on the portion of memory of the multi-tenant database.

Assignments (2)
CHANGE OF NAME Recorded Oct 25, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069268/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2014
From: HUNT, CHARLES J.; PAUL, KIRAN
To: SALESFORCE.COM, INC.
Reel/Frame 031900/0908 →