Cloudfarm – Peer-to-peer storage for Web applications
In recent years we have seen an increasing interest in the construction of Web applications, with respect to both programming models and the supporting infrastructure. 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 in storage infrastructure are required of the application provider, since all application data has to be persistently stored and backed up at the provider’s data centers. We argue that peer-to-peer systems offer a unique alternative thanks to their scalability and robustness properties. We propose to push the storage responsibilities of the server farm into the “cloud” of clients, by employing an peer-to-peer system to delegate Web applications’ storage needs to end-user machines, in addition to provider infrastructure. To that end, I led the design and implementation of the Cloudfarm architecture and have shown its feasibility via controlled experiments on the PlanetLab testbed.
Collaborators
- Eddie Kohler, UCLA
- Emre Kıcıman, Microsoft Research Redmond
Publications
- Nikitas Liogkas. Peer-to-Peer Storage for Web Applications. In preparation.
- Nikitas Liogkas. Contribution Incentives for Hybrid Peer-to-Peer Systems. Ph.D. dissertation, University of California - Los Angeles, June 2008.
Hauberk† – Robustness and sharing incentives in the BitTorrent protocol
Peer-to-peer protocols are a promising technology for building scalable Internet applications. The BitTorrent protocol, in particular, has been shown to be very effective in Internet content distribution. Yet, BitTorrent’s key parameters are typically set based on heuristics or are intuition-based engineering choices. The goal of this project was to systematically investigate BitTorrent's built-in incentives and its robustness against malicious and free-riding peers. We conducted extensive measurements with diverse BitTorrent implementations in a controlled environment, running real experiments on the PlanetLab infrastructure. We also studied the impact of selfish BitTorrent clients, who abuse protocol mechanisms to maximize their download throughput while minimizing their own contributions to the system. 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. Our results are arguably applicable to a wider range of distributed software systems.
† see here if you are wondering what the project name stands for
Collaborators
- Arnaud Legout, INRIA Sophia Antipolis, France
- Rafit Izhak-Ratzin, UCLA
- Eddie Kohler, UCLA
- Michael Sirivianos, formerly at UCI, now at Duke University
- Paweł Marciniak, formerly at Poznan University of Technology, now at Microsoft Vancouver
- Robert Nelson, formerly at UCLA, now at Google Santa Monica
- Lixia Zhang, UCLA
Publications
- Anwar Al Hamra, Chadi Barakat, Arnaud Legout, and Nikitas Liogkas. Swarm Overlay Construction Strategies. In preparation.
- Rafit Izhak-Ratzin, Nikitas Liogkas, and Rupak Majumdar. Team Incentives in BitTorrent Systems. UCLA Technical Report 09-0002.
- Paweł Marciniak, Nikitas Liogkas, Arnaud Legout, and Eddie Kohler. Small Is Not Always Beautiful. In IPTPS’08.
- Paweł Marciniak, Nikitas Liogkas, Arnaud Legout, and Eddie Kohler. Small Is Not Always Beautiful. INRIA Technical Report 00246564.
- Nikitas Liogkas, Robert Nelson, Eddie Kohler, and Lixia Zhang. Exploring the robustness of BitTorrent peer-to-peer content distribution systems. In Wiley’s Concurrency and Computation: Practice and Experience 20(2).
- Arnaud Legout, Nikitas Liogkas, Eddie Kohler, and Lixia Zhang. Clustering and Sharing Incentives in BitTorrent Systems. In SIGMETRICS’07 (©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).
- Arnaud Legout, Nikitas Liogkas, Eddie Kohler, and Lixia Zhang. Clustering and Sharing Incentives in BitTorrent Systems. INRIA Technical Report 00112066.
- Nikitas Liogkas, Robert Nelson, Eddie Kohler, and Lixia Zhang. Exploiting BitTorrent For Fun (But Not Profit). In IPTPS'06 (talk slides).
Posters
- Can selfish peers really hurt P2P systems? Presented at NSDI 2006.
- Exploiting BitTorrent For Fun (But Not Profit). Presented at UCLA's 2006 Engineering Research Review.
Talks
- June 19, 2008: Gave an invited talk on my work with BitTorrent and Cloudfarm at RESCOM 2008, in Saint Jean Cap Ferrat, France (talk slides).
- June 2, 2006: Gave an invited talk on BitTorrent's robustness at the Introduction to Network Research seminar at UCI's Computer Science department (talk slides).
- May 11, 2006: Gave a talk on BitTorrent's core mechanisms at UCLA's Advanced Internet Research graduate class (talk slides).
- April 13, 2006: Gave a talk on BitTorrent's core mechanisms at UCLA's Peer-to-Peer Systems graduate class (talk slides) .
WebProfiler - Cooperative Diagnosis of Web Browsing Failures
The NetProfiler project at Microsoft Research aims to leverage end hosts, such as desktops and laptops PCs, to monitor the health of a network and assist in diagnosing failures. The goal is to provide end users with insight into the nature of network problems they encounter, and to provide network operators, such as consumer ISPs and enterprise IT departments, visibility into the end-user experience. During my Microsoft internship in the summer of 2006, I led the design and implementation of the WebProfiler component of the project, which aims to detect and diagnose failures experienced during Web browsing. It advocates a client-based cooperative approach for diagnosing Web browsing failures. To that end, we pooled together observations on the success or failure of Web accesses from multiple clients, which were then fed into a blame attribution algorithm. Our evaluation on a controlled testbed showed that WebProfiler can accurately diagnose 3.6 times more failures than possible from a single client's perspective. The practical aspects of the project involved buiding an add-on for Internet Explorer to produce observations at client machines, and authoring a centralized software component, communicating with a database, to store and analyze the collected observations.
Publications
-
Sharad Agarwal, Nikitas Liogkas, Prashanth Mohan, and Venkata N. Padmanabhan. WebProfiler: cooperative diagnosis of Web failures. Microsoft Research Technical Report MSR-TR-2008-45.
Collaborators
- Sharad Agarwal, Microsoft Research Redmond
- Venkata N. Padmanabhan, Microsoft Research Redmond, now at Microsoft Research India
Kimura – Augmented office environment using peripheral displays
This 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. The resulting 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 contexts are visualized on the displays as a montage of images garnered from computer activity logs, and help remind the user of past actions. My involvement in the project wason the software engineering side. It included the investigation of different architecture alternatives for the system, and its refactoring to make it automatically distributable using J-Orchestra, a system for automatically partitioning and distributing existing Java programs. I also conducted extensive experiments to compare the different versions of the system with respect to code complexity and performance.
Collaborators
- Eli Tilevich, formerly at Georgia Tech, now at Virginia Tech
- Blair MacIntyre, Georgia Tech
- Yannis Smaragdakis, formerly at Georgia Tech, now at the University of Massachusetts, Amherst
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 3(3).
GAMMA – Continuous evolution of software after deployment
This project proposes a new approach to improve software quality through continuous monitoring, analysis, and improvement of software systems after their deployment. The underlying motivation 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 and runs on mostly-connected computers. Thank to this shift we now have the opportunity to leverage field data and resources in an effort to improve the way certain software engineering tasks are performed. Many such tasks had been limited by the fact they were being performed in-house, on developer platforms only, 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, this project aims to use field data and resources to augment testing and debugging tasks. In particular, I worked on instrumenting applications on the HP iPAQ handheld device running Familiar Linux and the Opie graphical user environment. I authored an automated framework for receiving error reports from the field and visualizing them to assist developers in debugging.
Collaborators
- Alex Orso, Georgia Tech
Other Projects
Better Browser Support for Revisiting Web Pages
Around 2006 I became interested in Mozilla Firefox and its impressive extensibility framework. Since then, I have designed and implemented several extensions for Firefox, but my flagship one is Autocomplete Manager, which provides advanced features for the address Autocomplete component, such as customizing the sorting criterion and appearance of the suggestion popup. The main motivation is to improve the manner users can locate previously visited pages of interest. The extension has proven to be quite popular, with more than 160,000 downloads on the official Mozilla add-ons site so far. I am now in the process of releasing the extension as an open source project accepting contributions from whoever is interested in participating.
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 help from my dedicated teaching assistants, Nunzio Thron and Stephen Pfetsch. We are now writing up a paper describing our experiences teaching computer programming concepts to such a special group of children, which we intend to submit to a journal on gifted education.
- Nikitas Liogkas, and Stephen Pfetsch. Teaching Computer Programming to Talented Pre-College Students. In preparation.
Scheduling Mechanisms in Component Systems
During the first years of my Ph.D. I worked on
developing adaptive techniques for scheduling tasks in a component software system. In particular, I designed and implemented such mechanisms in C++ at the Linux kernel level for Click, a modular software router. I have since transitioned to working on more application-level systems, but working in the kernel sure presents some unique challenges.
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. The resulting system, VRML Author, 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. The system is described in the following paper, as well as in my diploma thesis (in Greek).
- Nikitas V. Liogas, Dimitrios Tzovaras and M.G. Strintzis. VRML 2.0 Authoring Tool Using SGI's COSMO 3D. In International Workshop on Synthetic-Natural Hybrid Coding and Three Dimensional Imaging'99.
