IP Library Granted Patent US 10,762,109
Granted Patent B2
US 10,762,109 · App. 16/047,738 · Granted Sep 1, 2020

Asynchronous deletion in non-relational databases

Inventors: Shaahin Mehdinezhad Rushan (Dublin, CA); Percy D. Mehta (Foster City, CA); Yogesh Patel (Dublin, CA); Shan-Cheng Ho (Sunnyvale, CA); Shreedhar Sundaram (San Mateo, CA)
Assignee: salesforce.com, inc.
G06F16/273G06F16/214G06F16/22G06F16/2379G06F16/245
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,762,109
App. No.
16/047,738
Granted
Sep 1, 2020
Kind
B2
Abstract

Methods, systems, and devices for asynchronous deletion at a non-relational database are described. The non-relational database may store a set of data object associations. The non-relational database may receive a read request indicating a first data object identifier. Based on the first data object identifier indicated in the read request, the non-relational database may identify a second data object identifier according to a first data object association of the stored set of data object associations that is indexed in the non-relational database with the first data object identifier. The non-relational database may determine that a last data entry that is indexed in the non-relational database with the identified second data object identifier and is associated with the first data object identifier has been deleted from the non-relational database. The non-relational database may delete the first data object association from the non-relational database.

Claims (58)

1. A method for handling data object associations within a non-relational database, comprising:

storing, at the non-relational database, a plurality of data object associations, wherein each association of the plurality of data object associations corresponds to a data object relational index stored in a relational database;

receiving, at the non-relational database, a read request indicating a first data object identifier;

identifying a second data object identifier according to a first data object association of the stored plurality of data object associations that is indexed in the non-relational database with the first data object identifier;

determining that a last data entry that is indexed in the non-relational database with the identified second data object identifier and is associated with the first data object identifier has been deleted from the non-relational database; and

deleting the first data object association from the non-relational database in response to the read request and based at least in part on the determining.

2. The method of claim 1 , further comprising:

receiving, at the non-relational database, a delete request for the last data entry that is indexed in the non-relational database with the identified second data object identifier; and

removing the last data entry from memory of the non-relational database based at least in part on the delete request.

3. The method of claim 2 , wherein the first data object association is deleted from the non-relational database asynchronous to removing the last data entry from the memory of the non-relation database, and wherein a system performance metric of the non-relational database corresponding to the asynchronous deleting is greater than a system performance metric corresponding to a synchronous delete procedure.

4. The method of claim 1 , further comprising:

storing, in the non-relational database, one or more data entries that are indexed with the second data object identifier and are associated with the first data object identifier based at least in part on a data migration or data replication procedure from the relational database to the non-relational database; and

storing, in the non-relational database, a data object association indexed with the first data object identifier and indicating the second data object identifier based at least in part on the data migration or data replication procedure.

5. The method of claim 4 , wherein storing the data object association in the non-relational database comprises:

searching the non-relational database for whether the plurality of data object associations comprises the data object association indexed with the first data object identifier and indicating the second data object identifier, wherein storing the data object association is based at least in part on the searching.

6. The method of claim 4 , wherein storing the data object association in the non-relational database is based at least in part on a maximum number of indices supported for data entries in the non-relational database.

7. The method of claim 4 , wherein:

the one or more data entries are stored in a first primary key table of the non-relational database, wherein a primary key of the first primary key table comprises a data object type of the second data object identifier; and

the data object association is stored in a second primary key table of the non-relational database, wherein a primary key of the second primary key table comprises a data object type of the first data object identifier.

8. The method of claim 1 , wherein the read request comprises a query for data corresponding to the first data object identifier.

9. The method of claim 8 , further comprising:

transmitting, in response to the read request and based at least in part on the determining, an indication that the queried data does not exist in the non-relational database.

10. The method of claim 1 , wherein the plurality of data object associations comprises associations between user activities and data objects.

11. The method of claim 10 , wherein:

the user activities comprise sending or receiving emails, accepting calendar events, sending or receiving short message service (SMS) text messages, sending or receiving voice calls, posting or interacting with social media messages, or a combination thereof; and

the data objects comprise customer relationship management (CRM) data objects comprising contacts, accounts, organizations, cases, opportunities, or a combination thereof.

12. The method of claim 1 , wherein the non-relational database comprises a plurality of distributed machines for data storage.

13. An apparatus for handling data object associations within a non-relational database, comprising:

a processor,

memory in electronic communication with the processor; and

instructions stored in the memory and executable by the processor to cause the apparatus to:

store, at the non-relational database, a plurality of data object associations, wherein each association of the plurality of data object associations corresponds to a data object relational index stored in a relational database;

receive, at the non-relational database, a read request indicating a first data object identifier;

identify a second data object identifier according to a first data object association of the stored plurality of data object associations that is indexed in the non-relational database with the first data object identifier;

determine that a last data entry that is indexed in the non-relational database with the identified second data object identifier and is associated with the first data object identifier has been deleted from the non-relational database; and

delete the first data object association from the non-relational database in response to the read request and based at least in part on the determining.

14. The apparatus of claim 13 , wherein the instructions are further executable by the processor to cause the apparatus to:

receive, at the non-relational database, a delete request for the last data entry that is indexed in the non-relational database with the identified second data object identifier; and

remove the last data from memory of the non-relational database based at least in part on the delete request.

15. The apparatus of claim 13 , wherein the instructions are further executable by the processor to cause the apparatus to:

store, in the non-relational database, one or more data entries that are indexed with the second data object identifier and are associated with the first data object identifier based at least in part on a data migration or data replication procedure from the relational database to the non-relational database; and

store, in the non-relational database, a data object association indexed with the first data object identifier and indicating the second data object identifier based at least in part on the data migration or data replication procedure.

16. The apparatus of claim 15 , wherein the instructions to store the data object association in the non-relational database are executable by the processor to cause the apparatus to:

search the non-relational database for whether the plurality of data object associations comprises the data object association indexed with the first data object identifier and indicating the second data object identifier, wherein storing the data object association is based at least in part on the searching.

17. A non-transitory computer-readable medium storing code for handling data object associations within a non-relational database, the code comprising instructions executable by a processor to:

store, at the non-relational database, a plurality of data object associations, wherein each association of the plurality of data object associations corresponds to a data object relational index stored in a relational database;

receive, at the non-relational database, a read request indicating a first data object identifier;

identify a second data object identifier according to a first data object association of the stored plurality of data object associations that is indexed in the non-relational database with the first data object identifier;

determine that a last data entry that is indexed in the non-relational database with the identified second data object identifier and is associated with the first data object identifier has been deleted from the non-relational database; and

delete the first data object association from the non-relational database in response to the read request and based at least in part on the determining.

18. The non-transitory computer-readable medium of claim 17 , wherein the instructions are further executable to:

receive, at the non-relational database, a delete request for the last data entry that is indexed in the non-relational database with the identified second data object identifier; and

remove the last data entry from memory of the non-relational database based at least in part on the delete request.

19. The non-transitory computer-readable medium of claim 17 , wherein the instructions are further executable to:

store, in the non-relational database, one or more data entries that are indexed with the second data object identifier and are associated with the first data object identifier based at least in part on a data migration or data replication procedure from the relational database to the non-relational database; and

store, in the non-relational database, a data object association indexed with the first data object identifier and indicating the second data object identifier based at least in part on the data migration or data replication procedure.

20. The non-transitory computer-readable medium of claim 19 , wherein the instructions to store the data object association in the non-relational database are executable to:

search the non-relational database for whether the plurality of data object associations comprises the data object association indexed with the first data object identifier and indicating the second data object identifier, wherein storing the data object association is based at least in part on the searching.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0353 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 27, 2018
From: RUSHAN, SHAAHIN MEHDINEZHAD; MEHTA, PERCY D.; PATEL, YOGESH; HO, SHAN-CHENG; SUNDARAM, SHREEDHAR
To: SALESFORCE.COM, INC.
Reel/Frame 046487/0175 →
Continuity (1)
Related Publication 20200034473A1 · Jan 30, 2020