IP Library Patent Application 17975248
Patent Application
App. No. 17/975,248

TEMPORARY RESERVATIONS IN NON-RELATIONAL DATASTORES

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 None
App. No.
17/975,248
Abstract

Systems, methods, and computer-readable media for temporary reservation schemes, are provided. In embodiments, temporary reservations are inserted into non-relational datastore, and update records indicating changes to the non-relational datastore are streamed to processing nodes. The processing nodes store the update records in local expiration windows. The expiration windows are periodically polled for expired temporary reservations, which are then removed from the non-relational datastore. Other embodiments may be described and/or claimed.

Claims (53)

1 . A system, comprising:

one or more physical processors to implement one or more first data processors and one or more second data processors that are different than the one or more first data processors;

wherein the one or more first data processors are arranged to:

identify temporary reservations to expire after expiration of an expiration time,

generate event_identifiers (event_ids) for the temporary reservations, respectively, and

append the temporary reservations as respective event objects in an event log, the respective event objects including the respective event_ids and corresponding expiration times; and

wherein the one or more second data processors are arranged to:

receive a stream of notifications, individual notifications in the stream of notifications indicating event objects that were appended, by the one or more first data processors, to the event log,

delete event objects from the event log corresponding to expired temporary reservations based on the stream of notifications.

2 . The system of claim 1 , wherein the appending of the received temporary reservations in the event log by the one or more first data processors is arranged to cause the notifications to be streamed to the one or more second data processors.

3 . The system of claim 1 , wherein the one or more second data processors comprise at least two individual data processors, which are each arranged to:

send individual deletion commands to delete one or more event objects in the event log independent of other deletion commands of other individual data processor(s) of the at least two individual data processors.

4 . The system of claim 3 , wherein the event log is distributed across a plurality of shards as individual event objects, and different shards of the plurality of shards store different portions of the event log; and

wherein:

the event log is distributed evenly across the plurality of shards, or

each shard of the plurality of shards is stored by a corresponding storage node of a plurality of storage nodes, and a quantity of the one or more second data processors is equal to a quantity of shards of the plurality of shards.

5 . The system of claim 4 , wherein each storage node of the plurality of storage nodes is configured to store a same maximum number of records of the event log.

6 . The system of claim 1 , wherein the one or more first data processors comprise at least two individual data processors, which are each arranged to:

obtain individual event messages from an external platform independent of other individual data processor(s) of the at least two individual data processors, the event messages to include an expiration time of the temporary reservation.

7 . The system of claim 6 , wherein the individual notifications include event_ids and expiration times of the temporary reservations are indicated by the individual notifications, and the at least two individual data processors are further arranged to:

store, in an expiration window, the event_ids and the expiration times of the temporary reservations indicated by the individual notifications, the expiration window comprising a mapping of event_ids to expiration times.

8 . The system of claim 7 , wherein the one or more second data processors are arranged to:

retrieve, on a periodic basis, temporary reservations from the expiration window having expiration times that have expired when compared to a current system time; and

execute a conditional delete operation for the retrieved temporary reservations against the event log, the conditional delete operation indicating to delete the retrieved temporary reservations provided that expiration times of the retrieved temporary reservations in the event log indicates that the retrieved temporary reservations have expired.

9 . The system of claim 1 , wherein the temporary reservations are received from an external platform, and wherein the one or more first data processors are arranged to:

provide the stream of notifications to the external platform in response to receipt of a request from the external platform.

10 . The system of claim 9 , wherein the one or more physical processors comprise two or more physical processors of two or more physical application servers, virtual machines, or application containers, respectively; and

wherein at least one of the one or more first data processors is implemented by at least one first physical processor of the two or more physical application servers, virtual machines, or application containers, and wherein at least one of the one or more second data processors is implemented by at least one second different physical processor of the two or more physical application servers, virtual machines, or application containers.

11 . A method using one or more physical processors to implement one or more first data processors and one or more second data processors that are different than the one or more first data processors, the method comprising:

identifying, by the one or more first data processors, temporary reservation to expire after expiration of an expiration time,

generating, by the one or more first data processors, event_identifiers (event_ids) for the temporary reservations, respectively, and

appending, by the one or more first data processors, the temporary reservations as respective event objects in an event log, the respective event objects including the respective event_ids and corresponding expiration times;

receiving, by the one or more second data processors, a stream of notifications, individual notifications in the stream of notifications indicating event objects that were appended, by the one or more first data processors, to the event log, and

deleting, by the one or more second data processors, event objects from the event log corresponding to expired temporary reservations based on the stream of notifications.

12 . The method of claim 11 , wherein the appending of the received temporary reservations in the event log by the one or more first data processors is arranged to cause the notifications to be streamed to the one or more second data processors.

13 . The method of claim 11 , wherein the one or more second data processors comprise at least two individual data processors, and the method further comprises:

sending, by the at least two individual data processors, individual deletion commands to delete one or more event objects in the event log independent of other deletion commands of other individual data processor(s) of the at least two individual data processors.

14 . The method of claim 13 , wherein the event log is distributed across a plurality of shards as individual event objects, and different shards of the plurality of shards store different portions of the event log; and

wherein:

distributing the event log evenly across the plurality of shards, or

storing each shard of the plurality of shards by a corresponding storage node of a plurality of storage nodes, wherein a quantity of shards of the plurality of shards is equal to a quantity of the one or more second data processors.

15 . The method of claim 14 , wherein each storage node of the plurality of storage nodes is configured to store a same maximum number of records of the event log.

16 . The method of claim 11 , wherein the one or more first data processors comprise at least two individual data processors, and the method further comprises:

obtaining, by the at least two individual data processors, individual event messages from an external platform independent of other individual data processor(s) of the at least two individual data processors, the event messages to include an expiration time of the temporary reservation.

17 . The method of claim 16 , wherein the individual notifications include event_ids and expiration times of the temporary reservations are indicated by the individual notifications, and the method further comprises:

storing, by the at least two individual data processors, in an expiration window, the event_ids and the expiration times of the temporary reservations indicated by the individual notifications, the expiration window comprising a mapping of event_ids to expiration times.

18 . The method of claim 17 , further comprising:

retrieving, on a periodic basis by the one or more second data processors, temporary reservations from the expiration window having expiration times that have expired when compared to a current system time; and

executing, by the one or more second data processors, a conditional delete operation for the retrieved temporary reservations against the event log, the conditional delete operation indicating to delete the retrieved temporary reservations provided that expiration times of the retrieved temporary reservations in the event log indicates that the retrieved temporary reservations have expired.

19 . The method of claim 11 , wherein the temporary reservations are received from an external platform, and wherein the method further comprises:

providing, by the one or more first data processors, the stream of notifications to the external platform in response to receipt of a request from the external platform.

20 . The method of claim 19 , wherein the one or more physical processors comprise two or more physical processors of two or more physical application servers, virtual machines, or application containers, respectively; and

wherein at least one of the one or more first data processors is implemented by at least one first physical processor of the two or more physical application servers, virtual machines, or application containers, and wherein at least one of the one or more second data processors is implemented by at least one second different physical processor of the two or more physical application servers, virtual machines, or application containers.

Assignments (2)
CHANGE OF NAME Recorded Sep 22, 2023
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 065018/0579 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 20, 2023
From: BUSJAEGER, BENJAMIN; SGROI, MICHAEL; HORWITZ, JEREMY
To: SALESFORCE.COM, INC.
Reel/Frame 064966/0627 →