1. A filtration membrane comprising:
a polymeric membrane film; and
mesoporous silica nanoparticles embedded within the film.
2. The filtration membrane of claim 1, wherein said polymeric membrane film is formed from a solution comprising the nanoparticles, and wherein the nanoparticles comprise less than 0.1 wt % of said nanoparticle solution.
3. The filtration membrane of claim 2, wherein the polymeric film is formed from the nanoparticle solution and a monomer solution comprising a first monomer, and wherein the nanoparticle solution further comprises a second monomer.
4. The filtration membrane of claim 2, wherein said nanoparticles comprise between 0.01 and 0.1 wt % of the nanoparticle solution.
5. The filtration membrane of claim 4, wherein said nanoparticles comprise between 0.04 to 0.05 wt % of the nanoparticle solution.
6. The filtration membrane of claim 1, wherein said nanoparticles are between 2 and 300 nm.
7. The filtration membrane of claim 6, wherein said nanoparticles are between 10 and 200 nm.
8. The filtration membrane of claim 7, wherein said nanoparticles are between 80 and 120 nm.
9. The filtration membrane of claim 1, wherein said nanoparticles have a pore size between 2 and 20 nm.
10. The filtration membrane of claim 9, wherein the nanoparticles have a pore size between 3 and 4 nm.
11. The filtration membrane of claim 1, wherein said nanoparticles comprise pores of at least two sizes.
12. The filtration membrane of claim 11, wherein said nanoparticles comprise micropores and mesopores.
13. The filtration membrane of claim 12, wherein said nanoparticles comprise pores with sizes selected from the group consisting 1.5-2.0 nm, 2.0-2.5 nm and 3.5-4.5 nm.
14. The filtration membrane of claim 1, wherein said nanoparticles are MCM-41 silica nanoparticles.
15. The filtration membrane of claim 1, wherein said nanoparticles are spherical.
16. The filtration membrane of claim 1, wherein said filtration membrane is a thin-film composite membrane.
17. The filtration membrane of claim 16, wherein said filtration membrane is a reverse osmosis or nanofiltration membrane.
18. A thin-film nanocomposite membrane comprising,
a polymeric membrane film;
microporous nanoparticles embedded in said film; and
a porous substrate supporting said film;
wherein said polymeric membrane film is formed from
a monomer solution comprising a first monomer and
a nanoparticle solution comprising the nanoparticles and a second monomer,
wherein said nanoparticles comprise less than 0.1 wt % of the nanoparticle solution.
19. A method for making a filtration membrane comprising:
providing a substrate;
applying a monomer solution comprising a first monomer to a surface of the substrate; and
applying a nanoparticle solution comprising a second monomer and mesoporous silica nanoparticles to the surface of the substrate to form a polymeric membrane film on the substrate.
20. The method of claim 19, wherein the nanoparticles comprise less than 0.1 wt % of the nanoparticle solution.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A computer-implemented method comprising:
accessing a list of peer computers, the list sorted by a data exchange metric;
selecting a requester peer by traversing the list from a peer computer with a smallest data exchange metric to a peer computer with a largest data exchange metric to identify a peer computer with a pending data block request, the peer computer with the pending data block request being the requester peer and having an associated data exchange metric; and
transmitting a data block to the requester peer.
2. The computer-implemented method of claim 1, wherein selecting the requester peer comprises determining whether the requester peer is able to receive the data block, and wherein transmitting the data block comprises transmitting the data block to the requester peer when the requester peer is able to receive the data block.
3. The computer-implemented method of claim 1, wherein selecting the requester peer comprises:
maintaining a total amount of received data associated with each peer computer in the list of peer computers; and
using the total amount of received data to select among a plurality of peer computers having equal data exchange metrics.
4. The computer-implemented method of claim 3, wherein using the total amount comprises:
selecting, from the plurality of peer computers having equal data exchange metrics, a peer computer having a largest total amount of transmitted data.
5. The computer-implemented method of claim 1, wherein the data exchange metric represents the difference between bytes sent to a peer computer and bytes received from the peer computer.
6. The computer-implemented method of claim 1, comprising:
updating the data exchange metric associated with the requester peer to provide an updated data exchange metric for the requester peer; and
resorting the list of peer computers.
7. The computer-implemented method of claim 6, wherein updating the data exchange metric comprises:
adjusting the data exchange metric by the size of the data block transmitted to the requester peer.
8. The computer-implemented method of clam 6, wherein resorting the list of peer computers comprises:
removing the requester peer from the list; and
inserting the requester peer into the list based on the updated data exchange metric.
9. The computer-implemented method of claim 1, comprising:
determining whether the requester peer already has a data block corresponding to the pending data block request; and
selecting an alternative data block to transmit to the requester peer when the requester peer already has the data block corresponding to the pending data block request.
10. The computer-implemented method of claim 9, wherein selecting the alternative data block comprises:
identifying a rare data block.
11. The computer-implemented method of claim 1, comprising:
determining whether a playback position of the requester peer is beyond a sequence number of a data block corresponding to the pending data block request; and
selecting an alternative data block to transmit to the requester peer when the playback position of the requester peer is beyond the sequence number of the data block corresponding to the pending data block request.
12. The computer-implemented method of claim 11, wherein selecting the alternative data block comprises:
identifying a rare data block.
13. A system comprising:
a memory; and
a control module coupled to the memory, the control module configured to:
access a list of peer computers, the list sorted by a data exchange metric;
select a requester peer by traversing the list from a peer computer with a smallest data exchange metric to a peer computer with a largest data exchange metric to identify a peer computer with a pending data block request, the peer computer with the pending data block request being the requester peer and having an associated data exchange metric; and
transmit a data block to the requester peer.
14. The system of claim 13, wherein the control module is configured to:
select the requester peer by determining whether the requester peer is able to receive the data block, and
transmit the data block by transmitting the data block to the requester peer when the requester peer is able to receive the data block.
15. The system of claim 13, wherein the control module is configured to:
select the requester peer by:
maintaining a total amount of received data associated with each peer computer in the list of peer computers; and
use the total amount of received data to select among a plurality of peer computers having equal data exchange metrics.
16. The system of claim 15, wherein the control module is configured to use the total amount by selecting, from the plurality of peer computers having equal data exchange metrics, a peer computer having a largest total amount of transmitted data.
17. The system of claim 13, wherein the data exchange metric represents the difference between bytes sent to a peer computer and bytes received from the peer computer.
18. The system of claim 13, wherein the control module is configured to:
update the data exchange metric associated with the requester peer to provide an updated data exchange metric for the requester peer; and
resort the list of peer computers.
19. The system of claim 18, wherein the control module is configured to update the data exchange metric by:
adjusting the data exchange metric by the size of the data block transmitted to the requester peer.
20. The system of clam 18, wherein the control module is configured to resort the list of peer computers by:
removing the requester peer from the list; and
inserting the requester peer into the list based on the updated data exchange metric.
21. The system of claim 13, wherein the control module is configured to:
determine whether the requester peer already has a data block corresponding to the pending data block request; and
select an alternative data block to transmit to the requester peer when the requester peer already has the data block corresponding to the pending data block request, wherein the alternative data block is a rare block.
22. The system of claim 13, wherein the control module is configured to:
determine whether a playback position of the requester peer is beyond a sequence number of a data block corresponding to the pending data block request; and
select an alternative data block to transmit to the requester peer when the playback position of the requester peer is beyond the sequence number of the data block corresponding to the pending data block request, wherein the alternative data block is a rare block.
23. A machine-readable medium including instructions, which when executed by a machine, cause the machine to:
access a list of peer computers, the list sorted by a data exchange metric;
select a requester peer by traversing the list from a peer computer with a smallest data exchange metric to a peer computer with a largest data exchange metric to identify a peer computer with a pending data block request, the peer computer with the pending data block request being the requester peer and having an associated data exchange metric; and
transmit a data block to the requester peer.