DECADE L. Chen Internet-Draft H. Liu Intended status: Informational Yale University Expires: October 31, 2011 April 29, 2011 Leveraging In-network Storage in P2P LiveStreaming draft-ietf-decade-integration-example-00 Abstract DECADE is an in-network storage infrastructure which is under discussions and constructions. It can be integrated into Peer-to- Peer (P2P) applications to achieve more efficient content distributions. This document represents a detailed example of how to integrate DECADE into P2P live streaming (a popular P2P application). Specifically, it describes mainly about: 1) a preliminary DECADE client API; 2) a P2P live streaming integration with DECADE; 3) a testing on our DECADE integrarion and 4) an application performance analysis from the test. Status of this Memo This Internet-Draft is submitted to IETF in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on October 31, 2011. Copyright Notice Copyright (c) 2011 IETF Trust and the persons identified as the document authors. All rights reserved. Chen & Liu Expires October 31, 2011 [Page 1] Internet-Draft Leveraging In-network Storage in P2PLS April 2011 This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1. DECADE Server . . . . . . . . . . . . . . . . . . . . . . 3 2.2. DECADE Module . . . . . . . . . . . . . . . . . . . . . . 3 2.3. P2P LiveStreaming Client (P2PLS Client) . . . . . . . . . 4 2.4. DECADE Client . . . . . . . . . . . . . . . . . . . . . . 4 3. DECADE Client API . . . . . . . . . . . . . . . . . . . . . . 4 4. DECADE Integration of P2P LiveStreaming Client . . . . . . . . 5 4.1. DECADE Integration Architecture . . . . . . . . . . . . . 5 4.1.1. Data Access . . . . . . . . . . . . . . . . . . . . . 5 4.1.2. Message Control . . . . . . . . . . . . . . . . . . . 6 4.2. Challenges in DECADE Integration . . . . . . . . . . . . . 6 4.2.1. Limited Connection Slot . . . . . . . . . . . . . . . 6 4.2.2. Additional Control Latency . . . . . . . . . . . . . . 7 5. Test Environment and Settings . . . . . . . . . . . . . . . . 7 5.1. Test Settings . . . . . . . . . . . . . . . . . . . . . . 8 5.2. Platforms and Components . . . . . . . . . . . . . . . . . 8 5.2.1. EC2 DECADE Server . . . . . . . . . . . . . . . . . . 9 5.2.2. PlanetLab P2P Live Streaming Client . . . . . . . . . 9 5.2.3. Tracker . . . . . . . . . . . . . . . . . . . . . . . 9 5.2.4. Source Server . . . . . . . . . . . . . . . . . . . . 9 5.2.5. Test Controller . . . . . . . . . . . . . . . . . . . 9 6. Performance Analysis . . . . . . . . . . . . . . . . . . . . . 9 6.1. Performance Metrics . . . . . . . . . . . . . . . . . . . 9 6.2. Result and Analysis . . . . . . . . . . . . . . . . . . . 10 7. Security Considerations . . . . . . . . . . . . . . . . . . . 10 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 9. Normative References . . . . . . . . . . . . . . . . . . . . . 10 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 11 Chen & Liu Expires October 31, 2011 [Page 2] Internet-Draft Leveraging In-network Storage in P2PLS April 2011 1. Introduction DECADE is an in-network storage infrastructure under discussions and constructions. It can be integrated into Peer-to-Peer (P2P) applications to achieve more efficient content distributions. This draft introduces an instance of application integration with DECADE. In our example system, the core component includes DECADE servers and DECADE-enabled P2P live streaming clients. A DECADE server provides data storage and transport service with interactive control to DECADE clients. We extended a P2P live streaming application, P2PLS (P2P LiveStreaming), to leverage DECADE service provided by the servers. P2PLS clients are DECADE-enabled. For our implementation, we used a preliminary API (Application Programming Interface) set, which is supposed to be provided by DECADE, to enable P2PLS clients to use DECADE in their data transmission. In this draft, we introduce the design of the DECADE-P2PLS integration system, the main control flow for DECADE-enabled data transmission, and the testing performance with this system. Please note that P2PLS in this draft only represents the usage case of "live streaming" out of a large number of P2P applications, while DECADE itself can support other applications. The API set used in this system is an experimental design and implementation. It is not a standard and is still under development. Currently, DECADE in this draft is only a preliminary framework of in-network storage for P2P. It is designed to test the pros and cons of in-network storage utilized by P2P applications rather than to reach a final solution. 2. Concepts 2.1. DECADE Server A DECADE server is implemented with DECADE protocols, management mechanism, and storage strategies. It is a core element to provide DECADE service. Each DECADE server manages a number of Data Lockers, each of which is a virtual account and corresponds to private storage space for clients. 2.2. DECADE Module DECADE module is a functional component for application clients to utilize DECADE. This component serves as an application-specific interface between a particular application and DECADE servers. It can be a simple implementation of basic DECADE access APIs, or a more intelligent integration, e.g. consider application-specific control strategies when using DECADE APIs. Chen & Liu Expires October 31, 2011 [Page 3] Internet-Draft Leveraging In-network Storage in P2PLS April 2011 2.3. P2P LiveStreaming Client (P2PLS Client) P2P LiveStreaming Client (P2PLS Client) is our self-maintained version of a native P2P live streaming application. It is one example out of a large number of P2P applications. 2.4. DECADE Client DECADE client is an integration of a native P2PLS Client and a DECADE module. It is not required to embed DECADE module into native P2P clients, since it can also be an independent component running at a remote server. 3. DECADE Client API In order to simplify the DECADE integration with P2P clients, we provide an API set which covers the communications with DECADE servers and token-generation. On top of this API, a P2P client can develop its own application-specific control and data distribution policies. There are five basic interfaces: o Get_Object: to get an object from a DECADE server with an authorized token. The get operation can be classified into two categories: Local Get and Remote Get. Local Get is to get an object from a local DECADE server. Remote Get is to use a client's local DECADE server to indirectly get an object from a remote DECADE server. The object will be firstly passed to the local DECADE server, then returned to the application client o Put_Object: to store an object into a DECADE server with an authorized token. A client can either store an object into its local DECADE server or into other clients' DECADE servers, if it has an authorized token. Both of the operations are direct, for we don't provide indirectly storing (i.e. remote put). o Delete_Object: to delete an object in a DECADE server explicitly with an authorized token. Note that an object can also be deleted implicitly by setting an expired time or a specific TTL. o Status_Query: to query current status of an application itself, including listing stored objects, resource usage, etc.. Such information is private. o Generate_Token: to generate an authorized token. The token can be used to access an application client's local DECADE server, or Chen & Liu Expires October 31, 2011 [Page 4] Internet-Draft Leveraging In-network Storage in P2PLS April 2011 passed to other clients to allow them to access the client's local DECADE server. 4. DECADE Integration of P2P LiveStreaming Client We integrate a DECADE module into a P2P live streaming application-- P2PLS, in order that clients of this application can easily leverage DECADE in their data distributions. 4.1. DECADE Integration Architecture The architecture of the P2PLS application and DECADE integration is shown in Figure 1: +---------------+ +---------------+ | DECADE | | DECADE | | Peer | | Peer | |+-------------+| +---------------+ |+-------------+| ||DECADE Module||---| DECADE Server |---||DECADE Module|| |+------^------+| +---------------+ |+------^------+| | API | | | API | | |+------v------+| +---------------+ |+------v------+| ||Native Client||---| Tracker |---||Native Client|| |+-------------+| +---------------+ |+-------------+| +---------------+ +---------------+ Figure 1 A DECADE-integrated P2PLS client uses DECADE client to communicate with its DECADE server and transmit data between itself and its DECADE server. It is compatible with its original P2P protocol, while it also uses a DECADE protocol to exchange DECADE related messages with other peers. 4.1.1. Data Access DECADE module is called whenever a client wants to get data objects from (or put data objects into) its DECADE server. Each data object transferred between a client and its DECADE server should go through DECADE module. Neither the DECADE server and the original client knows each other. A data object is a data transfer unit between DECADE servers and application clients. Its size can be application- customized, according to variable requirements of performance or sensitive factors (e.g. low latency, high bandwidth utilization). Chen & Liu Expires October 31, 2011 [Page 5] Internet-Draft Leveraging In-network Storage in P2PLS April 2011 4.1.2. Message Control Control and data plane decoupling is a design principle of DECADE. Control messages are propagated in an original P2P way. DECADE only introduces an additional control message between DECADE module which carries DECADE authorized token. By exchanging DECADE authorized tokens, P2P live streaming clients can retrieve or store data objects into or from others' DECADE servers. 4.2. Challenges in DECADE Integration One essential objective of DECADE integration is to improve (or at least not to hurt) the application performance. However, as a brand new architecture, DECADE has some inherit challenges which will potentially be harmful to application performance. In our P2P live streaming case, we met mainly two such limitations of DECADE: 4.2.1. Limited Connection Slot Limited Connection Slot: In native P2P systems, a peer can establish tens or hunderds of concurrent connections with other peers. However, this situation can hardly be ture when the application is integrated with DECADE, because it is too expensive for a DECADE server to maintain so many connections for each peer. Typically, each DECADE peer only have m connection slots, which means it can only at most have m active connections with its DECADE server simultaneously. A potential "side effect" of limited connection slot is that the content availability and downloading rate might be impacted negatively by fewwer connections carrying data traffic. This requests us to adjust the peer's behavior in resource allocation, downloading/uploading scheduling, etc. to fully utilize the connection slots to archieve a satisfying and robust data downloading. In our integration, we mainly employed two technical strategies: o Batch Request: In order to fully utilize the connection bandwidth of a DECADE server and reduce overhead, a P2PLS client may combine multiple requests in a single request to DECADE server. Note that for the sake of improving data transfer efficiency in P2P live streaming, we may combine multiple data requests into a batch request. Generally, a batch may consist of different kinds of access requests. o Larger Data Object Size: In typical P2P live streaming application, the size of a data block is relatively small, considering to reduce end-to-end transport latency. However, existing data size may incur large control overhead and low Chen & Liu Expires October 31, 2011 [Page 6] Internet-Draft Leveraging In-network Storage in P2PLS April 2011 transport utilization. A larger data object size may be needed to utilize DECADE more efficiently. 4.2.2. Additional Control Latency Addtional Control Latency: In native P2P systems, when an uploader decides to reply a request for a piece, it sends the piece out directly. Nevertheless, in DECADE-aware P2P systems, the uploader typically only replies with a token of the piece. And then the downloader will leverage this token to fetch the piece from the uploader's DECADE server. This process obviously introduces additional control latency compared with native P2P systems. It is even more serious in latency sensitive applications such as P2P live streaming. We need to consider how to reduce such additional delay or how to compensate the lose with other inherit advantages of DECADE. In our integration, we addressed this challenge by multiplexing pieces into one token: o Range Token: One way to reduce request latency is to use range token. A P2PLS client may piggyback a range token when it propagates its bitmap to its neighbors, to indicate that all available pieces in the bitmap are accassable by this range token. Then instead of requesting specific pieces from this client and waiting for response, the neighbors can directly use this range token to access data in DECADE servers. Note that this method not only reduce request latency, but also reduce message overhead. With these adjustments and strategies (it is not necessary to use "Batch Request" and "Larger Object Size" both), DECADE clients' performance was not impacted by the liminations of DECADE and was even better than native clients' as we will see in following sections. 5. Test Environment and Settings In order to demonstrate the performance of our DECADE implementation and DECADE-integrated P2P live streaming application, we conduct some experimental tests in Amazon EC2 and PlanetLab. We perform a pair of comparative experiments: DECADE integrated P2P live streaming v.s. native P2P live streaming, in the same environment using the same settings. Chen & Liu Expires October 31, 2011 [Page 7] Internet-Draft Leveraging In-network Storage in P2PLS April 2011 5.1. Test Settings Our tests ran on a wide-spread area and diverse platforms, including a famous commercial cloud platform, Amazon EC2 and a well-known test bed, PlanetLab. The environment settings are as following: o EC2 Regions: we setup DECADE servers in Amazon EC2 cloud, including all four regions around the world, US east, US west, Europe and Asia. o PlanetLab: we run our P2P live streaming clients (both DECADE integrated and native clients) on PlanetLab of a wild-spread area. o Arrival pattern: we made all the clients join into the system within a short duration to simulate a flash crowd scenario. o Total Bandwidth: for a fair comparison, we set the system's total supply bandwidth to be exact the same in both test. 5.2. Platforms and Components In the tests, we have different functional components running in different platforms, including DECADE servers, P2P live streaming clients(DECADE integrated or Native), Tracker, Source server and Test Controller, as shown in Figure 2. +----------+ +------------+ +------------+ | P2PLS | /| DECADE |----| DECADE | | Manager | / | Server | | Server | +--------^\+ / +-----|------+ +------|-----+ EC2 ___________\/_________|__________________|_______ /\ | | +---------/+ \ +-----|------+ +------|-----+ | P2PLS ^ \ | P2PLS ^ ^ P2PLS | | Source |\ \| Client |\ /| Client | +-----|----+ \ \------^-----+ \/ +------^-----+ PlanetLab ______|_______\__\_____|_______/\________|_______ | \ \ | / \ | +-----|----+ v--v---v-----v v------v-----+ | Streaming| | P2PLS | | Test | | Files | | Tracker | | Controller | +----------+ +------------+ +------------+ Yale Lab P2PLS represents to P2P Live Streaming. Figure 2 Chen & Liu Expires October 31, 2011 [Page 8] Internet-Draft Leveraging In-network Storage in P2PLS April 2011 5.2.1. EC2 DECADE Server DECADE Servers ran on Amazon EC2 small instances, with bandwidth constraint. 5.2.2. PlanetLab P2P Live Streaming Client Both DECADE integrated and Native P2P live streaming clients ran on PlanetLab which spreads in various locations around the world. The DECADE integrated P2P live streaming clients connect to the closest DECADE server according to its Geo-location distance to the servers. DECADE integrated P2P live streaming clients use their DECADE servers to upload to neighbors, instead of their own "last-mile" bandwidth. 5.2.3. Tracker A native P2P live streaming tracker ran at Yale's laboratory and served both DECADE integrated clients and native clients during the test. 5.2.4. Source Server A native P2P live streaming source server ran at Yale's laboratory and serve both DECADE integrated clients and native clients during the test. The capacity of source is equivalently constrain for both cases. 5.2.5. Test Controller Test Controller is a manager to control all machines' behaviors in both EC2 and PlanetLab during the test. 6. Performance Analysis During the test, DECADE integrated P2P live streaming clients achieved an impressively better performance than native clients. 6.1. Performance Metrics To measure the performance of a P2P live streaming client, we employ mainly four metrics: o Startup Delay: the duration from a peer joins the channel to the moment it starts to play. o Piece Missed Rate: the number of pieces a peer loses when playing over the total number of pieces. Chen & Liu Expires October 31, 2011 [Page 9] Internet-Draft Leveraging In-network Storage in P2PLS April 2011 o Freeze Times: the number of times a peer re-buffers during playing. o Average Peer Uploading Rate: Average uploading bandwidth of a peer. 6.2. Result and Analysis o Startup Delay: In the test, DECADE integrated P2P live streaming clients startup around 35~40 seconds. some of them startup at about 10 seconds. Native P2P live streaming clients startup around 110~120 seconds. less than 20% of them startup within 100 seconds. o Piece Missed Rate: In the test, both DECADE integrated P2P live streaming clients and native P2P live streaming clients achieved a good performance in pieces missed rate. Only about 0.02% of total pieces missed in both cases. o Freeze Times: In the test, native P2P live streaming clients suffered from more freezing than DECADE Integrated P2P live streaming clients by 40%. o Average Peer Uploading Rate: In the test, according to our settings, DECADE integrated P2P live streaming clients had no upload in their "last-mile" access network. While in the native P2P live streaming system, more than 70% of peers uploaded in a rate that is much more than streaming rate. In another word, DECADE can shift uploading traffic from clients' "last-mile" to in-network devices, which saves a lot of expensive bandwidth on access links.. 7. Security Considerations This document does not contain any security considerations. 8. IANA Considerations This document does not have any IANA considerations. 9. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. Chen & Liu Expires October 31, 2011 [Page 10] Internet-Draft Leveraging In-network Storage in P2PLS April 2011 Authors' Addresses Lijiang Chen Yale University Email: lijiang.chen@yale.edu Hongqiang Liu Yale University Email: hongqiang.liu@yale.edu Chen & Liu Expires October 31, 2011 [Page 11]