Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.
1. A computer-implemented method for collaboratively synchronizing request flows across microservices of a cloud computing environment to meet quality of service (QoS) provisions of a shared dependent service, the computer-implemented method comprising: by a processor that executes a request flow controller module of a first microservice of a set of collaborating microservices: generating, by the first microservice, a plurality of requests for a shared dependent service, wherein the QoS provisions for processing the plurality of requests by the shared dependent service are fixed and lower than QoS provisions for generating the plurality of requests by the first microservice; receiving, from request flow controller modules of other microservices of the set of collaborating microservices, a microservice request data set including information indicative of requests to the shared dependent service made by the other collaborating microservices; distributing synchronization counters between local memory of the request flow controller module of the first microservice and a shared global cache, said synchronization counters tracking a number of requests being processed at a given moment across the set of collaborating microservices by the shared dependent service; upon determining that the number of requests being processed exceed QoS provisions of the shared dependent service for processing the number of requests across the set of collaborating microservices, synchronizing, by the request flow controller module of the first microservice, the requests generated by the first microservice, with the requests indicated in the microservice request data set, by collaboratively mapping the microservice request data set and the plurality of requests from the first microservice to the QoS provisions of the shared dependent service, as a set; and maintaining the synchronized requests from the set of collaborating microservices to the shared dependent service according to the QoS provisions of the shared dependent service.
2. The computer-implemented method of claim 1 , where: the QoS provisions of the shared dependent service comprises a level of request throughput processing beyond which any additional requests to the shared dependent service will be blocked by the shared dependent service.
3. The computer-implemented method of claim 1 , further comprising the request flow controller module of the first microservice as executed by the processor: maintaining, in collaboration with the other microservices of the set of collaborating microservices, a shared atomic pending request counter and a shared atomic request-in-process counter within the shared global cache, where the shared atomic pending request counter tracks issued requests from the set of collaborating microservices to the shared dependent service, and the shared atomic request-in-process counter tracks processing of requests by the shared dependent service.
4. The computer-implemented method of claim 1 , further comprising the request flow controller module of the first microservice as executed by the processor bypassing request flow control processing in response to determining that a current shared pending request count across all of the set of collaborating microservices to the shared dependent service, as represented by a value of a shared atomic pending request counter, is lower than the processing capabilities of the shared dependent service.
5. The computer-implemented method of claim 1 , further comprising the request flow controller module of the first microservice as executed by the processor: holding additional requests to the shared dependent service in response to determining that current requests from the set of collaborating microservices to the shared dependent service, as represented by a value of a shared atomic pending request counter, has reached a maximum according to the processing capabilities of the shared dependent service; and issuing the additional requests to the shared dependent service in response to completion of processing, as represented by a value of a shared atomic request-in-process counter, of the current requests by the shared dependent service.
6. The computer-implemented method of claim 1 , where software is provided as a service in the cloud environment to provision the request flow controller modules of the set of collaborating microservices.
7. The computer-implemented method of claim 1 , wherein the shared dependent service is a mobile device service provider gateway used by the set of collaborating microservices to send push notifications to a plurality of mobile devices, the QoS provisions of the shared dependent service fixes a number of push notifications and the mobile service provider gateway blocks any requests to send push notifications that exceed the number of push notifications defined by the QoS provisions.
8. The computer-implemented method of claim 7 , further comprising: requesting, by the collaborating microservices, a plurality of read operations of a database to extract stored device IDs for each of the plurality of mobile devices receiving the push notifications, wherein said database has a fixed QoS for performing the plurality of read operations that are less than request processing capabilities of the collaborating microservices; and further collaboratively mapping by the collaborating microservices, the plurality of read operations of the database to the fixed QoS of the database.
This invention relates to optimizing database read operations in a microservices architecture for push notification systems. The problem addressed is the mismatch between the high request processing capabilities of microservices and the limited quality of service (QoS) of databases, which can lead to inefficiencies in handling push notifications for mobile devices. The system involves multiple collaborating microservices that manage push notifications for mobile devices. These microservices request read operations from a database to extract stored device IDs for the mobile devices receiving the notifications. The database has a fixed QoS that is lower than the processing capabilities of the microservices, meaning it cannot handle the full request load from the microservices simultaneously. To address this, the microservices collaboratively map the read operations to the database's fixed QoS. This ensures that the database is not overwhelmed while still efficiently retrieving the necessary device IDs. The collaboration between microservices allows for coordinated access to the database, optimizing performance and preventing bottlenecks. The system dynamically adjusts the read operations to align with the database's limitations, improving overall system efficiency in delivering push notifications.
9. A system for collaboratively synchronizing request flows across microservices of a cloud computing environment to meet quality of service (QoS) provisions of a shared dependent service, the system comprising: a communication module; and a processor, that executes a request flow controller module of a first microservice of a set of collaborating microservices, programmed to: generate, by the first microservice, a plurality of requests for a shared dependent service, wherein the QoS provisions for processing the plurality of requests by the shared dependent service are fixed and lower than QoS provisions for generating the plurality of requests by the first microservice; receive, from request flow controller modules of other microservices of the set of collaborating microservices, a microservice request data set including information indicative of requests to the shared dependent service made by the other collaborating microservices; distribute synchronization counters between local memory of the request flow controller module of the first microservice and a shared global cache, said synchronization counters tracking a number of requests being processed at a given moment across the set of collaborating microservices by the shared dependent service; upon determining that the number of requests being processed exceed QoS provisions of the shared dependent service for processing the number of requests across the set of collaborating microservices, synchronize, via the communication module by the request flow controller module of the first microservice, the requests generated by the first microservice, with the requests indicated in the microservice request data set, by collaboratively mapping the microservice request data set and the plurality of requests from the first microservice to the QoS provisions of the shared dependent service, as a set; and maintain the synchronized requests from the set of collaborating microservices to the shared dependent service according to the QoS provisions of the shared dependent service.
In cloud computing environments, microservices often rely on shared dependent services, which may have strict quality of service (QoS) provisions, such as request processing limits. When multiple microservices generate requests to the same shared service, exceeding these limits can degrade performance. This system addresses this problem by synchronizing request flows across collaborating microservices to ensure compliance with the shared service's QoS constraints. The system includes a communication module and a processor executing a request flow controller module in a first microservice. The controller generates multiple requests for the shared dependent service, which has lower QoS provisions (e.g., request processing capacity) than the microservices generating the requests. The controller also receives request data from other collaborating microservices, detailing their requests to the shared service. Synchronization counters track the number of requests being processed by the shared service at any given time, stored in both local memory and a shared global cache. If the total requests exceed the shared service's QoS limits, the system synchronizes the requests across all collaborating microservices. This involves mapping the combined request data to the shared service's QoS provisions, ensuring the total request load remains within acceptable limits. The system then maintains this synchronized request flow to the shared service, preventing overload and maintaining performance. This collaborative approach ensures that all microservices adhere to the shared service's constraints without manual intervention.
10. The system of claim 9 , where: the QoS provisions of the shared dependent service comprises a level of request throughput processing beyond which any additional requests to the shared dependent service will be blocked by the shared dependent service.
11. The system of claim 9 , where the processor of the request flow controller module of the first micro service is further programmed to: maintain, in collaboration with the other microservices of the set of collaborating microservices, a shared atomic pending request counter and a shared atomic request-in-process counter within a shared cache, where the shared atomic pending request counter tracks issued requests from the set of collaborating microservices to the shared dependent service, and the shared atomic request-in-process counter tracks processing of requests by the shared dependent service.
12. The system of claim 9 , where the processor of the request flow controller module of the first microservice is further programmed to bypass request flow control processing in response to determining that a current shared pending request count across all of the set of collaborating microservices to the shared dependent service, as represented by a value of a shared atomic pending request counter, is lower than the processing capabilities of the shared dependent service.
13. The system of claim 9 , where the processor of the request flow controller module of the first micro service is further programmed to: hold additional requests to the shared dependent service in response to determining that current requests from the set of collaborating microservices to the shared dependent service, as represented by a value of a shared atomic pending request counter, has reached a maximum according to the processing capabilities of the shared dependent service; and issue the additional requests to the shared dependent service in response to completion of processing, as represented by a value of a shared atomic request-in-process counter, of the current requests by the shared dependent service.
14. The system of claim 9 , wherein the shared dependent service is a mobile device service provider gateway configured to send push notifications requested by the set of collaborating microservices to a plurality of mobile devices, the QoS provisions of the shared dependent service fixes a number of push notifications to be sent and the mobile service provider gateway blocks any requests to send push notifications that exceed the number of push notifications defined by the QoS provisions of the shared dependent service.
15. A computer program product for collaboratively synchronizing request flows across microservices of a cloud computing environment to meet quality of service (QoS) provisions of a shared dependent service, the computer program product comprising: a computer readable storage medium having computer readable program code embodied therewith, where the computer readable storage medium is not a transitory signal per se and where the computer readable program code when executed on a computer that executes a request flow controller module of a first microservice of a set of collaborating microservices causes the computer to: generate, by the first microservice, a plurality of requests for a shared dependent service, wherein the QoS provisions for processing the plurality of requests by the shared dependent service are fixed and lower than QoS provisions for generating the plurality of requests by the first microservice; receive, from request flow controller modules of other microservices of the set of collaborating microservices, a microservice request data set including information indicative of requests to the shared dependent service made by the other collaborating microservices; distribute synchronization counters between local memory of the request flow controller module of the first microservice and a shared global cache, said synchronization counters tracking a number of requests being processed at a given moment across the set of collaborating microservices by the shared dependent service; upon determining that the number of requests being processed exceed QoS provisions of the shared dependent service for processing the number of requests across the set of collaborating microservices, synchronize, by the request flow controller module of the first microservice, the requests generated by the first microservice, with the requests indicated in the microservice request data set, by collaboratively mapping the microservice request data set and the plurality of requests from the first microservice to the QoS provisions of the shared dependent service, as a set; and maintain the synchronized requests from the set of collaborating microservices to the shared dependent service according to the QoS provisions of the shared dependent service.
16. The computer program product of claim 15 , where: the QoS provisions of the shared dependent service comprises a level of request throughput processing beyond which any additional requests to the shared dependent service will be blocked by the shared dependent service.
17. The computer program product of claim 15 , where the computer readable program code when executed on the computer that executes the request flow controller module of the first microservice further causes the computer to: maintain, in collaboration with the other microservices of the set of collaborating microservices, a shared atomic pending request counter and a shared atomic request-in-process counter within a shared cache, where the shared atomic pending request counter tracks issued requests from the set of collaborating microservices to the shared dependent service, and the shared atomic request-in-process counter tracks processing of requests by the shared dependent service.
18. The computer program product of claim 15 , where the computer readable program code when executed on the computer that executes the request flow controller module of the first microservice further causes the computer to bypass request flow control processing in response to determining that a current shared pending request count across all of the set of collaborating microservices to the shared dependent service, as represented by a value of a shared atomic pending request counter, is lower than the processing capabilities of the shared dependent service.
19. The computer program product of claim 15 , where the computer readable program code when executed on the computer that executes the request flow controller module of the first microservice further causes the computer to: hold additional requests to the shared dependent service in response to determining that current requests from the set of collaborating microservices to the shared dependent service, as represented by a value of a shared atomic pending request counter, has reached a maximum according to the processing capabilities of the shared dependent service; and issue the additional requests to the shared dependent service in response to completion of processing, as represented by a value of a shared atomic request-in-process counter, of the current requests by the shared dependent service.
20. The computer program product of claim 15 , where software is provided as a service in the cloud environment to provision the request flow controller modules of the set of collaborating microservices.
This invention relates to cloud-based software provisioning for microservices architectures. The problem addressed is the need for efficient, scalable, and centralized management of request flow control in distributed microservices environments. Traditional approaches often lack dynamic adaptability and require manual configuration, leading to inefficiencies and scalability issues. The invention provides a cloud-based software service that provisions request flow controller modules across a set of collaborating microservices. These controller modules dynamically manage the routing, prioritization, and load balancing of requests between microservices to optimize performance and resource utilization. The service includes mechanisms for real-time monitoring, adaptive throttling, and failover handling to ensure reliability and responsiveness. The provisioning process involves deploying the controller modules with predefined or configurable policies that dictate how requests are processed, ensuring consistency and reducing manual intervention. The system also supports inter-service communication protocols, allowing seamless integration with existing microservices architectures. By centralizing the control logic in the cloud, the solution simplifies deployment, reduces operational overhead, and enhances scalability. The invention is particularly useful in environments where microservices must handle variable workloads and maintain high availability.
Unknown
March 23, 2021
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.