WebRTC enables browsers to exchange data directly but the number of possible concurrent connections to a single source is limited. We overcome the limitation by organizing participants in a fat-tree overlay: when the maximum number of connections of a tree node is reached, the new participants connect to the node's children. Our design quickly scales when a large number of participants join in a short amount of time, by relying on a novel scheme that only requires local information to route connection messages: the destination is derived from the hash value of the combined identifiers of the message's source and of the node that is holding the message. The scheme provides deterministic routing of a sequence of connection messages from a single source and probabilistic balancing of newer connections among the leaves. We show that this design puts at least 83 of nodes at the same depth as a deterministic algorithm, can connect a thousand browser windows in 21-55 seconds in a local network, and can be deployed for volunteer computing to tap into 320 cores in less than 30 seconds on a local network to increase the total throughput on the Collatz application by two orders of magnitude compared to a single core.
@cite_41: Live video streaming applications have gained great popularity among users but exert great pressure on video servers and the Internet. Peer-to-Peer (P2P) networks provide an attractive solution due to their low cost and high scalability. A large number of P2P live video streaming schemes have been proposed and many deployments have appeared on the Internet. These schemes pursue vastly diverse directions, from mimicking IP multicast to BitTorrent-like swarming to distributed hash tables. In this paper, we provide a comprehensive and in-depth survey of P2P live video streaming schemes from an algorithmic perspective. Our purpose is to acquaint future designers with the critical design choices and their impacts on system performance. The primary objective of a P2P live video streaming system is to distribute packets from the video source to peers, and the collective paths through which a packet traverses form a tree. We focus on three aspects of how these trees are formed: determining the supplier-receiver relationships for each packet, handling the departure of the supplier or receiver before their relationship expires, and handling lost packets. We identify critical design choices in each aspect and propose a taxonomy according to these choices. Because the surveyed papers use different performance metrics and the reported results are heavily influenced by their experimental settings, we consider two measures to identify the impact of each design choice: we use a set of "internal" metrics in addition to the commonly used "external" metrics, and we examine performance metrics of schemes that have made the same design choice. For better understanding of how the design choices interact with one another and exposing future designers to the design choices specific to each individual scheme, we also provide systematic summaries for a large number of schemes.
@cite_27: 
@cite_18: This paper proposes the idea of emulating fat-trees in overlays for multi-source multicast applications. Fat-trees are like real trees in that their branches become thicker the closer one gets to the root, thus overcoming the “root bottleneck” of regular trees. We introduce FatNemo, a novel overlay multi-source multicast protocol based on this idea. FatNemo organizes its members into a tree of clusters with cluster sizes increasing closer to the root. It uses bandwidth capacity to decide the highest layer in which a peer can participate, and relies on co-leaders to share the forwarding responsibility and to increase the tree’s resilience to path and node failures.
have originally been proposed to provide high-bandwidth communication between nodes in computing clusters while minimizing the cost of switching hardware @cite_27 . Fat-trees derive their name from the increasing bandwidth requirements on edges closer to the root because they relay traffic for all children in the underlying sub-tree. Fat-trees were later also adopted explicitly or implicitly in , in which nodes connected using Internet protocols are organized in logical networks for efficient communication, to provide, for example, multicast communication @cite_41 @cite_18 .