Concurrency reduction service
US-9973573-B2 · May 15, 2018 · US
US11323534B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11323534-B2 |
| Application number | US-201715485511-A |
| Country | US |
| Kind code | B2 |
| Filing date | Apr 12, 2017 |
| Priority date | Apr 12, 2017 |
| Publication date | May 3, 2022 |
| Grant date | May 3, 2022 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Receiving a plurality of concurrent incoming requests from the plurality of services, with each incoming request and each service subscribing to a topic in a shared message queue. The queue is used for: notifying other subscribers when a request to a back-end service is being made; and/or notifying other subscribers when a response from the back-end service is received.
Opening claim text (preview).
What is claimed is: 1. A method of reducing concurrency in a system having a plurality of services sending a plurality of concurrent requests to a back-end service, the method comprising the steps of: a service computer subscribing over a network to a thread of a concurrency reduction message service comprising messages regarding data requested from the back-end service, wherein the messages are viewable to each of the plurality of services; the service computer searching the messages in the thread of the concurrency reduction message service to find messages from another service which requested data needed by the service computer from the back-end service; for a non-occurrence of any messages from other services in the thread of the concurrency reduction message service which requested the data needed by the service, the service computer configured to: map a data request to a key; publish a message to the thread of the concurrency reduction message service with the key mapped to the data request, wherein publishing the message notifies each of the plurality of services waiting for a similar data request; add the key mapped to the data request to a local cache of the service; block the thread of the concurrency reduction message service with the published message having the key mapped to the data request; submit the key mapped to the data request to the back-end service; receive a response from the back-end service; publish a message with the response to the data request to the thread of the concurrency reduction message service; remove the key from the local cache of the service; and unblock the thread of the concurrency reduction message service with the published message having the key mapped to the data request; the service computer finds a message which requested the data needed by the service computer from other services in the thread of the concurrency reduction message service. 2. The method of claim 1 , wherein when a response is not received from the back-end service within a time period, the service computer configured to notify all blocked threads that a timeout has occurred. 3. The method of claim 2 , further comprising the service computer publishing a new message to the thread notifying other subscribers that another service can make the same request to the back-end service after notifying all blocked threads that timeout occurred. 4. The method of claim 1 , wherein determining the service computer finds the message which requested the data needed by the service computer from other services in the thread of the concurrency reduction message service, the service computer configured to: determine a response exists to the message which requested the data needed by the service computer from other services in the thread of the concurrency reduction message service; determine a response does not exist to the message which requested the data needed by the service computer from other services in the thread of the concurrency reduction message service, then waiting for a response to appear in the thread; and determine a response does exist to the message which requested the data needed by the service computer from other services in the thread of the concurrency reduction message service, then: determining the key mapped to the data requested has been stored in a local cache of the service; determine the key mapped to the data requested has been stored in a local cache of the service, then notifying the threads mapped to the key waiting for a response from the back-end service with the response to the data request and clearing the key from the local cache; and determine the key mapped to the data requested has not been stored in a local cache of the service, then blocking the thread of the concurrency reduction message service containing the message which requested the data needed by the service computer from other services and storing the key in the local cache of the service computer. 5. A computer program product for reducing concurrency in a system having a plurality of services sending a plurality of concurrent requests to a back-end service, the services each comprising a computer comprising at least one processor, one or more memories, one or more computer readable storage media, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by the computer to perform a method comprising: subscribing, by the service computer, to a thread of a concurrency reduction message service comprising messages regarding data requested from the back-end service, wherein the messages are viewable to each of the plurality of services; searching, by the service computer, the messages in the thread of the concurrency reduction message service to find messages from another service which requested data needed by the service computer from the back-end service; for a non-occurrence of any messages from other services in the thread of the concurrency reduction message service which requested the data needed by the service computer, the service computer configured to: map a data request to a key; publish a message to the thread of the concurrency reduction message service with the key mapped to the data request, wherein publishing the message notifies each of the plurality of services waiting for a similar data request; add the key mapped to the data request to a local cache of the service; block the thread of the concurrency reduction message service with the published message having the key mapped to the data request; submit the key mapped to the data request to the back-end service; receive a response from the back-end service; publish a message with the response to the data request to the thread of the concurrency reduction message service; remove the key from the local cache of the service; and unblock the thread of the concurrency reduction message service with the published message having the key mapped to the data request; and finding, by the service computer, a message which requested the data needed by the service computer from other services in the thread of the concurrency reduction message service. 6. The computer program product of claim 5 , wherein when a response is not received from the back-end service within a time period, configured to notify, by the service computer, all blocked threads that a timeout has occurred. 7. The computer program product of claim 6 , further comprising publishing, by the service computer, a new message to the thread notifying other subscribers that another service can make the same request to the back-end service after notifying all blocked threads that timeout has occurred. 8. The computer program product of claim 5 , wherein determining the service computer finds the message which requested the data needed by the service computer from other services in the thread of the concurrency reduction message service, the service computer configured to: determine a response exists to the message which requested the data needed by the service computer from other services in the thread of the concurrency reduction message service; determining a response does not exist to the message which requested the data needed by the service computer from other services in the thread of the concurrency reduction message service, then waiting for a response to appear in the thread; and determining a response does exist to the message which requested the data needed by the service computer from other services in the thread of the concurrency reduction message service, then the service computer: determining the key mapped to the data requested has been stored in a local cache of the service; determining the
Routing a service request depending on the request content or context · CPC title
Reducing the amount or size of exchanged application data · CPC title
Brokering proxy services · CPC title
Electricity · mapped topic
Electricity · mapped topic
Related publications grouped by family.
Answers are generated from the same data shown on this page.