IP Library Granted Patent US 10,592,307
Granted Patent B2
US 10,592,307 · App. 15/376,814 · Granted Mar 17, 2020

Multi user threaded executor

Inventor: Leela Maheshwara Rao (Hyderabad, IN)
Assignee: salesforce.com, inc.
G06F9/542G06F2212/2542
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,592,307
App. No.
15/376,814
Granted
Mar 17, 2020
Kind
B2
Abstract

Exclusive threads for multiple queues is described. A computing system adds a first event associated with a first entity to a first queue in response to receiving the first event. The computing system adds a second event associated with a second entity to a second queue in response to receiving the second event. The computing system adds a third event associated with the second entity to the second queue in response to receiving the third event. A first thread in the computing system removes the first event from the first queue, wherein any event in the first queue is removed exclusively by the first thread. The first thread processes the first event.

Claims (59)

1. A system for exclusive threads for multiple queues, the system comprising:

one or more processors; and

a non-transitory computer readable medium storing a plurality of instructions, which when executed, cause the one or more processors to:

add, by a computing system, a first event associated with a first entity to a first queue in response to receiving the first event;

add, by the computing system, a second event associated with a second entity to a second queue in response to receiving the second event;

add, by the computing system, a third event associated with the second entity to the second queue in response to receiving the third event;

remove, by a first thread in the computing system, the first event from the first queue, the first thread being associated with the first queue and a third queue and having the exclusive right to remove any event only from the first queue or the third queue;

process, by the first thread in the computing system, the first event; and

process, by the first thread in the computing system, an event in the third queue when all events in the first queue have been processed by the first thread.

2. The system of claim 1 , comprising further instructions, which when executed, cause the one or more processors to add, by the computing system, a fourth event associated with the first entity to the first queue in response to receiving the fourth event.

3. The system of claim 2 , comprising further instructions, which when executed, cause the one or more processors to:

remove, by the first thread in the computing system, the fourth event from the first queue; and

process, by the first thread in the computing system, the fourth event.

4. The system of claim 1 , comprising further instructions, which when executed, cause the one or more processors to:

remove, by a second thread in the computing system, the second event from the second queue, wherein any event in the second queue is removed exclusively by the second thread; and

process, by the second thread in the computing system, the second event.

5. The system of claim 4 , comprising further instructions, which when executed, cause the one or more processors to:

remove, by the second thread in the computing system, the third event from the second queue; and

process, by the second thread in the computing system, the third event.

6. The system of claim 1 , wherein adding the first event associated with the first entity to the first queue is based on applying a hash function to a unique identifier associated with the first entity.

7. The system of claim 1 , wherein adding the second event associated with the second entity to the second queue is based on applying a hash function to a unique identifier associated with the second entity.

8. A computer program product comprising computer-readable program code to be executed by one or more processors when retrieved from a non-transitory computer-readable medium, the program code including instructions to:

add, by a computing system, a first event associated with a first entity to a first queue in response to receiving the first event;

add, by the computing system, a second event associated with a second entity to a second queue in response to receiving the second event;

add, by the computing system, a third event associated with the second entity to the second queue in response to receiving the third event;

remove, by a first thread in the computing system, the first event from the first queue, the first thread being associated with the first queue and a third queue and having the exclusive right to remove any event only from the first queue or the third queue;

process, by the first thread in the computing system, the first event; and

process, by the first thread in the computing system, an event in the third queue when all events in the first queue have been processed by the first thread.

9. The computer program product of claim 8 , wherein the program code comprises further instructions to add, by the computing system, a fourth event associated with the first entity to the first queue in response to receiving the fourth event.

10. The computer program product of claim 9 , wherein the program code comprises further instructions to:

remove, by the first thread in the computing system, the fourth event from the first queue; and

process, by the first thread in the computing system, the fourth event.

11. The computer program product of claim 8 , wherein the program code comprises further instructions to:

remove, by a second thread in the computing system, the second event from the second queue, wherein any event in the second queue is removed exclusively by the second thread; and

process, by the second thread in the computing system, the second event.

12. The computer program product of claim 11 , wherein the program code comprises further instructions to:

remove, by the second thread in the computing system, the third event from the second queue; and

process, by the second thread in the computing system, the third event.

13. The computer program product of claim 8 , wherein adding the first event associated with the first entity to the first queue is based on applying a hash function to a unique identifier associated with the first entity.

14. The computer program product of claim 8 , wherein adding the second event associated with the second entity to the second queue is based on applying a hash function to a unique identifier associated with the second entity.

15. A method comprising:

adding, by a computing system, a first event associated with a first entity to a first queue in response to receiving the first event;

adding, by the computing system, a second event associated with a second entity to a second queue in response to receiving the second event;

adding, by the computing system, a third event associated with the second entity to the second queue in response to receiving the third event;

removing, by a first thread in the computing system, the first event from the first queue, the first thread being associated with the first queue and a third queue and having the exclusive right to remove any event only from the first queue or the third queue;

processing, by the first thread in the computing system, the first event; and

processing, by the first thread in the computing system, an event in the third queue when all events in the first queue have been processed by the first thread.

16. The method of claim 15 , wherein the method further comprises:

adding, by the computing system, a fourth event associated with the first entity to the first queue in response to receiving the fourth event;

removing, by the first thread in the computing system, the fourth event from the first queue; and

processing, by the first thread in the computing system, the fourth event.

17. The method of claim 15 , wherein the method further comprises:

removing, by a second thread in the computing system, the second event from the second queue, wherein any event in the second queue is removed exclusively by the second thread; and

processing, by the second thread in the computing system, the second event.

18. The method of claim 17 , wherein the method further comprises:

removing, by the second thread in the computing system, the third event from the second queue; and

processing, by the second thread in the computing system, the third event.

19. The method of claim 15 , wherein adding the first event associated with the first entity to the first queue is based on applying a hash function to a unique identifier associated with the first entity.

20. The method of claim 15 , wherein adding the second event associated with the second entity to the second queue is based on applying a hash function to a unique identifier associated with the second entity.

Assignments (2)
CHANGE OF NAME Recorded Oct 30, 2023
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 065394/0169 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2016
From: RAO, LEELA MAHESHWARA
To: SALESFORCE.COM, INC.
Reel/Frame 040719/0195 →
Continuity (1)
Related Publication 20180165138A1 · Jun 14, 2018