US2017060932A1PendingUtilityA1

Action queue for hierarchy maintenance

Assignee: SAP SEPriority: Aug 25, 2015Filed: Aug 25, 2015Published: Mar 2, 2017
Est. expiryAug 25, 2035(~9.1 yrs left)· nominal 20-yr term from priority
G06F 17/30362G06F 16/25G06F 16/2454G06F 16/2343G06F 16/2386G06F 16/282G06F 16/2379
40
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A system includes reception of a first request for a lock on a lock object, storage of a first entry associated with the first request and the lock object in a queue, determination of a first queue position associated with the first entry based on a first priority level of the first request and on a priority level of each of a plurality of entries in the queue associated with the lock object, determination of whether a predetermined expiration time associated with the first request has expired, and, if it is determined that the predetermined expiration time has expired, deletion of the first entry from the queue.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A system comprising:
 a memory storing processor-executable process steps; and   a processor to execute the processor-executable process steps to cause the system to:
 receive a first request for a lock on a lock object; 
 store a first entry associated with the first request and the lock object in a queue; 
 determine whether a predetermined expiration time associated with the first request has expired; and 
 if it is determined that the predetermined expiration time has expired, delete the first entry from the queue. 
   
     
     
         2 . A system according to  claim 1 , wherein the processor is further to execute the processor-executable process steps to cause the system to:
 determine a first queue position associated with the first entry based on a first priority level of the first request and on a priority level of each of a plurality of entries in the queue associated with the lock object.   
     
     
         3 . A system according to  claim 2 , wherein determination of the first queue position associated with the first entry comprises:
 determination of a first number of the plurality of entries which are associated with the lock object and either are associated with a priority level equal to or greater than the first priority level or associated with a queue position of 0 and any priority level;   determination of a highest queue position of the first number of the plurality of entries;   determination of a maximum number of (the highest queue position+1) and the first number; and   determination of the first queue position associated with the first entry as equal to the maximum number.   
     
     
         4 . A system according to  claim 3 , wherein the processor is further to execute the processor-executable process steps to cause the system to:
 determine a second number of the plurality of entries which are associated with the lock object, are associated with a priority level equal to or greater than the first priority level and a queue position of less than the first queue position, or are associated with a queue position of 0 and any priority level;   determine a highest queue position of the second number of the plurality of entries;   determine a second maximum number of (the highest queue position+1) and the second number;   determine whether the second maximum number is less than the first queue position and none of the second number of the plurality of entries is associated with a priority level greater than the first priority level and a queue position equal to the first queue position; and   if it is determined that the second maximum number is less than the first queue position and none of the second number of the plurality of entries is associated with a priority level greater than the first priority level and a queue position equal to the first queue position, determine the first queue position associated with the first entry as equal to the second maximum number.   
     
     
         5 . A system according to  claim 4 , wherein the processor is further to execute the processor-executable process steps to cause the system to:
 receive a second request for the lock on the lock object, the second request associated with a long-term lock;   store a second entry associated with the second request and the lock object in the queue;   determine that a queue position of the second request is 0;   set the lock based on the second request based on the determination that a queue position of the second request is 0;   in response to setting of the lock, delete the second entry;   receive a third request for the lock on the lock object;   store a third entry associated with the third request and the lock object in the queue;   determine that a queue position of the third request is 0;   receive a request to set the lock based on the third request and based on the determination that a queue position of the third request is 0;   in response to the request to set the lock based on the third request, provide an error message and delete the third entry.   
     
     
         6 . A system according to  claim 1 , wherein the processor is further to execute the processor-executable process steps to cause the system to:
 receive a second request for the lock on the lock object, the second request associated with a long-term lock;   store a second entry associated with the second request and the lock object in the queue;   determine that a queue position of the second request is 0;   set the lock based on the second request based on the determination that a queue position of the second request is 0;   in response to setting of the lock, delete the second entry;   receive a third request for the lock on the lock object;   store a third entry associated with the third request and the lock object in the queue;   determine that a queue position of the third request is 0;   receive a request to set the lock based on the third request and based on the determination that a queue position of the third request is 0;   in response to the request to set the lock based on the third request, provide an error message and delete the third entry.   
     
     
         7 . A computer-implemented method comprising:
 receiving a first request for a lock on a lock object;   storing a first entry associated with the first request and the lock object in a queue;   determining a first queue position associated with the first entry based on a first priority level of the first request and on a priority level of each of a plurality of entries in the queue associated with the lock object;   determining whether a predetermined expiration time associated with the first request has expired; and   if it is determined that the predetermined expiration time has expired, deleting the first entry from the queue.   
     
     
         8 . A method according to  claim 7 , further comprising:
 determining that the first queue position is 0; and   in response to the determination, setting the lock on the lock object based on the first request.   
     
     
         9 . A method according to  claim 8 , wherein determining the first queue position associated with the first entry comprises:
 determining a first number of the plurality of entries which are associated with the lock object and either are associated with a priority level equal to or greater than the first priority level or are associated with a queue position of 0 and any priority level;   determining a highest queue position of the first number of the plurality of entries;   determining a maximum number of (the highest queue position+1) and the first number; and   determining the first queue position associated with the first entry as equal to the maximum number.   
     
     
         10 . A method according to  claim 9 , further comprising:
 determining a second number of the plurality of entries which are associated with the lock object, are associated with a priority level equal to or greater than the first priority level and with a queue position of less than the first queue position, or are associated with a queue position of 0 and any priority level;   determining a highest queue position of the second number of the plurality of entries;   determining a second maximum number of (the highest queue position+1) and the second number;   determining whether the second maximum number is less than the first queue position and none of the second number of the plurality of entries is associated with a priority level greater than the first priority level and a queue position equal to the first queue position; and   if it is determined that the second maximum number is less than the first queue position and none of the second number of the plurality of entries is associated with a priority level greater than the first priority level and a queue position equal to the first queue position, determining the first queue position associated with the first entry as equal to the second maximum number.   
     
     
         11 . A method according to  claim 10 , further comprising:
 receiving a second request for the lock on the lock object, the second request associated with a long-term lock;   storing a second entry associated with the second request and the lock object in the queue;   determining that a queue position of the second request is 0;   setting the lock based on the second request based on the determination that a queue position of the second request is 0;   in response to setting of the lock, deleting the second entry;   receiving a third request for the lock on the lock object;   storing a third entry associated with the third request and the lock object in the queue;   determining that a queue position of the third request is 0;   receiving a request to set the lock based on the third request and based on the determination that a queue position of the third request is 0;   in response to the request to set the lock based on the third request, providing an error message and deleting the third entry.   
     
     
         12 . A method according to  claim 7 , further comprising:
 receiving a second request for the lock on the lock object, the second request associated with a long-term lock;   storing a second entry associated with the second request and the lock object in the queue;   determining that a queue position of the second request is 0;   setting the lock based on the second request based on the determination that a queue position of the second request is 0;   in response to setting of the lock, deleting the second entry;   receiving a third request for the lock on the lock object;   storing a third entry associated with the third request and the lock object in the queue;   determining that a queue position of the third request is 0;   receiving a request to set the lock based on the third request and based on the determination that a queue position of the third request is 0;   in response to the request to set the lock based on the third request, providing an error message and deleting the third entry.   
     
     
         13 . A non-transitory computer-readable medium storing program code, the program code executable by a computer system to cause the computer system to:
 receive a first request for a lock on a lock object;   store a first entry associated with the first request and the lock object in a queue;   determine whether a predetermined expiration time associated with the first request has expired; and   if it is determined that the predetermined expiration time has expired, delete the first entry from the queue.   
     
     
         14 . A non-transitory computer-readable medium according to  claim 13 , wherein the program code is further executable by a computer system to cause the computer system to:
 determine a first queue position associated with the first entry based on a first priority level of the first request and on a priority level of each of a plurality of entries in the queue associated with the lock object.   
     
     
         15 . A non-transitory computer-readable medium according to  claim 14 , wherein determination of the first queue position associated with the first entry comprises:
 determination of a first number of the plurality of entries which are associated with the lock object and either are associated with a priority level equal to or greater than the first priority level, or associated with a queue position of 0 and any priority level;   determination of a highest queue position of the first number of the plurality of entries;   determination of a maximum number of (the highest queue position+1) and the first number; and   determination of the first queue position associated with the first entry as equal to the maximum number.   
     
     
         16 . A non-transitory computer-readable medium according to  claim 15 , wherein the program code is further executable by a computer system to cause the computer system to:
 determine a second number of the plurality of entries which are associated with the lock object, are associated with a priority level equal to or greater than the first priority level and a queue position of less than the first queue position, or are associated with a queue position of 0 and any priority level;   determine a highest queue position of the second number of the plurality of entries;   determine a second maximum number of (the highest queue position+1) and the second number;   determine whether the second maximum number is less than the first queue position and none of the second number of the plurality of entries is associated with a priority level greater than the first priority level and a queue position equal to the first queue position; and   if it is determined that the second maximum number is less than the first queue position and none of the second number of the plurality of entries is associated with a priority level greater than the first priority level and a queue position equal to the first queue position, determine the first queue position associated with the first entry as equal to the second maximum number.   
     
     
         17 . A non-transitory computer-readable medium according to  claim 16 , wherein the program code is further executable by a computer system to cause the computer system to:
 receive a second request for the lock on the lock object, the second request associated with a long-term lock;   store a second entry associated with the second request and the lock object in the queue;   determine that a queue position of the second request is 0;   set the lock based on the second request based on the determination that a queue position of the second request is 0;   in response to setting of the lock, delete the second entry;   receive a third request for the lock on the lock object;   store a third entry associated with the third request and the lock object in the queue;   determine that a queue position of the third request is 0;   receive a request to set the lock based on the third request and based on the determination that a queue position of the third request is 0;   in response to the request to set the lock based on the third request, provide an error message and delete the third entry.   
     
     
         18 . A non-transitory computer-readable medium according to  claim 13 , wherein the program code is further executable by a computer system to cause the computer system to:
 receive a second request for the lock on the lock object, the second request associated with a long-term lock;   store a second entry associated with the second request and the lock object in the queue;   determine that a queue position of the second request is 0;   set the lock based on the second request based on the determination that a queue position of the second request is 0;   in response to setting of the lock, delete the second entry;   receive a third request for the lock on the lock object;   store a third entry associated with the third request and the lock object in the queue;   determine that a queue position of the third request is 0;   receive a request to set the lock based on the third request and based on the determination that a queue position of the third request is 0;   in response to the request to set the lock based on the third request, provide an error message and delete the third entry.

Join the waitlist — get patent alerts

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

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