Data request multiplexing
First Claim
Patent Images
1. A method comprising:
- receiving a first request for data associated with a first data identifier from a first requesting entity;
maintaining mapping information for the first request that associates the first data identifier with the first requesting entity;
receiving a second request for the data associated with the first data identifier from a second requesting entity;
maintaining mapping information for the second request that associates the first data identifier with the second requesting entity;
determining that the first data identifier applies to the first request and to the second request;
requesting the data associated with the first data identifier from a data-providing entity in a multiplexed request;
receiving a response to the multiplexed request from the data-providing entity, the response including the data associated with the first data identifier;
returning a first response to the first request, including accessing the mapping information to include the data associated with the first data identifier in the first response;
returning a second response to the second request, including accessing the mapping information to include the data associated with the first data identifier in the second response;
adding the first data identifier to a pending set, and wherein determining that the first data identifier applies to the first request and the second request comprises detecting the first data identifier in the pending set as being present in the second request; and
determining that no other request needs a response that includes the data associated with the first data identifier, and removing the first data identifier from the pending set.
1 Assignment
0 Petitions
Accused Products
Abstract
The described technology is generally directed towards combining (multiplexing) two or more pending data requests for the same data item into a single request that is sent to a data providing entity such as a back-end data service. Described is maintaining a mapping of the requests to requesting entities so that a single response to a multiplexed request having data for a requested data item may be re-associated (de-multiplexed) to each requesting entity that requested that data item. Also described is batching a plurality of requests, which may include one or more multiplexed requests, into a batch request sent to a data providing entity.
26 Citations
14 Claims
-
1. A method comprising:
-
receiving a first request for data associated with a first data identifier from a first requesting entity; maintaining mapping information for the first request that associates the first data identifier with the first requesting entity; receiving a second request for the data associated with the first data identifier from a second requesting entity; maintaining mapping information for the second request that associates the first data identifier with the second requesting entity; determining that the first data identifier applies to the first request and to the second request; requesting the data associated with the first data identifier from a data-providing entity in a multiplexed request; receiving a response to the multiplexed request from the data-providing entity, the response including the data associated with the first data identifier; returning a first response to the first request, including accessing the mapping information to include the data associated with the first data identifier in the first response; returning a second response to the second request, including accessing the mapping information to include the data associated with the first data identifier in the second response; adding the first data identifier to a pending set, and wherein determining that the first data identifier applies to the first request and the second request comprises detecting the first data identifier in the pending set as being present in the second request; and determining that no other request needs a response that includes the data associated with the first data identifier, and removing the first data identifier from the pending set. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system comprising:
-
a request handling entity that receives requests for data items from requesting entities; a request manager of the request handling entity, the request manager including; a request multiplexer that that maintains a set of zero or more pending requests, and for each request for a data item, associates that data item request with its requesting entity in a map, and evaluates the set of pending data item requests to not request that data item more than once from a data-providing entity when another request for that data item is pending; and a request de-multiplexer that de-multiplexes responses from the data-providing entity, including for each data item received in each response, to access the map to re-associate that data item with each requesting entity that requested the data item for returning in a response to that requesting entity; wherein the request manager further comprises a batching process coupled to the request multiplexer, the batching process configured to combine a plurality of requests for data items from the request multiplexer into a batch request to the data-providing entity; wherein the request multiplexer considers another request for a data item to not be pending if an already pending request for that data item has been pending too long. - View Dependent Claims (10, 11, 12)
-
-
13. One or more non-transitory machine-readable storage media having machine-executable instructions, which when executed perform steps, comprising:
-
receiving a first request for a first data item from a first requestor; maintaining a mapping that associates the first requestor with the first request; determining for the first request whether another request for the first data item is already pending, and if not, adding an identifier of the first data item to a pending set and making a single request for the first data item to a data-providing entity, and if so, awaiting a response to the other request for the first data item; receiving a second request for the first data item from a second requestor; maintaining a mapping that associates the second requestor with the second request; determining for the second request that a request for the first data item is already pending, and awaiting a response to the other request for the first data item; receiving response data corresponding to the single request for the first data item; accessing the mapping to return the response data received for the first data item in a response to the first request from the first requestor; accessing the mapping to return the response data received for the first data item in a response to the second request from the second requestor; and determining that no other request needs a response that includes the data associated with the first data identifier, and removing the first data identifier from the pending set; wherein making the single request for the first data item comprises adding an identifier of the first data item to a batch request, and sending the batch request to the data-providing entity. - View Dependent Claims (14)
-
Specification