US11824955B2ActiveUtilityA1

Surrogate cache for optimized service access with compact user objects and offline database updates

Assignee: ORACLE INT CORPPriority: Sep 9, 2020Filed: Dec 20, 2021Granted: Nov 21, 2023
Est. expirySep 9, 2040(~14.1 yrs left)· nominal 20-yr term from priority
Inventors:Debdulal Dey
H04L 67/01H04L 67/5682H04W 12/08G06F 16/2372H04L 63/102H04L 63/105H04L 63/20H04L 67/1097H04L 63/10G06F 21/6218G06F 16/24552
64
PatentIndex Score
0
Cited by
15
References
18
Claims

Abstract

When a request for accessing a service is received, a user object may be stored in a long-term data store, as well as in a short-term cache. The cache may be divided into a regular cache that stores full versions of the user objects, and a surrogate cache that stores compact versions of the user object. The compact version of the user object may include a field that is derived from the full user object indicating whether a subsequent request for access to a particular service should be granted. After access is granted/denied based on this value in the compact user object, the system can process an update to the full user object offline. This surrogate cache structure may be used to rapidly approve/deny requests, decoupling this procedure from the processing involved with a full user object.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A non-transitory computer-readable medium comprising instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:
 accessing a first cache comprising a first user object associated with a user account, wherein the first user object comprises a plurality of fields associated with a service; 
 deriving a field in a second user object associated with the user account in a second cache, wherein the field of the second user object is derived from the plurality of fields of the first user object and stores a value comprising:
 a first value indicating that access to the service will be granted; 
 a second value indicating that limited access to the service will be granted; or 
 a third value indicating that no access to the service will be granted; 
 
 receiving a request from a client device to access the service with the user account; 
 accessing the field in the second user object in the second cache to determine whether to allow the client device to access the service. 
 
     
     
       2. The non-transitory computer-readable medium of  claim 1 , wherein the second cache represents a compact version of the first cache, and the second cache maintains compact versions of user objects that have been evicted from the first cache. 
     
     
       3. The non-transitory computer-readable medium of  claim 2 , wherein the second user object is approximately 10 times smaller than the first user object. 
     
     
       4. The non-transitory computer-readable medium of  claim 2 , wherein the second user object indicates a specific service in a plurality of services. 
     
     
       5. The non-transitory computer-readable medium of  claim 1 , wherein the second value indicating that limited access to the service will be granted limits a time or a bandwidth during access. 
     
     
       6. The non-transitory computer-readable medium of  claim 1 , wherein:
 the first user object comprises pluralities of fields for a plurality of services; and 
 the second user object comprises single fields for each of the plurality of services. 
 
     
     
       7. The non-transitory computer-readable medium of  claim 1 , wherein determining whether to allow the client device to access the service does not require accessing the first user object in the first cache. 
     
     
       8. The non-transitory computer-readable medium of  claim 1 , wherein deriving the field in the second user object comprises determining a percentage of an allowed amount of access remaining in the user account. 
     
     
       9. The non-transitory computer-readable medium of  claim 1 , wherein the operations further comprise:
 generating a record of an access to the service that indicates an amount of access used by the client device. 
 
     
     
       10. The non-transitory computer-readable medium of  claim 9 , wherein the operations further comprise:
 adding the record of the access to the service to an offline record storage queue. 
 
     
     
       11. The non-transitory computer-readable medium of  claim 10 , wherein the operations further comprise:
 processing the record from the offline record storage queue to update the plurality of fields for the first user object in the first cache. 
 
     
     
       12. The non-transitory computer-readable medium of  claim 10 , wherein the operations further comprise:
 processing the record from the offline record storage queue to update a database of user objects at the service. 
 
     
     
       13. The non-transitory computer-readable medium of  claim 11 , wherein the operations further comprise:
 updating the field in the second user object in the second cache based on updated fields in the first user object in the first cache to process subsequent requests to access the service. 
 
     
     
       14. The non-transitory computer-readable medium of  claim 11 , wherein a determination is made to allow the client device to access the service in real time as the request from the client device is received, and wherein the record from the offline record storage queue is processed after access is allowed for the client device to access the service. 
     
     
       15. The non-transitory computer-readable medium of  claim 11 , wherein the operations further comprise:
 processing each of a plurality of records in the offline record storage queue, wherein the plurality of records are received from a plurality of different requests to access a plurality of different services, and the plurality of records are processed together as a batch. 
 
     
     
       16. The non-transitory computer-readable medium of  claim 1 , wherein the service comprises a telecom service. 
     
     
       17. A method of optimizing a user object cache, the method comprising:
 accessing a first cache comprising a first user object associated with a user account, wherein the first user object comprises a plurality of fields associated with a service; 
 deriving a field in a second user object associated with the user account in a second cache, wherein the field of the second user object is derived from the plurality of fields of the first user object and stores a value comprising:
 a first value indicating that access to the service will be granted; 
 a second value indicating that limited access to the service will be granted; or 
 a third value indicating that no access to the service will be granted; 
 
 receiving a request from a client device to access the service with the user account; 
 accessing the field in the second user object in the second cache to determine whether to allow the client device to access the service. 
 
     
     
       18. A system comprising:
 one or more processors; and 
 one or more memory devices comprising instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:
 accessing a first cache comprising a first user object associated with a user account, wherein the first user object comprises a plurality of fields associated with a service; 
 deriving a field in a second user object associated with the user account in a second cache, wherein the field of the second user object is derived from the plurality of fields of the first user object and stores a value comprising:
 a first value indicating that access to the service will be granted; 
 a second value indicating that limited access to the service will be granted; or 
 a third value indicating that no access to the service will be granted; 
 
 receiving a request from a client device to access the service with the user account;
 accessing the field in the second user object in the second cache to determine whether to allow the client device to access the service.

Join the waitlist — get patent alerts

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

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