US2023060046A1PendingUtilityA1

Temporary reservations in non-relational datastores

Assignee: SALESFORCE INCPriority: Jan 31, 2019Filed: Oct 27, 2022Published: Feb 23, 2023
Est. expiryJan 31, 2039(~12.5 yrs left)· nominal 20-yr term from priority
G06F 16/328G06F 16/2308G06F 16/972G06F 16/162
64
PatentIndex Score
0
Cited by
0
References
0
Claims

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

exact text as granted — not AI-modified
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.

Join the waitlist — get patent alerts

Track US2023060046A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.