| US 7,512,943 B2 | ||
| Distributed caching of files in a network | ||
| Anna M. Hester, Redmond, Wash. (US); Barbara Harder, Kirkland, Wash. (US); Edward F. Reus, Woodinville, Wash. (US); Jeffrey S. Roberts, North Bend, Wash. (US); Kancheng Cao, Bothell, Wash. (US); Mike Zoran, Redmond, Wash. (US); and Narayana Mahankali, Bellevue, Wash. (US) | ||
| Assigned to Microsoft Corporation, Redmond, Wash. (US) | ||
| Filed on Aug. 30, 2005, as Appl. No. 11/215,621. | ||
| Prior Publication US 2007/0050761 A1, Mar. 01, 2007 | ||
| Int. Cl. G06F 9/445 (2006.01) | ||
| U.S. Cl. 717—177 [717/172; 709/217; 709/219; 709/220; 709/223; 709/227; 707/9; 707/10] | 12 Claims |

| 1. At a computer system in a computer network including one or more networked computers a method of caching and sharing files,
the method comprising acts of:
building a peer list comprising a listing of potential peer servers from among the one or more networked computers, the peer
list including no more than a predetermined number of potential peer servers, wherein building a peer list comprises:
(a) sending a solicitation request to one or more potential peers including an indication of a number of peers desired;
(b) receiving message replies from potential peers, wherein the potential peers wait for a random interval of time, while
listening for multicast replies from other potential peers, and wherein the potential peers detect responses from the other
potential peers and determine the number of responses from other potential peers and only send replies if the potential peers
have not detected the number of responses corresponding to the number of peers desired, from other potential peers, and do
not send replies if they have detected the number of responses from other potential peers indicated in the number of peers
desired;
(c) based on messages received from potential peers, adding potential peers that sent replies as potential servers to the
peer list up to the predetermined number based on messages received from the one or more networked computers, and wherein
potential servers are added to the peer list according to logical closeness of the potential servers to the computer system;
(d) removing potential servers from the peer list; and
(e) repeating acts (a-c) when a predetermined number of potential servers have been removed from the peer list;
querying potential peer servers in the peer list for a file or portion of a file;
receiving a message from a peer server in the peer list that the peer server has the file or portion of a file available for
download; and
downloading the file or portion of a file from the peer server.
|