Predictive Peer Determination For Peer-to-Peer Digital Content Download
US-2016352817-A1 · Dec 1, 2016 · US
US10771601B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10771601-B2 |
| Application number | US-201715595562-A |
| Country | US |
| Kind code | B2 |
| Filing date | May 15, 2017 |
| Priority date | May 15, 2017 |
| Publication date | Sep 8, 2020 |
| Grant date | Sep 8, 2020 |
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.
Requests for data can be distributed among servers based on indicators of intent to access the data. For example, a kernel of a client device can receive a message from a software application. The message can indicate that the software application intends to access data at a future point in time. The kernel can transmit an electronic communication associated with the message to multiple servers. The kernel can receive a response to the electronic communication from a server of the multiple servers. Based on the response and prior to receiving a future request for the data from the software application, the kernel can select the server from among the multiple servers as a destination for the future request for the data.
Opening claim text (preview).
The invention claimed is: 1. A client device comprising: a processing device; and a memory device including: a software application that is executable by the processing device for transmitting a message to a kernel indicating an intention of the software application to access data at a future point in time, wherein the message includes an fadvise command indicating the data and a data-access pattern, and wherein the software application is configured to transmit the message to the kernel prior to requesting the data from the kernel; and the kernel, wherein the kernel is configured for: receiving the message from the software application; in response to receiving the message and prior to the software application requesting the data: detecting the fadvise command in the message; based on detecting the fadvise command in the message, transmitting a plurality of electronic communications to a plurality of servers, the plurality of electronic communications indicating the data that the software application intends to access at the future point in time; receiving a response to an electronic communication among the plurality of electronic communications from a server among the plurality of servers, the server being configured to (i) determine a capability of the server to handle a future request for the data and (ii) generate the response to the electronic communication based on the determined capability; based on the response, selecting the server from among the plurality of servers as a destination from which to obtain the data in order to respond to the future request for the data from the software application; and based on selecting the server, storing an association between the server and the data in a database; and subsequent to storing the association in the database: receive a request for the data from the software application; retrieve the data from the server based on the association in the database; and provide the data back to the software application. 2. The client device of claim 1 , wherein the message includes a flag indicating the data-access pattern. 3. The client device of claim 2 , wherein: the flag indicates that the software application expects to access the data within a predetermined time interval; the electronic communication is configured to indicate to the server that the software application expects to access the data within the predetermined ti me interval; the server is configured to determine if the server is capable of handling one or more future requests for the data within the predetermined time interval, wherein the server is capable of handling the one or more future requests for the data within the predetermined time interval if the server already has the data stored in a cache memory; the response from the server is configured to indicate that the server is capable of handling the one or more future requests for the data within the predetermined time interval; and the kernel is further configured for selecting the server from among the plurality of servers based on the response indicating that the server is capable of handling the one or more future requests for the data within the predetermined time interval. 4. The client device of claim 2 , wherein: the flag indicates that the software application expects to access data in a sequential order; the electronic communication is configured to indicate to the server that the software application expects to access the data in the sequential order; the server is configured to determine if the server is capable of handling one or more future requests for the data in the sequential order, wherein the server is capable of handling the one or more future requests for the data in the sequential order if the server will likely have the data stored in a cache memory at one or more future points in time corresponding to the one or more future requests for the data; the response from the server is configured to indicate that the server is capable of handling the one or more future requests for the data in the sequential order; and the kernel is further configured for selecting the server from among the plurality of servers based on the response indicating that the server is capable of handling the one or more future requests for the data in the sequential order. 5. The client device of claim 2 , wherein: the flag indicates that the software application expects to access data in a random order; the plurality of electronic communications are configured to indicate to the plurality of servers that the software application expects to access the data in the random order; each respective server in the plurality of servers is configured to determine if the respective server is capable of handling one or more future requests for the data in the random order; and the kernel is further configured for: receiving responses to the plurality of electronic communications from only a subset of servers in the plurality of servers, the subset of servers including the server and being capable of handling the one or more future requests for the data in the random order; and selecting the server randomly from among the subset of servers based on receiving the responses from the subset of servers. 6. A method comprising: transmitting, by a software application executing on a client device, a message to a kernel of the client device indicating an intention of the software application to access data at a future point in time, wherein the message includes an fadvise command indicating the data and a data-access pattern, and wherein the software application transmits the message to the kernel prior to requesting the data from the kernel; receiving, by the kernel of the client device, the message from the software application; in response to receiving the message and prior to the software application requesting the data: detecting, by the kernel, the fadvise command in the message; based on detecting the fadvise command in the message, transmitting, by the kernel, a plurality of electronic communications to a plurality of servers, the plurality of electronic communications indicating the data that the software application intends to access at the future point in time; receiving, by the kernel, a response to an electronic communication among the plurality of electronic communications from a server of the plurality of servers, the server being configured to (i) determine a capability of the server to handle a future request for the data and (ii) generate the response to the electronic communication based on the determined capability; based on the response, selecting, by the kernel, the server from among the plurality of servers as a destination from which to obtain the data in order to respond to the future request for the data from the software application; and based on selecting the server, storing, by the kernel, an association between the server and the data in a database; and subsequent to storing the association in the database: receiving, by the kernel, a request for the data from the software application; retrieving, by the kernel, the data from the server based on the association between the server and the data in the database; and providing, by the kernel, the data back to the software application. 7. The method of claim 6 , wherein the electronic communication includes the message, and transmitting the electronic communication to the plurality of servers comprises routing the message to the plurality of servers. 8. The method of claim 6 , wherein the electronic communication and the message both include the a flag indicating the data-access pattern. 9. The method of claim 6 , wherein: the message includes a flag that indicat
Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources (admission control or resource allocation H04L47/70) · CPC title
Persistence of sessions during load balancing · CPC title
Protocols · CPC title
in the application layer [OSI layer 7] · CPC title
involving the movement of software or configuration parameters (network booting or remote initial program loading [RIPL] G06F9/4416) · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.