Patent ID: 8209711

Claim:
A proxy server comprising: a communication interface communicatively coupling the proxy server to a web server and a plurality of clients via a network; a proxy cache; and a control system associated with the communication interface and configured to: provide a plurality of reader/writer threads, each one of the plurality of reader/writer threads capable of operating as a writer thread and operating as a reader thread, where each one of the plurality of reader/writer threads transfers segments of a digital asset from the web server to the proxy cache as the writer thread and each one of the plurality of reader/writer threads transfers the segments of the digital asset from the proxy cache as the reader thread; configure a first reader/writer thread of the plurality of reader/writer threads as the writer thread and a first reader thread in response to receiving a request from a first client of the plurality of clients for the digital asset where the first reader/writer thread transfers the segments of the digital asset from the proxy cache to the first client as the first reader thread; configure a second reader/writer thread of the plurality of reader/writer threads as a second reader thread in response to receiving a request from a second client of the plurality of clients for the digital asset where the second reader/writer thread transfers the segments of the digital asset from the proxy cache to the second client as the second reader thread; and switch roles of the first reader/writer thread and the second reader/writer thread based on a comparison of a connection speed of the first reader/writer thread as the first reader thread and a connection speed of the second reader/writer thread as the second reader thread.