Results 1 - 10
of
26
FairTorrent: Bringing Fairness to Peer-to-Peer Systems
"... Peer-to-Peer file-sharing applications suffer from a fundamental problem of unfairness. Free-riders cause slower download times for others by contributing little or no upload bandwidth while consuming much download bandwidth. Previous attempts to address this fair bandwidth allocation problem suffer ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
Peer-to-Peer file-sharing applications suffer from a fundamental problem of unfairness. Free-riders cause slower download times for others by contributing little or no upload bandwidth while consuming much download bandwidth. Previous attempts to address this fair bandwidth allocation problem suffer from slow peer discovery, inaccurate predictions of neighboring peers ’ bandwidth allocations, underutilization of bandwidth, and complex parameter tuning. We present FairTorrent, a new deficit-based distributed algorithm that accurately rewards peers in accordance with their contribution. A FairTorrent peer simply uploads the next data block to a peer to whom it owes the most data as measured by a deficit counter. FairTorrent is resilient to exploitation by free-riders and strategic peers, is simple to implement, requires no bandwidth over-allocation, no prediction of peers ’ rates, no centralized control, and no parameter tuning. We implemented FairTorrent in a BitTorrent client without modifications to the BitTorrent protocol, and evaluated its performance against other widely-used BitTorrent clients. Our results show that FairTorrent provides up to two orders of magnitude better fairness, up to five times better download times for contributing peers, and 60 % to 100% better performance on average in live BitTorrent swarms.
Contracts: Practical Contribution Incentives for P2P Live Streaming
"... PPLive is a popular P2P video system used daily by millions of people worldwide. Achieving this level of scalability depends on users making contributions to the system, but currently, these contributions are neither verified nor rewarded. In this paper, we describe the design and implementation of ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
PPLive is a popular P2P video system used daily by millions of people worldwide. Achieving this level of scalability depends on users making contributions to the system, but currently, these contributions are neither verified nor rewarded. In this paper, we describe the design and implementation of Contracts, a new, practical approach to providing contribution incentives in P2P live streaming systems. Using measurements of tens of thousands of PPLive users, we show that widely-used bilateral incentive strategies cannot be effectively applied to the live streaming environment. Contracts adopts a different approach: rewarding globally effective contribution with improved robustness. Using a modified PPLive client, we show that Contracts both improves performance and strengthens contribution incentives. For example, in our experiments, the fraction of PPLive clients using Contracts experiencing loss-free playback is more than 4 times that of native PPLive. 1
Simplifying Distributed System Development We predict that the future is in... predicting the future.
"... Distributed systems are difficult to design and develop. The difficulties arise both in basic safety correctness properties, as well as in achieving high performance. As a result of this complexity, the implementation of a distributed system often contains the basic algorithm coupled with an embedde ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
Distributed systems are difficult to design and develop. The difficulties arise both in basic safety correctness properties, as well as in achieving high performance. As a result of this complexity, the implementation of a distributed system often contains the basic algorithm coupled with an embedded strategy for making choices, such as the choice of a node to interact with. This paper proposes a programming model for distributed systems where 1) the application explicitly exposes the choices (decisions) that it needs to make as well as the objectives that it needs to maximize; 2) the application and the runtime system cooperate to maintain a predictive model of the distributed system and its environment; and 3) the runtime uses the predictive model to resolve the choices so as to maximize the objectives. We claim that this programming model results in simpler source code and lower development effort, and that it can lead to increased performance and robustness to various deployment settings. Our initial results of applying this model to a sample application are encouraging. 1
Brief Announcement: Sustaining Collaboration in Multicast despite Rational Collusion
- In PODC
, 2011
"... This paper focuses on designing incentive mechanisms for overlay multicast systems. Existing proposals on the problem are no longer able to provide proper incentives when rational users collude or launch sybil attacks. To overcome this key limitation, we propose a novel decentralized DCast multicast ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
This paper focuses on designing incentive mechanisms for overlay multicast systems. Existing proposals on the problem are no longer able to provide proper incentives when rational users collude or launch sybil attacks. To overcome this key limitation, we propose a novel decentralized DCast multicast protocol and prove that it offers a novel concept of safety-net guarantee: A user running the protocol will always obtain at least a reasonably good utility despite the deviation of any number of rational users that potentially collude or launch sybil attacks.
DCast: Sustaining Collaboration despite Rational Collusion
, 2011
"... tutorial article, which has been submitted for publication in a journal or for consideration by the commissioning organization. The report represents the ideas of its author, and should not be taken as the official views of the School or the University. Any discussion of the content of the report sh ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
tutorial article, which has been submitted for publication in a journal or for consideration by the commissioning organization. The report represents the ideas of its author, and should not be taken as the official views of the School or the University. Any discussion of the content of the report should be sent to the author, at the address shown on the cover.
It’s on Me! The Benefit of Altruism in BAR Environments
"... Cooperation, a necessity for any peer-to-peer (P2P) cooperative service, is often achieved by rewarding good behavior now with the promise of future benefits. However, in most cases, interactions with a particular peer or the service itself eventually end, resulting in some last exchange in which de ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
Cooperation, a necessity for any peer-to-peer (P2P) cooperative service, is often achieved by rewarding good behavior now with the promise of future benefits. However, in most cases, interactions with a particular peer or the service itself eventually end, resulting in some last exchange in which departing participants have no incentive to contribute. Without cooperation in the last round, cooperation in any prior round may be unachievable. In this paper, we propose leveraging altruistic participants that simply follow the protocol as given. We show that altruism is a simple, necessary, and sufficient way to incentivize cooperation in a realistic model of a cooperative service’s last exchange, in which participants may be Byzantine, altruistic, or rational and network loss is explicitly considered. By focusing on network-level incentives in the last exchange, we believe our approach can be used as the Establishing and maintaining cooperation between peers in decentralized services spanning multiple administrative domain (MAD) is hard [16, 19]: because participants may be selfish and withhold resources unless contributing is in their best interest, these services must provide sufficient incentives
Research Statement
"... I am excited by the challenge of making distributed systems reliable and robust to failures. Distributed systems form the backbone of a variety of services that play an important part in daily life: email, e-commerce, and air traffic control are a few examples. The impact of failures of such service ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
I am excited by the challenge of making distributed systems reliable and robust to failures. Distributed systems form the backbone of a variety of services that play an important part in daily life: email, e-commerce, and air traffic control are a few examples. The impact of failures of such services ranges from the inconvenience of lost email, to the hassles of delayed flights, to financial losses and even closure of companies. It is difficult to design reliable distributed systems because individual computers and the networks connecting them can fail in a variety of ways. Each computer or network failure can lead to an unplanned behavior of individual components and the system as a whole. Can we build reliable systems without considering every possible failure scenario? My research focuses on the development of end-to-end techniques for building reliable systems that are general, practical, and theoretically sound. Specifically, general techniques cover a wide range of faults and are easy to incorporate into a variety of new and legacy systems; practical techniques impose low overheads, provide robust performance in the presence of failures, and are based on realistic and tenable system models; theoretically sound techniques provide welldefined guarantees under well-defined assumptions. I believe that all three properties are important – techniques that are not general have limited deployment potential, techniques that are not practical will not be used, and techniques that are not theoretically sound may not work as advertised. Byzantine fault tolerance
Robust Large-Scale Distributed Systems
, 2008
"... My research has focused on constructing robust large-scale distributed systems. The bulk of this work can be understood in the context of two intertwined efforts: constructing cooperative and peer-to-peer services and understanding the fundamental principles of large-scale data replication. Cooperat ..."
Abstract
- Add to MetaCart
My research has focused on constructing robust large-scale distributed systems. The bulk of this work can be understood in the context of two intertwined efforts: constructing cooperative and peer-to-peer services and understanding the fundamental principles of large-scale data replication. Cooperative and peer-to-peer services Cooperative and peer-to-peer services both seek to provide a way to scale services beyond what can be provided by even a high-end server machine. Cooperative services do this by treating a service as a parallel program and then running the program across a cluster of machines. Key challenges include rearchitecting services not only to provide good performance by balancing parallelism and locality but also to ensure good reliability and simple management. Peer-to-peer services go further and enlist machines controlled by different users to collectively provide a service to each other. In addition to the problems of cooperative services, peer-to-peer services have to cope with new issues of trust that arise when a service runs across machines spanning multiple administrative domains with limited trust or competing interests. Some highlights of this stream of work include • Serverless file systems and cooperative caching. We constructed xFS [ADN + 96] to explore an extreme point in the design space of constructing file systems as parallel programs: xFS’s goals included
Designing and Implementing Cooperative Services
"... Cooperative services are an increasingly popular way to deploy applications. In these services, computers controlled by different entities are supposed to work together to achieve a common goal, such as file-sharing [6, 12], mesh routing [2], and peer-to-peer backup [1, 7]. The resulting systems can ..."
Abstract
- Add to MetaCart
Cooperative services are an increasingly popular way to deploy applications. In these services, computers controlled by different entities are supposed to work together to achieve a common goal, such as file-sharing [6, 12], mesh routing [2], and peer-to-peer backup [1, 7]. The resulting systems can be more fault-tolerant, scalable, and less expensive than traditional client-server approaches. However, a cooperative service may never see these benefits if it does not tolerate Byzantine users who may disrupt the service or selfish ones who may try to use it without contributing their fair share. One of the key challenges in designing a cooperative service is ensuring that participants actually cooperate. Several deployed applications [6, 12] and research prototypes [7, 17] include incentives and punishments to encourage cooperation. However, selfish participants still frequently find ways to cheat. For example, in the KaZaA [12] network almost half the users falsify their contributions by using a hacked binary [13]. In BitTorrent [6], researchers have found ways to free-ride [19]. These vulnerabilities are symptoms of a deeper problem: almost no cooperative service rigorously shows that its incentives and punishments are sufficient to induce cooperation. In my research, I aim to build cooperative systems that tolerate the actions of Byzantine users while removing incentives for selfish users to cheat. In this adversarial environment, constructing systems that work well and are robust requires me to step back and forth between practice and theory, something that distinguishes my research from that of many others who design these systems. I believe that pursuing the practice-theory cycle—letting practice guide theory and vice versa—is necessary in building robust and practical systems. This approach requires me to be persistent, resourceful, and creative. Drawing upon these traits and my training so far, I plan to i) develop the theoretical framework necessary to reason about selfish and Byzantine behaviors in cooperative services, ii) design efficient and scalable mechanisms in this framework to address practical issues in building real services, and iii) implement large-scale prototypes that are competitive with if not better than existing less robust works. 1 Current
Discouraging Selfishness in Lossy Peer-to-Peer Networks
, 2009
"... We present Loss-Tolerant Selfishness Monitor (LTSM), a generic service for detecting selfish behavior in various P2P applications, such as MANET routing and multicast. Unlike most previous selfishness-resistant protocols, LTSM can be used in networks subject to message loss, where selfish behavior d ..."
Abstract
- Add to MetaCart
We present Loss-Tolerant Selfishness Monitor (LTSM), a generic service for detecting selfish behavior in various P2P applications, such as MANET routing and multicast. Unlike most previous selfishness-resistant protocols, LTSM can be used in networks subject to message loss, where selfish behavior detection is particularly challenging. One of our main contributions is mathematically analyzing the impact of various system parameters on the incentives for cooperation, and showing how to choose these parameters so as to ensure full cooperation at a minimal cost. We illustrate the applicability of LTSM in two exemplar contexts: multicast and MANET routing. 1

