Cloudfarm – Peer-to-peer based storage for Web applications
Recent years have seen an increasing interest in the construction of Web-based applications, both with respect to the appropriate programming models, and to the required infrastructure to support them. A new paradigm dubbed AJAX, for Asynchronous JavaScript And XML, has emerged as a way to combine existing building blocks into interactive Web applications that can directly compete with their desktop counterparts. However, deploying and supporting these applications is currently quite challenging. Significant investments are required of the application provider, especially in storage infrastructure, since all application data has to be persistently stored and backed up at the provider’s data centers. We believe that peer-to-peer protocols offer a unique solution to this problem thanks to their scalability and robustness properties. We thus propose to push the storage responsibilities of the server farm into the “cloud” of clients, by employing an unstructured peer-to-peer protocol to delegate Web applications’ storage to end-user machines, in addition to provider infrastructure. To that end, we are currently designing and implementing the Cloudfarm architecture as a viable alternative to maintaining costly data centers for storage.
Collaborators
Emre Kıcıman, Microsoft Research Redmond
Eddie Kohler, UCLA Computer Science
Hauberk† – Robustness and sharing Incentives in the BitTorrent peer-to-peer protocol
Peer-to-peer protocols are a promising technology for building scalable Internet applications. Such protocols can be broadly divided into two types, structured and unstructured, based on how individual nodes make data placement decisions. Structured protocols are well studied and have been used to construct systems that solve challenging problems. On the other hand, many popular real-world applications, such as BitTorrent and Skype are built on unstructured protocols. BitTorrent in particular utilizes a centralized control server, called tracker, to ease node bootstrapping, and has been shown to be very effective in Internet content distribution. Yet, BitTorrent’s key parameters are typically set based on heuristics or intuition-based engineering choices. The goal of this project is to systematically investigate BitTorrent's built-in incentives mechanism and its robustness against free-riding peers. Our focus is on the choking algorithm that guides the selection of peers to download data from. In order to overcome limitations of previous studies, we conducted BitTorrent measurements in a controlled environment, running real experiments on the PlanetLab infrastructure. We also studied the impact of selfish, free-riding BitTorrent clients, who abuse protocol mechanisms to maximize their download throughput while minimizing their own contributions to the system. We identified three exploits that can deliver potential benefits to a selfish peer and may negatively impact the download rates of compliant nodes. We observed that the protocol is quite robust against such peers, preventing them from degrading the quality of service for compliant nodes, and we discussed the underlying design principles that enable this robust behavior.
† if you are curious what the project name stands for, see here.
Collaborators
Eddie Kohler, UCLA Computer Science
Arnaud Legout, INRIA Sophia Antipolis, France
Robert Nelson, formerly at UCLA Computer Science, now at Google Santa Monica
Lixia Zhang, UCLA Computer Science
Publications
Arnaud Legout, Nikitas Liogkas, Eddie Kohler, and Lixia Zhang. Clustering and Sharing
Incentives in BitTorrent Systems. To appear at SIGMETRICS’07, San Diego, CA, June 2007 (©ACM, 2007. This is the author’s version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in Proc. of ACM SIGMETRICS’07, June 12–16, 2007, San Diego, California, USA).
Nikitas Liogkas, Robert Nelson, Eddie Kohler, and Lixia Zhang. Exploring the Robustness of
BitTorrent Peer-to-Peer Content Distribution Systems. To appear in Wiley’s Concurrency
and Computation: Practice and Experience, 2007. DOI: 10.1002/cpe.1187.
Arnaud Legout, Nikitas Liogkas, Eddie Kohler, and Lixia Zhang. Clustering and Sharing Incentives in BitTorrent Systems. INRIA Technical Report 00112066, November 2006.
Nikitas Liogkas, Robert Nelson, Eddie Kohler, and Lixia Zhang. Exploiting BitTorrent For Fun (But Not Profit). In Proc. of the 5th International Workshop on Peer-to-Peer Systems (IPTPS'06), Santa Barbara, CA, February 2006. (talk slides)
Posters
Can selfish peers really hurt P2P systems? Presented on May 8, 2006, at NSDI 2006.
Exploiting BitTorrent For Fun (But Not Profit). Presented on May 5, 2006, at UCLA's 2006 Engineering Research Review.
Talks
June 2, 2006: Gave an invited talk on our work on BitTorrent's robustness at the Introduction to Network Research seminar at UCI's Computer Science department. The slides are available here.
May 11, 2006: Gave a talk on BitTorrent's core mechanisms at the Advanced Internet Research graduate class at UCLA's Computer Science department. The slides are available here.
April 13, 2006: Gave a talk on BitTorrent's core mechanisms at the Peer-to-Peer Systems graduate class at UCLA's Computer Science department. The slides are available here.
WebProfiler - Collaborative Web Browsing Failure Diagnosis
The NetProfiler project at Microsoft Research aims to leverage end hosts, such as desktops, laptops, and home PCs, to monitor the health of the network and diagnose problems. The goal is both to provide end users with insight into the nature of network problems that they encounter, and to provide network operators such as consumer ISPs and enterprise IT departments visibility into the end-user experience. During my Microsoft summer internship I worked on the WebProfiler component of the project, which aims to detect and diagnose failures experienced during Web browsing. The system operates by using software sensors to passively monitor existing communication at a distributed set of end hosts, and share these observations securely with peers to identify and alert users about network problems. A theme that underlies much of this work is minimal or no dependence on special support from the network infrastructure. Thus the proposed solution is amenable to easy deployment by end users, just like any other peer-to-peer application, without the need to involve network administrators.
Collaborators
Sharad Agarwal, Microsoft Research Redmond
Venkata N. Padmanabhan, Microsoft Research Redmond, soon moving to Microsoft Research India
Kimura – Augmented office environment using peripheral displays
This Georgia Tech project seeks to explore and evaluate the addition of visual peripheral displays to human-computer interfaces. Often discussed in the context of ubiquitous computing and augmented environments, these displays are envisioned as a natural extension to traditional computing in a work setting. This project aims to leverage projected displays as peripheral interfaces that complement existing focal work areas, and support the natural flow of work across these two settings. While at Georgia Tech, I worked on an interface for individual office workers that utilizes projected displays to extend their virtual workspace past the confines of their desktop monitors. This system, Kimura, uses the peripheral displays to assist users in managing multiple "working contexts"– coherent sets of tasks typically involving the use of multiple documents, tools, and communications with others. These working contexts are visualized on the peripheral displays as a montage of images garnered from desktop computer activity logs, and help remind the user of past actions. I investigated different architecture alternatives for this system, and re-designed a large part of it to make it easily-distributable with J-Orchestra, an automatic partitioning tool for Java. Finally, I experimentally compared the different versions with respect to code complexity and performance.
Collaborators
Blair MacIntyre, Georgia Tech
Yannis Smaragdakis, formerly at Georgia Tech, now at
the University of
Oregon
Eli Tilevich, formerly at Georgia Tech, now at Virginia Tech
Publications
Nikitas Liogkas, Blair MacIntyre, Elizabeth D. Mynatt, Yannis Smaragdakis, Eli Tilevich, and Steven Voida. Automatic Partitioning for Prototyping Ubiquitous Computing Applications. In IEEE Pervasive Computing, July-September 2004, pp. 40-47.
GAMMA – Continuous evolution of software after deployment
This Georgia Tech project proposes a new approach to improve software quality through continuous monitoring, analysis, and improvment of software systems after their deployment. The motivation for the project is a fundamental shift in the computing world, namely interconnection. We have moved from a situation characterized by a few software systems running on mostly disconnected computers to a situation in which software is virtually everywhere, runs on mostly-connected computers, and thus there is a large number of resources available to single users. Thank to this shift we now have the opportunity of leveraging field data and resources to improve the way that we perform software engineering tasks. Up to now, many such tasks were limited by the fact they were being performed in-house, on developer platforms, and using developer-provided inputs that may not be representative of the way the software is actually used in the field. To overcome these limitations, we aim to use field data and resources to augment software engineering tasks. I worked on instrumenting applications on the HP iPAQ handheld device running Familiar Linux and the Opie graphical user environment. I developed an automated framework for receiving error reports and visualizing them.
Collaborators
Alex Orso, Georgia Tech
Other Projects
Better Browser Support for Revisiting Web Pages
I recently became interested in Mozilla Firefox and its impressive extensibility framework. I have designed and implemented several extensions for Firefox, but my flagship one is Autocomplete Manager, an extension that augments the address Autocomplete component, providing advanced features, such as matching against bookmarks and page titles and customizing the sorting criteria of entries on the suggestion popup.
Teaching Programming to Gifted Pre-College Students
During the summers of 2004 and 2005 I was an instructor at Johns Hopkins' CTY summer program for gifted pre-college students. I taught the Introduction to Programming course both times, with invaluable assistance from my dedicated teaching assistants, Nunzio Thron and Stephen Pfetsch. After the course was over, Steve and I wrote up a paper describing our experiences teaching computer programming concepts to such a special group of children, which we have submitted to a journal on gifted education.
Nikitas Liogkas, and Stephen Pfetsch. “Teaching Computer Programming to Talented Pre-College Students”. Under submission.
Raw Materials for Scheduling in Component Systems
At the beginning of my Ph.D. I worked on developing adaptive techniques for scheduling tasks in a component-based software system.
In particular, I designed and implemented such mechanisms in C++ for Click, a modular software router.
VRML 3D Scene Authoring
During my senior year at Aristotle University, I worked on designing and implementing a utility for authoring three-dimensional scenes comprised of VRML models. VRML Author is a visual tool that allows a user to load up VRML models in a 3D scene, manipulate (translate, rotate, scale) them at will, and save the result again in VRML format. We also published a paper describing the system, available below.
Nikitas V. Liogas, Dimitrios Tzovaras and M.G. Strintzis. VRML 2.0 Authoring Tool Using SGI's COSMO 3D. In Proc. of the International Workshop on Synthetic-Natural Hybrid Coding and Three Dimensional Imaging, Santorini, Greece, September 1999.
