16 Pages

File-Sharing

Course: CS 501, Fall 2009
School: Allan Hancock College
Rating:
 
 
 
 
 

Word Count: 13954

Document Preview

Modeling, Measurement, and Analysis of a Peer-to-Peer File-Sharing Workload Krishna P. Gummadi, Richard J. Dunn, Stefan Saroiu, Steven D. Gribble, Henry M. Levy, and John Zahorjan Department of Computer Science and Engineering University of Washington Seattle, WA 98195 {gummadi,rdunn,tzoompy,gribble,levy,zahorjan}@cs.washington.edu ABSTRACT Peer-to-peer (P2P) file sharing accounts for an astonishing volume of...

Register Now

Unformatted Document Excerpt

Coursehero >> California >> Allan Hancock College >> CS 501

Course Hero has millions of student submitted documents similar to the one
below including study guides, practice problems, reference materials, practice exams, textbook help and tutor support.

Course Hero has millions of student submitted documents similar to the one below including study guides, practice problems, reference materials, practice exams, textbook help and tutor support.
Modeling, Measurement, and Analysis of a Peer-to-Peer File-Sharing Workload Krishna P. Gummadi, Richard J. Dunn, Stefan Saroiu, Steven D. Gribble, Henry M. Levy, and John Zahorjan Department of Computer Science and Engineering University of Washington Seattle, WA 98195 {gummadi,rdunn,tzoompy,gribble,levy,zahorjan}@cs.washington.edu ABSTRACT Peer-to-peer (P2P) file sharing accounts for an astonishing volume of current Internet traffic. This paper probes deeply into modern P2P file sharing systems and the forces that drive them. By doing so, we seek to increase our understanding of P2P file sharing workloads and their implications for future multimedia workloads. Our research uses a three-tiered approach. First, we analyze a 200-day trace of over 20 terabytes of Kazaa P2P traffic collected at the University of Washington. Second, we develop a model of multimedia workloads that lets us isolate, vary, and explore the impact of key system parameters. Our model, which we parameterize with statistics from our trace, lets us confirm various hypotheses about file-sharing behavior observed in the trace. Third, we explore the potential impact of localityawareness in Kazaa. Our results reveal dramatic differences between P2P file sharing and Web traffic. For example, we show how the immutability of Kazaa's multimedia objects leads clients to fetch objects at most once; in contrast, a World-Wide Web client may fetch a popular page (e.g., CNN or Google) thousands of times. Moreover, we demonstrate that: (1) this "fetch-at-most-once" behavior causes the Kazaa popularity distribution to deviate substantially from Zipf curves we see for the Web, and (2) this deviation has significant implications for the performance of multimedia file-sharing systems. Unlike the Web, whose workload is driven by document change, we demonstrate that clients' fetch-at-mostonce behavior, the creation of new objects, and the addition of new clients to the system are the primary forces that drive multimedia workloads such as Kazaa. We also show that there is substantial untapped locality in the Kazaa workload. Finally, we quantify the potential bandwidth savings that locality-aware P2P file-sharing architectures would achieve. Categories and Subject Descriptors C.4 [Performance of Systems]: Modeling Techniques; C.2.4 [Computer-Communication Networks]: Distributed Systems--Distributed applications General Terms Measurement, performance, design Keywords Peer-to-peer, multimedia workloads, Zipf's law, modeling, measurement 1. INTRODUCTION A decade after its birth, the Internet continues its rapid and often surprising evolution. Recent studies have shown a dramatic shift of Internet traffic away from HTML text pages and images and towards multimedia file sharing. For example, a March 2000 study at the University of Wisconsin found that the bandwidth consumed by Napster had edged ahead of HTTP bandwidth [28]. Only two years later, a University of Washington study showed that peer-to-peer file sharing dominates the campus network, consuming 43% of all bandwidth compared to only 14% for WWW traffic [29]. When comparing these bandwidth consumption statistics to those in a 1999 study of a similar campus workload [37], the portion of network bytes ascribed to audio and video increased by 300% and 400%, respectively, over a 3-year period. Without question, multimedia file sharing has become a dominant factor in today's Internet. In all likelihood, it will dominate the Internet of the future, barring a chilling effect from legal assaults. Two traits of today's file-sharing systems distinguish them from Web-based content distribution. First, current filesharing systems use a "peer-to-peer" design: peers voluntarily provide resources as well as consume them. Because of this, the system must dynamically adapt to maintain service continuity as individual peers come and go. Second, file-sharing is being used predominantly to distribute multimedia files, and as a result, file-sharing workloads differ substantially from Web workloads [29]. Multimedia files are large (several megabytes or gigabytes, compared to several kilobytes for typical Web pages), they are immutable, and there are currently far fewer distinct multimedia files than Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. SOSP'03, October 1922, 2003, Bolton Landing, New York, USA. Copyright 2003 ACM 1-58113-757-5/03/0010 ...$5.00. Web pages. Video-on-demand (VoD) systems also distribute multimedia files; we contrast our Kazaa measurements and analysis with related work on VoD systems in Section 3. This paper presents an in-depth analysis of a modern P2P multimedia file-sharing workload, considering the "peer-topeer" and the "multimedia" aspects of the workload independently. Our goals are: 1. to understand the fundamental properties of multimedia file-sharing systems, independent of the design of the delivery system, 2. to explore the forces driving P2P file-sharing workloads so we can anticipate the potential impacts of future change, and 3. to demonstrate that significant opportunity exists to optimize performance in current file-sharing systems by exploiting untapped locality in the workload. To meet these goals, we employ several approaches. First, we analyze a 200-day trace of Kazaa [19] traffic that we collected at the University of Washington between May and December of 2002. We traced over 20 terabytes of traffic during that period, from which we distill several key lessons about the Kazaa workload. Second, we derive a model of this multimedia traffic based on our analysis. The model helps to explain the root causes of many of the trends shown by Kazaa and to predict how the trends may change as the workload evolves. Third, we use trace-driven simulation to quantify the significant potential that exists to improve the performance of multimedia file-sharing in our environment. Our analysis reveals that the Kazaa workload is driven by considerably different forces than the Web. Kazaa objects are immutable, and as a result, the vast majority of its objects are fetched at most once per client; in contrast, Web pages (e.g., Google or CNN) can be fetched thousands of times per client. Our measurements show that the popularity distribution of Kazaa objects deviates substantially from the Zipf curves we commonly see for the Web, and our model confirms that the "fetch-at-most-once" behavior of Kazaa clients is the cause. Our model demonstrates another consequence of object immutability: unlike the Web, whose workload is driven by document change, the primary forces in Kazaa are the creation of new objects and the addition of new users. Without these forces, fetch-at-most-once behavior would drive the system to stagnation. The structure of this paper follows the multi-tiered approach cited above. Section 2 describes our trace methodology and presents our trace-based analysis of Kazaa. In Section 3, we analyze the popularity distribution of Kazaa requests and the forces that shape it. Section 4 uses our observations and analysis to develop an analytical model; we then use the model to explore the processes that drive Kazaa's behavior in greater depth. Section 5 considers the performance potential of bandwidth-saving techniques suggested by our modeling and analysis. We describe research related to our study in Section 6, while Section 7 summarizes our results and presents conclusions. trace length # of requests # of transactions # of unsuccessful transactions average transaction size # of users # of unique objects bytes transferred content demanded 203 days, 5 hours, 6 minutes 1,640,912 98,997,622 65,505,165 (66.2%) 252KB (all transactions) 752KB (successful transactions only) 24,578 633,106 (totaling 8.85TB) 22.72TB 43.87TB Table 1: Kazaa trace summary statistics, 5/28/02 to 12/17/02. A transaction refers to a single Kazaa HTTP transfer; a request refers to the set of transactions a client issues while downloading an object, potentially in pieces from many servers. Clients are identified by Kazaa username. We only present statistics for downloads made by university-internal clients for data on university-external peers. ies have described high-level characteristics of P2P workloads [6, 29, 30, 32]. Our goals in this section are to: (1) dig beneath these high-level studies to uncover the processes that drive the workloads, and (2) demonstrate ways in which these processes fundamentally differ from those of the Web. 2.1 Trace Methodology The data in this section are based on a 200-day trace of Kazaa peer-to-peer file-sharing traffic collected at the University of Washington between May 28th and December 17th, 2002. The University of Washington (UW) is a large campus with over 60,000 faculty, students, and staff. Table 1 describes the trace, which saw over 20 terabytes of incoming data resulting from 1.6 million requests. Our trace was long enough for us to observe seasonal traffic variations, including the end of spring quarter in June, the summer months, and the start and end of the fall quarter. We also observed the impact of bandwidth rate-limiting instituted by the university's networking organization midway through the trace in an attempt to control the cost of Kazaa traffic.1 We collected our trace using hardware and software installed at the network border between the university and the Internet. Our hardware consists of a 2.0 GHz PentiumIII workstation that monitored traffic flowing between the university and the Internet. Our workstation had sufficient CPU and network capacity to ensure that no packets were dropped, even during peak load. An adjacent workstation acted as a one-terabyte file store for archiving trace data. Our software used a kernel packet filter [24] to deliver TCP packets to a user-level process, which identified HTTP requests within the TCP flows. Throughout our trace, the packet filter reported packet drop rates of less than 0.0001%. We made all sensitive information anonymous including IP addresses, URLs, usernames, and object names before compressing and storing the trace. Overall, our tracing and analysis software consists of over 30,000 lines of code. Our hardware monitored all incoming and outgoing traffic. However, the data presented in this paper (including Table 1) are for one direction only: requests made by university-internal peers to download data stored on university1 The imposed rate limits bounded upload traffic out of the university's dormitory population and had little effect on download traffic (to the dorms or to the university as a whole), which is the focus of our research. 2. THE MEASURED PROPERTIES OF P2P FILE-SHARING WORKLOADS This section uses our trace data to identify key properties of the Kazaa multimedia file-sharing system. Recent stud- external peers. This unidirectional trace captures all requests issued by a stable, complete user population over a period of time. Kazaa control traffic, which consists primarily of queries and their responses, is encrypted and was not captured as part of our trace. Throughout this paper, the term "user" refers to a person and "client" refers to the application instance running on behalf of a user. We assume there is largely a one-to-one correspondence between users and specific application instances in our environment (although this may not always be true); therefore, we draw conclusions about users based on observations of clients in our trace. Note, however, that client-side caches may absorb some requests from users, meaning that the client request rate, which we observe in our trace, may be lower than the true user request rate, which we cannot directly observe. Kazaa clients supply Kazaa-specific "usernames" as an HTTP header in each transaction. We use these usernames (rather than IP addresses) to distinguish between different users in our trace. Unfortunately, an unofficial version of Kazaa, called "KazaaLite,"2 became popular during our tracing period and is compiled with a predefined username embedded in the application itself. We "specialcase" requests from KazaaLite, resorting to distinguishing between KazaaLite users by their IP addresses. Although DHCP is used in portions of our campus, and identifying users by IP address is known to have issues when DHCP is present [6], only 5.7% of transactions in our trace were from KazaaLite clients. Furthermore, KazaaLite clients did not appear within the first 59 days of our 203 day trace. Kazaa file-transfer traffic consists of unencrypted HTTP transfers; all transfers include Kazaa-specific HTTP headers (e.g., "X-Kazaa-IP"). These headers make it simple to distinguish between Kazaa activity and other HTTP activity. They also provide enough information for us to identify precisely which object is being transferred in a given transaction. When a client attempts to download an object, that object may be downloaded in pieces (often called "chunks") from several sources over a long period of time. We define a "transaction" to be a single HTTP transfer between a client and a server, and a "request" to be the set of transactions a client participates in to download an entire object. A failed transaction occurs when a client successfully contacts a remote peer, but that remote peer does not return any data, instead returning an HTTP 500 error code. A single request may span many minutes, hours, or even days, since the Kazaa client software will continue to attempt to download the object long after the user has asked for it. Occasionally, a client may download only a subset of the entire object (either because the user gives up or because the object becomes permanently inaccessible in the middle of a request). We call this a "partial request." The Kazaa application has an auto-update feature, meaning that a running instance of Kazaa will periodically check for updated versions of itself. If found, it downloads the new executable over the Kazaa network. We chose to filter out these auto-update transactions from our logs, as they are not representative of multimedia requests from users. Such 2 Many more unofficial versions of Kazaa that use generic usernames have appeared since our trace period finished; precisely distinguishing between peer-to-peer users will become very difficult, given that neither IP addresses nor application-specific usernames are unique. 1 0.9 % of requests (CDF) 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 5 -3 mins <10MB objects 100MB+ objects 1 hour 1 day 1 week 150 days download latency Figure 1: Users are patient. A CDF of object transfer times in Kazaa for small (<10 MB) and large (100 MB+) objects. The X-axis is on a log-scale. filtering removed 0.4% of total transactions (0.3% of bytes) from our trace. 2.2 User Characteristics Our first slice through the trace data focuses on the properties of Kazaa users. Previous studies [29, 2] have shown that peer-to-peer users in general are "greedy" (i.e., most users consume data but provide little in return) and have poor availability [30]. We confirm some of these characteristics, but we also explore others, such as user activity. 2.2.1 Kazaa Users Are Patient As any Web-based enterprise knows, users are very sensitive to page-fetch latency. Beyond a certain small threshold (measured in seconds), they will abandon a site and move to another, possibly competing, site. For this reason, many online businesses engage services such as Keynote [20] to tell them quickly if their servers are not sufficiently responsive. In the world of the Web, users expect instant gratification and are unforgiving if they do not receive it. In this context, the behavior of Kazaa users is surprising. Figure 1 shows the distribution of transfer times in Kazaa; transfer time is defined as the difference between the start time of the first transaction and the end time of the last transaction of a given user request. We filtered out partial requests (i.e., we only counted transfers for which the user eventually obtained the entire object). To deal with edge effects, we ignored requests for which at least one transaction occurred during the first month of the trace; note that this will tend to result in an underestimate of user patience. We present our results in terms of requests for "small" objects (less than 10MB, typically audio files) and requests for "large" objects (more than 100MB, typically video files). As we will show in Section 2.3.1, this is a natural and representative way to decompose the overall workload. The results show incredible patience on the part of Kazaa users. Even for small objects, 30% of the requests take over an hour, and 10% take nearly a day. For large requests, less than 10% complete in an hour, 50% take more than a day, and nearly 20% of users are willing to wait a week for their downloads to complete! From this graph, it is clear that the dynamics of multimedia downloads differ totally from Web usage. The Web is an interactive system where users want an immediate response. Kazaa is a batch-mode delivery system, where downloads are made in the background and the 8 7 TB requested population size 6000 1.4 data requested 1.2 probability of request 1 0.8 0.6 0.4 0.2 0 1 2 3 4 5 6 7 8 9 10 11 data requested per live client (GB) 5000 TB requested 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10 11 1000 0 4000 3000 2000 population size 1 0.8 0.6 0.4 0.2 0 week week Figure 2: Bytes requested by the population and attrition as a function of age. "Older" clients request a smaller fraction of bytes than newer clients. There are fewer old clients than young clients, but attrition occurs at a more gradual rate than the slowdown in bytes requested. Figure 3: Older clients have slower request rates. On average, clients use the system equally often as they age (having approximately a 50% chance of using the system any given week), but they request less data per session as they age. Note that the point corresponding to new clients (week 1) is artificially high, since by definition every new client requests an object immediately. content is examined later. Users do not wait for their content to arrive. They go about their business and eventually return to review the content after it has been received. 2.2.2 Users Slow Down As They Age An interesting question we explored is how user interest in Kazaa varies over time. Do users become hungrier for content as they gain experience with Kazaa? Are their request rates relatively constant? Do they lose interest over time? The answer to such questions significantly affects the growth of the system. To understand user behavior over time, we first calculated the average number of bytes consumed by clients as a function of age. The methodology for this measurement is complex: our trace has finite length, so we must avoid end effects that would overcount short-lived or undercount longlived users. We compensate, first, by counting transferred bytes only from clients whose "births" we could observe. Because there are no detectable birth events in our trace, we used the heuristic of treating the first observed download from a client as a birth event if at least a full month had elapsed in our trace before seeing that first download. To compensate at the end of the trace, we counted bytes only from clients born prior to the last 11 weeks of the trace. Because of this "end threshold," we could draw definitive conclusions about clients' behavior only during the first 11 weeks of their lifetimes. Figure 2 shows the total number of bytes requested by the population as a function of its age. From this graph, we can see that older clients consume fewer bytes than newer clients. There are two reasons for this effect: (1) attrition reduces the number of older clients, since clients may "die" (i.e., leave the system forever) over time, and (2) some clients may continue to issue requests but do so at a slower rate as they age. We explore each of these in turn. Attrition. To understand attrition in the system, we analyzed the number of clients that remain alive as a function of age (also shown in Figure 2). Population size declines at a more gradual rate than bytes requested, at least over the first 11 weeks of clients' lifetimes. Attrition therefore only partially explains why older clients demand less in aggregate from the system. To fully explain this phenomenon, clients must also slow down their request rates as they age. Slowing down over time. Older clients may have slower request rates for two reasons: (1) they may use the system less often, or (2) they may ask for less when they use the system. Figure 3 shows that clients are equally likely to use the system regardless of age: on average, clients have about a 50% chance of making a request on any given week. Older clients slow down because they ask for less each time they use the system, not because they use the system less often. In summary, new clients generate most of the load in Kazaa, and older clients consume fewer bytes as they age. In part, this is because of attrition: clients leave the system permanently as they grow older. Also, older clients tend to interact with the system at a constant rate, but ask for less during each interaction. 2.2.3 Client Activity Quantifying the availability of clients in a peer-to-peer system is notoriously difficult [6]: no one metric can accurately capture availability in this environment, since any individual client might exist only for a fraction of the traced time period. Given our passive tracing methodology, we faced an additional methodological problem: we can detect that users are participating in the system only when their clients transfer data (either by downloading or uploading files). If a client is on-line but not active, we could not observe them. Because of this, we report statistics about client activity only, which is a lower bound on availability.3 We use two specific metrics to quantify the amount of client transfer activity: (1) activity fraction, which measures the fraction of time a client is transferring content over the client's lifetime or over the duration of the entire trace, and (2) average session length, in which a session is defined as an unbroken period of time during which a client has one or more active transactions. Average session length measures the typical duration of the periods during which a client is receiving or transmitting data. Our measurements indicate that the distributions of average session length and activity fraction over the measured population are heavy-tailed. 3 P2P software is often designed to make it difficult to close the program once it starts, "fooling" users into making their clients more available than intended. Accordingly, we suggest that client activity is a more universally comparable and stable indicator of "availability" than other metrics. probabilty a client makes >0 requests 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0.1 1 0.9 % of requests/bytes 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 <= 10 10-100 requests bytes transferred % requests (CDF) % bytes consumed 1 10 100 1000 >100 object size (MB) (a) object size (MB) (b) Figure 4: Bandwidth consumed vs. object size. (a) CDFs of the total bandwidth consumed and the number of requests generated, as a function of object size, and (b) bandwidth consumed and requests generated as a function of object size, grouped into three regions. all clients activity fraction over lifetime activity fraction over trace total activity over trace average session length median 90th percentile median 90th percentile median 90th percentile median 90th percentile 66.08% 100% 0.01% 2.29% 0.69 hours 111.93 hours 2.40 mins 28.25 mins clients with >1 transfer 5.54% 94.41% 0.20% 4.15% 10.09 hours 202.65 hours 2.40 mins 28.33 mins 2.3 Object Characteristics We now turn our attention to the characteristics of requested objects. Kazaa objects consist of a mixture of media types, including audio, video, images, and executables [29]. Our trace captured 1,640,912 requests to 633,106 different objects, resulting in 98,997,622 transactions. In the remainder of this section, we discuss the most prominent properties of the requested objects. 2.3.1 Kazaa Is Not One Workload While we tend to think of a system like Kazaa as generating a single workload, Kazaa is better described as a blend of workloads that each have different properties. Figure 4(a) shows the percentage of total bandwidth consumed in our trace as a function of object size. The graph shows three prominent regions: "small" objects that are less than 10 MB in size, medium-sized objects from 10 to a few hundred MB in size, and large objects that are close to 1 GB in size. Relative to the Web, our "small" objects are three orders of magnitude larger than an average Web object, while our large objects are nearly five orders of magnitude larger. This was shown in [29] as well. Figure 4(a) also graphs the percentage of requests observed in the trace as a function of object size, demonstrating that most requests are for the "small" objects. Taking a closer look, Figure 4(b) breaks down the number of requests and bytes transferred into three regions: 10MB or less, 10MB to 100MB, and over 100MB. We chose the value 10MB as this corresponds to an obvious plateau in Figure 4(a) and it serves as an upper bound on the size of most digitized audio clips. We chose the value 100MB as it is a reasonable lower bound on the size of most digitized fulllength movies transferred. While the majority of requests (91%) are for objects smaller than 10MB (primarily audio clips), the majority of bytes transferred (65%) are due to the largest objects (video files). Thus, if our concern is bandwidth consumption, we need to focus on the small number of requests to those large objects. However, if our concern is to improve the overall user experience, then we must focus on the majority of requests for small files, despite their relatively small bandwidth demand. The stark differences between the large and small object workloads lead us to analyze their behaviors independently for much of the evaluation that follows. Table 2: Client session lengths and activity fractions. Summary statistics over two different subsets of our client population: all clients, and only those clients that have transferred more than one file. We show activity fraction summary statistics relative to both the clients' lifetimes and to the entire trace. Table 2 summarizes these metrics. Average session lengths are typically small: the median average session length is only 2.4 minutes, while the 90th percentile is 28.25 minutes. Most clients have high activity fractions relative to their lifetimes. However, this is a potentially misleading statistic, since many clients have very short lifetimes, leaving the system permanently after requesting only one file. The activity fraction for clients with greater than one request is a more revealing statistic. The median client in this category was active only 5.54% of its lifetime, or 0.20% of the entire trace. Highly active clients in this category are active for most of their lifetime, but even these clients are typically active for only a short fraction of the trace: the 90th percentile client has an activity fraction of only 4.15% over the trace. At first glance, our user patience statistics may appear at odds with our average session length statistics. The median small object takes about 17 minutes to download fully, but the median average session length is only 2.41 minutes. This apparent paradox is reconciled by several facts: (1) many transactions fail (Table 1), producing many very short sessions, (2) periods of no activity may occur during a request if the client cannot find an available server with the object, and (3) some successful transactions are short, either because servers close connections prematurely or the "chunk" size requested is small. small objects (primarily audio) top 10 top 100 overlap in the most popular objects between first and last 30 days of trace # of newly popular objects that are recently born large objects (primarily video) top 10 top 100 0 of 10 5 of 100 1 of 10 44 of 100 6 of 10 73 of 95 2 of 9 47 of 56 Table 3: Object popularity dynamics in Kazaa. There is significant turnover in the set of most popular objects between the first 30 days and the last 30 days of the trace. The newly popular objects (those in the set of most popular objects over the last 30 days but not in the set over the first 30 days) tend to be recently born. 2.3.2 Kazaa Object Dynamics A simple but crucial difference between multimedia and Web workloads is that multimedia objects are immutable, while Web pages are not. Though obvious, this fact and its implications have not been discussed in the research literature. A video clip of "Bambi Meets Godzilla" will be the same clip tomorrow or the next day: it never changes. On the other hand, the Web page CNN.com may change every hour, or upon every access if the page is personalized for clients. Web workloads are thus strongly driven by dynamic content creation. It has been shown that the rate of document change is a key factor in Internet behavior and has enormous implications for caching, performance, and content delivery in general [11, 37]. We now show how immutability affects object dynamics. Kazaa clients fetch objects at most once. Because objects are immutable and take non-trivial time to download, we believe that users typically download a Kazaa object only once. Our traces confirm that 94% of the time, a Kazaa client requests a given object at most once; 99% of the time, a Kazaa client requests a given object at most twice. In comparison, based on a Web trace we gathered during the first nine days of our Kazaa trace period, a Web client requests a given object at most once only 57% of the time. The popularity of Kazaa objects is often shortlived. Object immutability also has an impact on object popularity dynamics. The set of most popular pages remains relatively stable for the Web and these pages account for a significant fraction of overall accesses [26]. In contrast, many of the most popular audio/video objects are routinely replaced by newly released objects, often in only a few weeks. To illustrate this change in popular Kazaa objects, we compared the first 30 days of the trace to the last 30 days of the trace. For each of these 30-day (month-long) segments, we identified the top-10 most popular and the top-100 most popular objects (Table 3). For small objects, there was no overlap between the top-10 most popular objects: the most popular small objects had changed completely in the space of only six months. For large objects, there was only one object in common in the top-10 across these segments. The top-100 objects show only 5 small objects in common across the segments, and 44 objects in common across the large objects. Popularity is fleeting in Kazaa, and popular audio files tend to lose popularity faster than popular video files. The most popular Kazaa objects tend to be re- cently born objects. Given that there is significant turnover in popularity within Kazaa, we wanted to understand whether objects that become popular are old objects that have grown in popularity over time or recently born objects that enjoy sudden popularity. Using the same month-long segments as before, we calculated the fraction of objects that were newly popular (i.e., in the top-10 or top-100 in the last month of the trace but not the first month of the trace), but did not receive any requests at all during the first month of the trace (i.e., they were likely "born" after the first month of the trace). Table 3 shows the results: newly popular objects tend to be recently born in Kazaa, although this is more true for audio objects than video objects. Most requests are for old objects. The previous experiments confirmed that the most popular objects tend to decay in popularity, and that the newly popular objects that replace them tend to be newly born. A related, but different, question is whether most requests go to old or new objects. We categorize an object as "old" if at least a month has passed since we observed the first request for that object. We categorize it as "new" if it has been less than a month since it was first requested. Note that we can be sure that an object is old, but we can never be sure that an object is new, since we may have missed requests for the object before our trace began. To deal with edge effects, we do not include the first month of requests in our statistics, but we do use them to help distinguish between old and new objects in subsequent months. Using this methodology, 72% of requests for large objects go to old objects, while 28% go to new objects. For small objects, 52% of requests go to old objects, and 48% go to new objects. This shows that a substantial fraction of requests are for the old objects. Large objects requested tend to be older than small objects, reinforcing our assertion that Kazaa is really a mixture of workloads: the pace of life is slower for large objects than for small objects. From the above discussion, it is clear that the forces driving the Kazaa workload differ in many ways from those driving the Web. Web users may download the same pages many times; Kazaa users tend to download objects at most once. The arrival of new objects plays an important role in P2P file-sharing systems, while changes to existing pages are a more important dynamic in the Web. We discuss implications of these differences in Sections 3 and 4. 2.3.3 Kazaa Is Not Zipf Much has been written about the Zipf-like qualities of the WWW [7]. In fact, researchers commonly quote the Zipf parameter of the popularity distributions seen in their traces [14, 27], in part to demonstrate that their results are "correct." This Zipf property of Web access patterns is thought to be a basic fact of nature: a small number of objects are extremely popular, but there is a long tail of unpopular requests. Zipf's law states that the popularity of the ith-most popular object is proportional to i- , where is the "Zipf coefficient" or "Zipf parameter." Zipf distributions look linear when plotted on a log-log scale. Figure 5 shows the Kazaa object popularity distribution on a log-log scale for large (>100MB) objects, along with the best-fit Zipf curve; a qualitatively similar curve exists for small (<10MB) objects. This figure also shows the popularity distribution of Web objects, drawn from our Web trace. Unlike the WWW, the Kazaa object request distribu- 10,000,000 1,000,000 servers and the Web. Following this, we present a model of multimedia workloads in Section 4, and we use this model to explore implications of non-Zipf behavior. WWW objects # of requests 100,000 10,000 1,000 100 10 100MB+ Kazaa objects 1 1 10 100 1000 3. ZIPF'S LAW AND MULTIMEDIA WORKLOADS Previous studies of multimedia workloads examined object popularity and found conflicting results, noting both Zipf and non-Zipf behavior [4, 7, 8, 12, 33]. This section examines previous work in the context of our own, with the goal of explaining the similarities, differences, and causes of the behavior observed both by us and others. We begin by presenting a hypothesis that explains the non-Zipf behavior in Kazaa. Next, we discuss previous studies that have observed or modeled non-Zipf workloads and contrast our hypothesis with previous explanations. Finally, we attempt to show the generality of our claim by revealing non-Zipf behavior in previously studied workloads. Section 4 then supports our hypothesis through the use of a generative workload model whose output closely matches our observations. 10000 100000 1E+06 1E+07 1E+08 object rank Figure 5: Kazaa is not Zipf. The popularity distribution for large objects is much flatter than Zipf would predict, with the most popular object being requested 100x less than expected. Similarly shaped distributions exist for small objects and the aggregate Kazaa workload. For comparison, we show the popularity distribution of Web requests during a subset of the Kazaa trace period: the Web is well described by Zipf. 3.1 Why Kazaa Is Not Zipf tion as observed in our trace does not seem to follow a Zipf curve. The strongest difference from Zipf appears among the most popular objects, where the curves are noticeably flatter than the Zipf lines. The most popular multimedia objects are significantly less popular than Zipf would predict. For example, our trace shows that the most popular large object has only 272 requests, and only 47 objects have 100 requests or more. Popularity distributions of Web traffic sometimes have slightly flattened "heads," but the objects in the flattened region account for only a small percentage of total requests and bytes. The flattened portion of the Kazaa popularity curve consists of the top 1000 objects, and these objects account for more than 50% of bandwidth consumed. The previous section highlighted a crucial difference between the Web and the Kazaa P2P file-sharing system: Kazaa objects are immutable, while Web objects change, sometimes frequently. As we observed in Section 2.3.2, the immutability of Kazaa objects causes two important effects, one affecting user behavior and the other object dynamics. First, Web clients often fetch the same Web page many times ("fetch-repeatedly"). In contrast, Kazaa clients rarely request the same object twice ("fetch-at-most-once"). Second, the Web's primary object dynamic is updates to existing pages. In contrast, the primary object dynamic in the Kazaa workload is the arrival of entirely new objects. These object and user characteristics can be used as two axes for classifying systems: immutable objects vs. mutable objects, and fetch-repeatedly clients vs. fetchat-most-once clients. In systems with large client-side caches, these characteristics are intimately linked: fetchrepeatedly behavior exists when there are object updates, such as in the Web, and fetch-at-most-once user behavior exists when the only object dynamic is new arrivals, such as in the Kazaa system. We believe that these differences in object and user dynamics explain why we observed Zipf request distributions in our measured Web workload, but not in Kazaa. As an initial comparison of fetch-at-most-once and fetchrepeatedly behavior, we simulated the request distribution generated by two hypothetical 1,000-user populations: one in which users fetch objects repeatedly, and one in which they fetch objects at most once. In both cases, we simulated the same initial Zipf distribution (with Zipf parameter = 1.0 over 40,000 objects). However, in the fetch-at-most-once case, we prevented users from making subsequent requests for the same object. (Section 4 more fully explains the model behind this simulation.) Figure 6 shows the results when users have made an average of 1000 requests each. While fetch-repeatedly behavior recreates the underlying Zipf distribution, fetch-at-mostonce behavior shows markedly different results: the most popular objects are requested much less, while objects down the tail show elevated numbers of requests. This behav- 2.4 Summary Peer-to-peer file-sharing workloads are driven by considerably different processes than the Web. Kazaa users are much more patient than Web users, waiting hours, days, and, in some cases, weeks for their objects to arrive. Even so, the median session length is only 2.4 minutes, because: (1) many transactions fail, (2) many transactions are short, and (3) clients occasionally have periods of no activity while satisfying a request. As Kazaa clients age, they demand less from the system. Part of this is due to attrition (clients permanently leaving the system), but part is also due to older clients requesting fewer bytes per session. The Kazaa file-sharing workload consists of a mixture of large, immutable audio and video objects, but the measured popularity distribution of these objects is not Zipf. The popularity of the most requested objects is limited, since clients typically fetch objects at most once, unlike the Web. Nonetheless, there is substantial non-uniformity in Kazaa object popularity, which suggests that caching is a potentially effective bandwidth savings tool. In Kazaa, object arrivals play an important role, while in the Web, updates to existing pages are a more important dynamic. In the next section, we explore what we believe are the reasons why Kazaa's workload does not appear to follow Zipf's law. We also compare Kazaa's non-Zipf behavior to nonZipf behavior in other systems, including video-on-demand 100000 fetch-repeatedly 10000 # of requests 1000 100 10 1 1 10 100 1000 10000 100000 object rank show up many times (potentially as many times as there are users) in a fetch-at-most-once workload such as Kazaa, even with individual client caches. Both result in non-Zipf distributions, but for different reasons. fetch-at-most-once 3.2.2 Kazaa vs. Other Multimedia Workloads Tang et al. [33] show that streaming media server workloads exhibit flattened popularity distributions similar to those we observed. They attribute this flattened distribution to the long duration over which they gathered their trace. Their hypothesis is that with a longer trace, more files with similar popularity can be observed, in effect creating "groups" of files with similar properties. Instead of Zipf's law being appropriate for describing the popularity of individual files, they show that Zipf's law better describes the popularity of these groups, and they provide a mathematical transformation inspired by these groups to convert observed non-Zipf distributions into a Zipf-like distribution. We believe that fetch-at-most-once behavior is the likely cause of the non-Zipf popularity in their workload. A short trace can cause a non-Zipf workload to appear Zipf-like, as not enough requests have been gathered within the trace for objects with similar popularity to be observed [8]. However, the fact that an adequate sample size will reveal a non-Zipf workload does not explain why this true workload is nonZipf in the first place. The length of a trace by itself does not provide a satisfactory explanation of the forces driving popularity in a system. Fetch-at-most-once behavior partially provides this explanation. Additionally, in a system that experiences object births (for example, new video objects becoming available), a short trace may miss important birth events. A longer trace may reveal objects spread out over time that have equivalent short-term popularity, similar to the "group" effect Tang et al. proposed. In another study, Almeida et al. [3] observe a flattened Zipf-like popularity distribution in an educational media server. They propose that this distribution is well described by the concatenation of two true Zipf distributions. Although the data appears to be well modeled by two Zipf distributions, their study does not provide an explanation of what causes this effect. Another often studied multimedia workload is that of video-on-demand (VoD) servers. VoD researchers frequently use Zipf distributions to model the popularity of video documents in their systems [10, 18, 31]. Surprisingly, many of these researchers appear to base their Zipf assumption on results published from a single data set: one week of rental data from a video store [35]. Our results suggest that their workload (i.e., requests for immutable video objects) should reveal similar non-Zipf behavior stemming from fetch-at-most-once client behavior. To understand the apparent discrepancy between their assumptions and our results, we manually extracted the video rental data set from Figure 2 of [10]. In Figure 7(a), we show this data as it appeared in that paper, plotted on a linear scale with a Zipf curve fit. Figure 7(b) shows the same data plotted on a log-log scale with the same Zipf curve fit. While the linear scale plot seems to suggest the data may be well described by Zipf's law, the log-log plot reveals that even this data set appears to show the flattened head that is characteristic of fetch-at-most-once systems. We also gathered recent box-office movie ticket sales data [34]. Figures 7(c) and (d) show that this data, too, is consistent with Figure 6: Simulated object popularity for fetch-repeatedly and fetch-at-most-once behavior. When users fetch an individual object at most once, the resulting request distribution has a significantly flattened head, approximating the Kazaa popularity distribution. ior strikingly resembles the measurement results shown in Figure 5, confirming our intuition that fetch-at-most-once behavior is a key contributor to non-Zipf popularity. 3.2 Non-Zipf Workloads in Other Systems Non-Zipf popularity distributions have been observed in many previous studies [1, 3, 8, 33]. We now compare our results to two categories of previous studies: those that analyzed Web workloads and those that analyzed video (or other multimedia) workloads. 3.2.1 Kazaa vs. Web Workloads While most Web studies conclude that Web popularity distributions follow Zipf's law, some studies have observed non-Zipf behavior, specifically in workloads that emerge as miss traffic from a proxy cache [4, 7, 12]. Web proxy caches, by design, absorb requests to popular documents; consequently, the most popular documents in a workload will appear only once (as cold misses) in cache miss traces. Moderately popular documents will occasionally be absorbed by the proxy cache, but they will also appear in the miss traffic as capacity misses. The least popular documents will always miss in the proxy cache, assuming the cache has finite size and cannot hold the entire object population. As a result, a Zipf workload, when fed through a shared proxy cache, will result in a non-Zipf popularity distribution with a flattened head [12], visually similar to the non-Zipf distributions we observed in Kazaa. Breslau al. et [7] derive equations that relate the Zipf parameter of a workload fed to a proxy cache and the hit rate that the proxy cache will experience. Although proxy cache miss distributions may visually resemble our measured Kazaa popularity distributions, we believe the two workloads diverge from Zipf for different reasons. In Kazaa, users' requests do not flow through a shared proxy cache: the workload we observed is the aggregate of a large number of individual fetch-at-most-once streams, with an absence of shared proxy caches. The only caches that currently exist in Kazaa are client-side caches. Note that there is no practical difference between true fetch-at-mostonce user behavior, and fetch-repeatedly user behavior filtered through infinite client-side caches resulting in fetchat-most-once client behavior. The most popular Web object will show up only one time in a proxy cache miss trace. The most popular object will 100 90 80 70 60 50 40 30 20 10 0 0 50 100 150 200 250 1000 rental frequency rental frequency 100 10 1 movie index (a) 500 450 400 350 300 250 200 150 100 50 0 0 50 100 150 200 250 1 10 movie index (b) 100 1000 1000000 100000 box office sales ($millions) box office sales ($millions) 10000 1000 100 10 1 0.1 0.01 0.001 1 10 100 1000 movie index (c) movie index (d) Figure 7: Video rental and box office sales popularity. (a) The popularity distribution from a 1992 video rental data set used to justify Zipf 's law in many video-on-demand papers, along with a Zipf curve fit with = 0.9, and (b) the same data set and curve fit plotted on a log-log scale. Contrary to the assumption of many papers, video rental data does not appear to follow Zipf 's law. (c) The distribution of 2002 U.S. box office ticket sales on a linear scale, along with a Zipf-fit with = 2.28, and (d) on a log-log scale. This data set also appears to be non-Zipf. our fetch-at-most-once popularity distribution. The VoD community has recently begun to recognize the importance of object births in video-on-demand systems [16]. Because new video titles are created (often with high popularity), and because the popularity of existing video titles tends to diminish over time, VoD workload models are starting to incorporate schemes for changing popularity distributions over time. This is consistent with our earlier observations that both client and object birth rates are important factors in multimedia workloads. In the next section, we present a model of fetch-at-mostonce systems. We use this model to demonstrate the implications of the resulting non-Zipf behavior and explore the importance of client and object birth rates on system performance. We believe that this model is relevant to both P2P file-sharing and video-on-demand systems. Symbol C O R P(x) A(x) M O C Meaning # of clients # of objects per-user request rate Zipf parameter driving object popularity probability that a user requests an object of popularity rank x probability that a newly arrived object is inserted at popularity rank x cache size, measured as fraction of all objects object arrival rate client arrival rate Base value 1,000 40,000 2 objects/day 1.0 based on Zipf(1) (see text) Zipf(1) varies varies varies Table 4: Model structure and notation. These parame- 4. A MODEL OF P2P FILE-SHARING WORKLOADS ter settings reflect the values seen in our trace for large (>100MB) objects. In the previous section, we hypothesized that the non-Zipf behavior of Kazaa, and of multimedia workloads in general, is best explained by the fetch-at-most-once behavior of clients. This section presents a model of P2P file-sharing systems that enables us to explore this hypothesis further. The model, used to generate Figure 6 in the previous section, captures key parameters of the P2P file-sharing workload, such as request rates, number of clients, number of objects, and changes to the set of clients and objects. From these parameters, it produces a stream of client requests for objects that we then analyze. By varying model parameters, we explore the underlying processes that lead to certain observable workload characteristics and how changes to the parameters affect the system and its performance. The remainder of this section describes our basic model of a P2P file-sharing system. This model shows the impact that fetch-at-most-once behavior has on overall object popularity. We use caching as a lens to observe how the addition of new objects and new clients affects performance in a fetchat-most-once file-sharing system. Finally, we validate the model by comparing the popularity distributions of a modelgenerated workload with that extracted from our trace data. 4.1 Model Description Table 4 summarizes the parameters used in our model. We chose parameter values that reflect our trace measurements for large objects, since this component dominates bandwidth consumption. One parameter value that differs from the measured trace is the number of clients. In order to run a substantially larger number of experiments, we model a sys- tem with 1,000 clients rather than the roughly 7,000 largeobject clients in our trace. We verified that the predictions of our model were not affected by this difference. To simplify our model, we also assumed that all objects in the system were of equal size. Our model captures key aspects of our P2P file-sharing workload, in particular, the differences between file-sharing and Web workloads. In a Web workload, clients select objects from a Zipf distribution, P (x), in an independent and identically distributed fashion. In contrast, the object selection process in a file-sharing system depends on three factors: (1) the Zipf distribution, P (x), (2) the way in which new objects are inserted into that distribution, A(x), and (3) the clients' fetch-at-most-once behavior. Our model generates requests as follows. On average, a client requests two objects per day, choosing which object to fetch from a Zipf probability distribution with parameter 1.0 ("Zipf(1)").4 We hypothesize that the underlying popularity of objects in a fetch-at-most-once file-sharing system is still driven by Zipf's law, even though the observed workload becomes non-Zipf because of fetch-at-most-once clients. In our model, subsequent requests from the same client obey distributions obtained by removing already fetched objects from the candidate object set and re-scaling so the total probability is 1.0. Given two previously unrequested objects, the ratio of the probabilities that the client will request these objects next is identical to their ratio in the original Zipf distribution. For fetch-repeatedly systems, each request is made according to the original Zipf distribution. When modeling fetch-at-most-once systems, O > 0 is the object arrival rate. When an object is born in a fetch-atmost-once system, its popularity rank is determined by selecting randomly from the Zipf(1) distribution. Pre-existing objects of equal or lesser popularity are "pushed down" one Zipf position, and the resulting distribution is re-normalized so the total probability is again 1.0. In fetch-repeatedly systems, we set the object arrival rate to 0. Objects may be updated, but for simplicity we ignore the second-order effect of completely new objects on request behavior. While our trace shows all requested objects, it cannot observe the total object population, since many available objects were never accessed. However, total object population is a key parameter of our model, as it influences the amount of overlap that will likely occur in requests from different clients. We therefore estimated a base value for total object population by back-inference: how many large objects are most likely to have existed in total, given that we saw about 18,000 distinct large objects requested in the trace? We find that a total population of about 40,000 large-media objects is consistent with the trace data; therefore, we use this number as the base value. This number is also comparable to statistics that describe commercial movie releases: the Internet Movie Database reports between 50,000 and 60,000 movie releases world-wide over the past 20 years [34]. To quantify file-sharing effectiveness, we use the hit rate that the aggregate workload experiences against a 100% available shared cache with LRU replacement, whose size we vary in each experiment. Selected experiments using optimal replacement showed no qualitative differences from LRU results, and quantitative differences varied by only a few percent. For Web (fetch-repeatedly) scenarios, we make 4 Attempting to best-fit a Zipf curve to our measured nonZipf distribution resulted in a Zipf parameter of 0.98. 1 0.8 4000 fetch-repeatedly 2000 1000 hit rate 0.6 0.4 0.2 0 0 1000 2000 4000 fetch-at-most-once 200 400 600 800 1000 days Figure 8: File-sharing effectiveness diminishes with client age. After an initial cache warm-up period, the request stream generated by fetch-at-most-once client behavior experiences rapidly decreasing cache performance, while the stream generated by fetch-repeatedly clients remains stable. This effect is shown for various cache sizes (1000, 2000, and 4000 objects). the optimistic assumption that all objects are cachable and are never updated. 4.2 File-Sharing Effectiveness Diminishes with Client Age Imagine an organization experiencing current demand for external bandwidth due to fetches of P2P file-sharing objects. How should this organization expect bandwidth demand to change over time, given a shared proxy cache? We address this question using the "static" case in which no new clients or objects arrive. This static analysis allows us to focus on one factor at a time (fetch-at-most-once behavior, in this case). We relax these assumptions in later subsections to show the impact of other factors, such as new object and client arrivals. Figure 8 shows hit rate against time for various shared cache sizes, assuming that at time zero no clients have fetched any objects. After a brief cache warm-up period, hit rate decreases as clients age, even for a cache that can hold 10% of all file-sharing objects. This is because fetch-at-most-once clients consume the most popular objects early. Later requests are selected with nearly uniform likelihood from an increasingly large number of objects. That is, the system evolves towards one in which there is no locality, and objects are chosen at random from a very large space. This behavior suggests that if client request rates remain constant over time, the external bandwidth load they present increases, since more of their requests are directed to objects that are only available externally. Conversely, if we hope to have stable bandwidth demand over time, clients must behave in a way that reduces the intensity of their requests in a manner consistent with the shape of the hit-rate decreases shown in Figure 8. The decrease in hit-rate over time is a strong property of fetch-at-most-once behavior. The underlying popularity distribution need not be heavy tailed for it to occur. We have performed experiments using initial object popularity distributions that have higher locality (i.e., Zipf parameters larger than 1.0). In a fetch-repeatedly context, the larger skew of these distributions towards the most popular objects makes file sharing easier and hit rates rise. For fetch-at-most-once systems, hit rates start out much higher, but as clients age 1 0.8 cache size = 8000 cache size = 4000 cache size = 2000 cache size = 1000 cache size = 500 1 0.8 constant hit rate 100000 80000 60000 40000 constant client arrival rate hit rate 0.4 0.2 0 1 2 3 4 5 6 7 8 9 hit rate 0.6 0.6 0.4 0.2 0 0 200 400 600 800 20000 0 1000 # object arrivals per user request days Figure 9: Object arrivals improve performance. Cache hit rates improve with new object arrival rates for fetchat-most-once clients because they replenish the supply of popular objects. This improvement is shown across varying cache sizes (500 to 8000 objects). The X-axis shows the global object arrival rate relative to the average client's request rate. Since the average client makes 2 requests per day, the point x = 1 implies that 2 new objects arrive globally per day. Figure 10: Client arrivals cannot stabilize performance. With constant client arrival rate, hit-rate decreases with time. To maintain constant hit-rate, client arrival rate must increase exponentially with time. they fall off even more sharply than in Figure 8. Thus, even if the file-sharing system evolves in a way that increases the popularity of their most requested objects, the hit rate of existing clients on existing objects will still decrease towards zero as clients age. 4.3 New Object Arrivals Improve Performance The decay of hit rate with client age explains another surprising characteristic of P2P file-sharing systems: while Web performance suffers due to object updates, object arrivals are actually beneficial in a file-sharing system. This is because arrivals replenish the supply of popular objects that are the source of file-sharing hits. Figure 9 shows this effect. We repeated the previous simulation, but this time introduced a non-zero object arrival rate. Over any realistic range of arrival rate5 , hit rates increase, approaching at maximum the hit rate of an equivalent fetch-repeatedly system. For parameters set to the base values of our model (in which clients average two requests per day), an object arrival rate as small as twelve new objects introduced worldwide per day compensates for nearly all the loss due to client aging. The arrival of new objects in a P2P file-sharing system is therefore an important rejuvenating force that counterbalances fetch-at-most-once behavior. Without new popular objects to choose from, existing clients quickly exhaust the set of popular objects, after which they are forced to choose from the remaining heavy tail of unpopular objects. Without the infusion of new objects, the workload in a fetch-atmost-once system loses its locality over time. therefore be an equivalent rejuvenating force to the infusion of new objects. Unfortunately, in any practical sense, this turns out not to be the case. Figure 10 shows two different results. First, we examine hit-rate over time when new clients are introduced at a constant rate. Initially, new clients bring up the hit-rate, but eventually the constant arrival rate cannot compensate for the increasing numbers of old clients. Second, Figure 10 shows an estimate of the arrival rate needed to keep hit rate constant as the system ages. An arrival rate above this line improves the average hit rate, while one below allows it to decrease. This "break-even arrival rate" rises steeply over time, too steeply to be realized in practice over more than a short period. That, plus the fact that the overall bandwidth requirement increases in proportion to population size even when hit rate is stable, leads us to conclude that the introduction of new clients cannot compensate for the hit-rate penalty of clients aging in a P2P file-sharing system. 4.5 Model Validation A primary goal of our model was to capture the peculiar characteristics of fetch-at-most-once systems and the importance of new object and client arrivals. While we are confident about many aspects of our model, some of our assumptions cannot be validated against trace data. For example, we assume that client requests are governed by a Zipf distribution and that object arrivals also obey a variant of Zipf's law in terms of where they are placed in the overall popularity distribution. Even though we cannot directly verify these assumptions, we can verify that the observed behavior in our trace is consistent with our model. We validated our model by using it to replicate the object popularity distribution measured in our trace. To do this, we parameterized the model from the trace data to the extent possible and then compared the popularity distributions generated by the model (using simulation) with those observed in the trace. We emphasize that we are not driving the simulation with the detailed trace and simply getting out what we put in. The simulation is driven synthetically from our model, with rate and size parameters set from the average values measured in the trace. We set distributional parameters that cannot be obtained from any trace to the values shown in Table 4. It is not possible to set O (the arrival rate of new objects) with any confidence from our trace data, since our trace can- 4.4 New Clients Cannot Stabilize Performance Because new clients have higher hit rates than old clients, it might be possible for new clients joining a P2P file-sharing system to compensate for the performance loss due to the aging of existing clients. The infusion of new clients may 5 In the limit, when object arrival rate is high enough, cache hit rate goes back to zero: objects arrive so fast that they are displaced by even newer objects before two client requests can be made. client arrival rate (clients/day) 10000 100% % bytes transferred fetch-repeatedly (modeled) 14.0% 11.5% 35.4% miss 80% 60% 40% 20% 0% 86.0% 88.5% 1000 # requests measured 100 fetch-at-most-once (modeled) hit 64.6% 10 1 1 10 100 1000 10000 100000 all objects object rank large objects small objects Figure 12: Bandwidth savings with an ideal proxy cache. This graph shows the byte hit rate for a simulated ideal cache (i.e., infinite capacity and bandwidth). Figure 11: Predicted versus measured object popularity. The popularity curves from our model and the actual trace data match remarkably well. This supports our conjecture that the measured popularity distribution is non-Zipf because of fetch-at-most-once behavior. not measure the worldwide introduction of new objects. For that reason, we leave object arrival rate as a free parameter, adjusting it to obtain as tight a correspondence between the model and measured data as possible. Figure 11 shows the results. With O set to 5,475 new objects per year, the popularity distribution predicted by the model is remarkably close to what we observed. It also clearly deviates from Zipf because of the influence of fetch-at-most-once behavior and object arrivals. The value O = 5, 475 is reasonable; in comparison, the Internet Movie Database tracked approximately 10,606 new objects worldwide during 2002. tools. This section explores an alternative strategy, namely, the exploitation of locality in the file-sharing workload. By locality exploitation, we mean the more effective use of content available within an organization to substantially decrease external bandwidth usage. We begin by using a cache simulation to show the potential for locality exploitation and then explore the benefits of locality-aware P2P file-sharing request routing within an organization such as a university. 5.1 Measuring Locality in the Workload The most common technology for capturing locality in an Internet workload is a proxy cache placed at an organizational border. A proxy guarantees that every object is downloaded into the organization at most once, on the cold miss. Additional requests for a previously downloaded object are then satisfied from the proxy without consuming external bandwidth. Simulating an ideal cache (i.e., infinite capacity and bandwidth) therefore gives us an upper bound on the bandwidth savings of any locality-aware mechanism, because the cache captures and serves all content transferred into the organization. Figure 12 graphs the byte hit rate for an ideal, centralized proxy cache, given our trace as its workload. Over all objects, a proxy cache would result in an external bandwidth savings of 86%. In our UW environment, this implies that 86% of the downloaded bytes already existed on other UWlocal clients at the time they were downloaded from UWexternal clients. It is therefore very clear that substantial untapped locality exists in the Kazaa workload that Kazaa does not exploit. If the university deployed an internal proxy cache for P2P file-sharing content, it would save substantial bandwidth, and therefore money. In practice, IT departments may not wish to support a cache that stores P2P file-sharing content, given the current legal and political problems this could present. For this reason, we explore an alternative to the deployment of a centralized proxy cache: the use of organization-based localityaware mechanisms for reducing external downloads. These schemes favor organization-internal peers whenever possible to serve data, effectively creating a distributed cache from local peers. There are many potential implementations of such a locality-aware architecture, including: 1. Centralized request redirection: instead of deploying a cache, an organization could deploy a redirector at its boundary. The redirector would index the locations of objects on peers within the organization and route internal clients' requests to other inter- 4.6 Summary This section developed a model of P2P file-sharing behavior, with client requests based on an underlying Zipf distribution. Based on this model, our analysis shows that: 1. Fetch-at-most-once client behavior, caused by the immutability of objects in P2P file-sharing systems, leads to a significant deviation from Zipf popularity distributions. 2. As a result, without the introduction of new objects and clients, P2P file-sharing system performance decreases over time (bandwidth demands rise), because client requests "slide down the Zipf curve." 3. The introduction of new objects in P2P file-sharing systems acts as a rejuvenating force that counter-balances the impact of fetch-at-most-once client behavior. 4. Introducing new clients does not have a similar effect, because they cannot counteract the hit rate penalty of client aging, which occurs at the same rate. The next section examines a scheme for reducing the external bandwidth consumption predicted by our model and shown by our measurements. 5. EXPLORING LOCALITY-AWARE REQUEST ROUTING Previous studies have shown that a significant fraction of Internet bandwidth is consumed by Kazaa file-sharing traffic [29]. As a result, many organizations now curb P2P filesharing bandwidth consumption through shaping or filtering % bytes transferred nal peers whenever possible. The redirector should be transparent to the P2P file-sharing protocols. 2. Decentralized request redirection: today's P2P file-sharing systems often employ the use of supernodes, distinguished peers that index content on other peers. Current architectures such as Kazaa are localityunaware, as our data shows. Through the use of topological distance estimation techniques such as GNP [25], IDMaps [13], or King [17], it may be possible to infuse supernodes with locality awareness, resulting in a fully distributed redirection architecture. The following sections use trace-based simulation to assess the potential benefits of these locality-aware mechanisms. 100% 14.0% 11.5% 0.8% busy 19.8% 80% 60% 40% 21.9% 35.4% 0.7% busy 0.7% 26.9% busy cold busy unavailable hit 63.2% 67.9% 37.1% 20% 0% all objects large objects small objects 5.2 Methodology We use trace-based simulation to evaluate a locality-aware scheme in which all requests from clients in the University of Washington are redirected (when possible) to other university peers. Our simulated locality-aware mechanism is ideal, in that it has perfect knowledge about which peers are currently up and which objects each peer is willing to serve. We assume that: (1) all peers have infinite storage capacity, (2) once a peer downloads an object, it makes that object available to other peers when it is up, and (3) each peer can serve at most 12 concurrent downloads, a number chosen to approximate the behavior of many P2P file-sharing systems, including Kazaa and Gnutella. In our model, each peer has a finite upload bandwidth of 500 Kb/s that is shared across all of that peer's concurrent uploads; each external transfer has a bandwidth of 100 Kb/s. These values approximate the typical values we saw in our trace. However, we verified that the qualitative results and conclusions of our experiments do not differ across a wide range of simulated internal and external bandwidth settings. Unlike a proxy cache, a locality-aware mechanism cannot directly control the availability of content. Instead, it relies on peers to make content available. As a result, if an object exists on only one local peer, the object becomes unavailable whenever that peer is disconnected. Effectiveness is therefore limited by object availability. Given the crucial importance of availability, we provide a lower bound on the benefits of locality awareness by making an extremely conservative assumption, namely, that peers are available as servers only during periods in which our trace shows them to be actively transferring objects. In reality, peers will be much more available than we simulate, so a locality-aware architecture should be able to achieve at least the performance benefits that we show below. The rest of this section explores whether a locality-aware scheme using internal peers can realize object availability, and therefore external bandwidth savings, competitive with a dedicated, centralized proxy cache. Figure 13: Bandwidth savings with ideal locality-aware request redirection. This graph accounts for all bytes transferred to peers when using an ideal locality-aware scheme. A request hits if an available local host can serve it. Otherwise, it misses and downloads from an external host. Misses may be cold misses, busy misses (the object exists locally but all available hosts with it are busy), or unavailable misses (the object exists locally but no hosts with it are available). 1000 byte hit rate 1.2 1 0.8 # requests 10 0.6 0.4 0.2 1 1 10 100 1000 10000 0 100000 # requests 100 object # (sorted by popularity) Figure 14: Correlating byte hit rate with popularity (large objects). Hit rate and popularity appear to be related: popular objects are "naturally" replicated, leading to a high byte hit rate. external traffic, respectively. These savings occur despite our extremely conservative estimates of peer availability. Cold misses, which result in unavoidable external bandwidth consumption, account for 12% of large object bytes and 35% of small object bytes. Busy misses, in which the object exists on an available internal peer, but that peer is serving its maximum number of concurrent transfers, are insignificant. For both large and small objects, a substantial number of miss bytes are attributable to unavailable objects, i.e., the objects exist on local peers that are unavailable when a request occurs. If the locality-aware mechanism could avoid these misses using techniques like data replication or placement, it would reduce the overall miss rate by 62% for large objects and 43% for small objects. 5.3 Benefits of Locality-Awareness Figure 13 shows the external bandwidth savings that an ideal locality-aware scheme can obtain. The chart accounts for all bytes downloaded by internal peers, broken down according to whether they were hits (successfully redirected to internal peers) or misses (requiring external bandwidth). The chart shows that locality awareness obtains an impressive 68% byte hit rate for large objects and a 37% byte hit rate for small objects, saving about 22.3TB and 1.5TB of 5.4 Accounting for Hits and Misses To understand which objects account for these unavailability misses, we first explored the relationship between the hit rate an object experiences and that object's popularity. Figure 14 shows the byte hit rate that each large object experiences, plotted on the same graph as object popularity; we see similar results for small objects. Popularity is related to byte hit rate: the more popular an object, the more that object is "naturally" replicated in a P2P file-sharing system. ...

Find millions of documents on Course Hero - Study Guides, Lecture Notes, Reference Materials, Practice Exams and more. Course Hero has millions of course specific materials providing students with the best way to expand their education.

Below is a small sample set of documents:

Allan Hancock College - CS - 501
Chord: A Scalable Peer-to-peer Lookup Service for Internet ApplicationsIon Stoica Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan ,MIT Laboratory for Computer Science chord@lcs.mit.edu http:/pdos.lcs.mit.edu/chord/AbstractA fundament
Allan Hancock College - CS - 501
Mesh-Based Content Routing using XMLAlex C. Snoeren, Kenneth Conley, and David K. GiffordMIT Laboratory for Computer Science Cambridge, MA 02139cfw_snoeren, conley, gifford@lcs.mit.edu AbstractWe have developed a new approach for reliably multicasting
Allan Hancock College - CS - 501
| | sIyy@v'4Iy6e4 #ssj# y Dy4d4ys#hs @sy4bs44 #ss#yRy4y | sy## 4mmos44 x y4 4m6 vsb#mmsv4 ' 'Ico#cfw_ssEs#yDs#es4y'y|s2cm | cfw_ s#@# s4ymymyssxsy cfw_ | 'h#mbRsym'yv!4s@y | | @msjs'mmp#y '@syyo | 4h#ysymymycmm#y c#y|#@# pcfw_s'mmp# yDy |
Allan Hancock College - CS - 501
A Framework for Scalable Global IP-Anycast (GIA)Dina Katabi, John WroclawskiMIT Laboratory for Computer Science 545 Technology Square Cambridge, MA 02139 cfw_dina,jtw@lcs.mit.eduABSTRACTThis paper proposes GIA, a scalable architecture for global IPany
Allan Hancock College - CS - 501
Active Names: Flexible Location and Transport of Wide-Area ResourcesAmin Vahdat Michael Dahlin Department of Computer Science Department of Computer Science Duke University University of Texas, Austin Thomas Anderson Amit Aggarwal Department of Computer
Allan Hancock College - CS - 501
Design and Evaluation of a Continuous Consistency Model for Replicated Services Haifeng Yu Amin Vahdatfyhf, vahdatg@cs.duke.edu http:/www.cs.duke.edu/fyhf, vahdatgAbstractThe tradeoffs between consistency, performance, and availability are well unders
Allan Hancock College - CS - 501
Network Working Group R. DanielRequest for Comments: 2168 Los Alamos National LaboratoryCategory: Experimental M. Mealling Network Solutions, Inc. June 1997 Resolution of Uniform Resource Identifiers using the Domain Name SystemStatus of this Memo
Allan Hancock College - CS - 501
Congestion Avoidance and ControlVan JacobsonLawrence Berkeley LaboratoryMichael J. KarelsUniversity of California at BerkeleyNovember, 1988IntroductionComputer networks have experienced an explosive growth over the past few years and with that grow
Allan Hancock College - CS - 501
Distributed Computing SeminarLecture 5: Graph Algorithms &amp; PageRankChristophe Bisciglia, Aaron Kimball, &amp; Sierra Michels-Slettvet Summer 2007Except as otherwise noted, the content of this presentation is 2007 Google Inc. and licensed under the Creative
Allan Hancock College - CS - 501
Distributed Computing SeminarLecture 2: MapReduce Theory and ImplementationChristophe Bisciglia, Aaron Kimball, &amp; Sierra Michels-SlettvetSummer 2007Except as otherwise noted, the contents of this presentation are Copyright 2007 University of Washingto
Allan Hancock College - CS - 402
MapReduce: Simplied Data Processing on Large ClustersJeffrey Dean and Sanjay Ghemawatjeff@google.com, sanjay@google.comGoogle, Inc.AbstractMapReduce is a programming model and an associated implementation for processing and generating large data sets
Allan Hancock College - CS - 101
Introduction to Algorithms, Second EditionThomas H. Cormen Charles E. Leiserson Ronald L. Rivest Clifford Stein The MIT Press Cambridge , Massachusetts London, England McGraw-Hill Book Company Boston Burr Ridge , IL Dubuque , IA Madison , WI New York San
Allan Hancock College - CS - 501
Dynamo: Amazons Highly Available Key-value StoreGiuseppe DeCandia, Deniz Hastorun, Madan Jampani, Gunavardhan Kakulapati, Avinash Lakshman, Alex Pilchin, Swaminathan Sivasubramanian, Peter Vosshall and Werner VogelsAmazon.comABSTRACTReliability at mas
Allan Hancock College - CS - 101
Notes on Using gdb, the GNU Debugger Benjamin ZornUsing a symbolic debugger will make writing and debugging the programs you will write in this course much easier. The best debugger to use with the version of C+ we are using in this class is gdb, the GNU
Allan Hancock College - CS - 501
The Chubby lock service for loosely-coupled distributed systemsMike Burrows, Google Inc.AbstractWe describe our experiences with the Chubby lock service, which is intended to provide coarse-grained locking as well as reliable (though low-volume) storag
Grand Valley State - CS - 656
Distributed Deadlock DetectionK. MANI CHANDY and JAYADEV MISRA University of Texas and LAURA M. HAASIBMDistributed deadlock models are presented for resource and communication deadlocks. Simple distributed algorithms for detection of these deadlocks ar
Iowa State - UI - 181
I. refinement A. definition- REFINEMENT GIVES A STRONGER SPECIFICATIONA specification S1 is refined by S2 (S1 &lt;= S2)if and only if every correct implementation of S2is a correct implementation of S1.A refinement is &quot;plug compatible&quot;; this includes
Iowa State - UI - 181
I. Specifications (Cohen's chapter 4) A. what is programming? (omit)- EQUATION WITH UNKNOWN SPECIFIEDconsider x*x + b*x + c = 0could solve for x, b, or c!x: x*x + b*x + c = 0means solve for x in.-- WHAT IS PROGRAMMING?Programming is solving t
Iowa State - UI - 181
I. developing loops, an introduction (Cohen's chapter 8) A. before and after 1. other forms of postconditions 2. establishing the invariant B. steps- INVARIANCE THEOREM FOR LOOPS cfw_P do B -&gt; S od cfw_P /\ !B &lt;= cfw_P /\ B S cfw_P (Invariance)
Iowa State - UI - 181
From leavens@cs.uiowa.edu Mon Feb 12 16:03:54 2001MIME-Version: 1.0Date: Mon, 12 Feb 2001 16:04:24 -0600From: &quot;Gary T. Leavens&quot; &lt;leavens@cs.uiowa.edu&gt;Reply-To: leavens@cs.uiowa.eduX-Accept-Language: en,de,frTo: Kevin Lillis &lt;klillis@saunix.sau.edu&gt;
CSU Fullerton - C - 340
10 flagrant grammar mistakes that make you look stupidVersion 1.0 May 23, 2006By Jody Gilbert These days, we tend to communicate via the keyboard as much as we do verbally. Often, we're in a hurry, quickly dashing off e-mails with typos, grammatical sho
Iowa State - COP - 4020
I. Relational Programming (Ch 9) A. Motivation- MOTIVATIONS FOR RELATIONAL PROGRAMMING - 1. programming is difficult, expensive Why is programming so hard? What approaches might solve this problem? What are the steps in building a computer system
Western Washington - BIOL - 345
Bacteria Are Beautifulby Dianne K. NewmanAbove: The widespread use of antibacterial chemicals in common household products could be doing more harm than good (Annals of Internal Medi-cine, 2004, 140, 321329).Below: In contrast to the bacteriophobia of
Iowa State - COP - 4020
COP 4020 Lecture -*- Outline -*-* Relational Programming (Ch 9) Based on Peter van Roy and Seif Haridi's book, &quot;Concepts, Techniques, and Models of Computer Programming&quot; (MIT Press, 2004), where all references that are not otherwise attributed are fo
Iowa State - COP - 4020
COP 4020 Lecture -*- Outline -*-* Message-Passing Concurrency (Ch 5) Based on Peter van Roy and Seif Haridi's book, &quot;Concepts, Techniques, and Models of Computer Programming&quot; (MIT Press, 2004), where all references that are not otherwise attributed a
Iowa State - COP - 4020
COP 4020 Lecture -*- Outline -*-* Declarative Computation Model (Ch 2) Based on Peter van Roy and Seif Haridi's book, &quot;Concepts, Techniques, and Models of Computer Programming&quot; (MIT Press, 2004), where all references that are not otherwise attributed
Iowa State - COP - 4020
COP 4020 Lecture -*- Outline -*-* The Data-Driven Concurrent Model (Ch 4) Based on Peter van Roy and Seif Haridi's book, &quot;Concepts, Techniques, and Models of Computer Programming&quot; (MIT Press, 2004), where all references that are not otherwise attribu
Iowa State - COP - 4020
COP 4020 Lecture -*- Outline -*-* Introduction to Programming Concepts (Chapter 1) Based on Peter van Roy and Seif Haridi's book, &quot;Concepts, Techniques, and Models of Computer Programming&quot; (MIT Press, 2004), where all references that are not otherwis
Iowa State - CPRE - 310
Transparencies to accompany Rosen, Discrete Mathematics and Its ApplicationsSection 9.4Section 9.4 Connectivity We extent the notion of a path to undirected graphs. An informal definition (see the text for a formal definition): There is a path v0, v1, v
Iowa State - CPRE - 310
Transparencies to accompany Rosen, Discrete Mathematics and Its ApplicationsSection 9.3Section 9.3 Representing Graphs and Graph Isomorphism We wish to be able to determine when two graphs are identical except perhaps for the labeling of the vertices. W
Iowa State - CPRE - 310
Transparencies to accompany Rosen, Discrete Mathematics and Its ApplicationsSection 9.2Section 9.2 Graph Terminology and Special Types of Graphs Undirected Graphs Definition: Two vertices u, v in V are adjacent or neighbors if there is an edge e between
Iowa State - CPRE - 310
Transparencies to accompany Rosen, Discrete Mathematics and Its ApplicationsSection 7.4Section 7.4 Generating Functions Generating functions are useful for manipulating sequences and therefore for solving counting problems. _ Definition: Let S = cfw_a0,
Iowa State - CPRE - 310
Transparencies to accompany Rosen, Discrete Mathematics and Its ApplicationsSection 9.1Section 9.1 Graphs and Graph Models Undirected Graphs A simple graph (V,E) consists of vertices, V, and edges, E, connecting distinct elements of V. - no arrows - no
Iowa State - CPRE - 310
Transparencies to accompany Rosen, Discrete Mathematics and Its ApplicationsSection 7.3Section 7.3 Divide-and-Conquer Algorithms and Recurrence Relations The form: The sequence: cfw_am ,am ,am ,., am ,.0 1 2 kan = an/ m + f (n)_ n = mk for some k. -
Iowa State - CPRE - 310
Transparencies to accompany Rosen, Discrete Mathematics and Its ApplicationsSection 7.2Section 7.2 Solving Linear Recurrence Relations If ag(n) = f (ag(0) ,ag(1) ,., ag(n1) ) find a closed form or an expression for ag(n). Recall: nth degree polynomials
Iowa State - CPRE - 310
Transparencies to accompany Rosen, Discrete Mathematics and Its ApplicationsSection 7.1Section 7.1 Recurrence Relations Definition: Given a sequence cfw_ag(0) ,ag(1) ,ag(2) ,., a recurrence relation (sometimes called a difference equation) is an equatio
Iowa State - CPRE - 310
Transparencies to accompany Rosen, Discrete Mathematics and Its ApplicationsSections 4.1 &amp; 4.2Section 4.1 - Mathematical Induction and Section 4.2 - Strong Induction and Well-Ordering A very special rule of inference! Definition: A set S is well ordered
Iowa State - CPRE - 588
SpecC Modeling GuidelinesAndreas GerstlauerTechnical Report CECS-02-16 (revision of ICS-TR-00-48) April 12, 2002 Center for Embedded Computer Systems University of California, Irvine Irvine, CA 92697-3425, USA (949) 824-8919 gerstl@cecs.uci.edu http:/ww
Dallas - DXA - 081000
Linux Kernel Internals The File Subsystem- Gerlof Langeveld gerlof@ATComputing.nlNijmegen, The NetherlandsVersion: april 20032Linux Kernel Internals - The File SubsystemPrefaceThis document describes how the Linux-kernel keeps track of the administ
Iowa State - CPRE - 588
k &amp; u twsxpv(h pyVhb&quot;rx mpv1hphwehut)dqseqVVr%purh )th sqrvVi s thhq VDVhrequtpxi @h)v x vx)ssqhsx 1fi x&amp; s x y q s i q rQwsvVhVrhrpfphs pVhb pppr ehieqbhVDv bdvxk)ssqhs1fq utx(ybm1hwut Vh%p 1h)1xVgwvs u 1fx Vxrxx iVhkrq equsi tpxx b Vx1if vVus VruvGVsx
Caltech - CH - 111
Supplemental Material can be found at: http:/www.jbc.org/cgi/content/full/M806668200/DC1 THE JOURNAL OF BIOLOGICAL CHEMISTRY VOL. 283, NO. 49, pp. 34129 34140, December 5, 2008 Printed in the U.S.A.Flexibility of Eukaryotic Okazaki Fragment Maturation th
Stanford - ILPUBS - 621
Adaptive Ordering of Pipelined Stream FiltersShivnath Babu Stanford University Rajeev Motwani Stanford University Kamesh Munagala Stanford UniversityItaru Nishizawa Jennifer Widom Hitachi, Ltd. Stanford University cfw_shivnath,rajeev,kamesh,widom@cs.sta
Lewis-Clark - HW - 106
Homework Assignment 3Perform the following conversions (HINT: use the iside cover of the back of your textbook for the relationships . . .): a.) 45.0 kcal to kJ b.) 1.00 g/cm3 to kg/dm3 c.) 9.81 m/s2 to miles/hr2 d.) 2.9979 x 108 m/s to miles/hr e.) 179
Cornell - WEB - 191
Math 191FINAL EXAMFall 2000SHOW ALL WORK. CIRCLE YOUR ANSWERS. CLOSED BOOK. NO CALCULATORS. 1. (25 pts) Let f (x) = xx = ex ln x , x &gt; 0 (a) Compute lim f (x) if it exists. +x0(b) Locate and identify the critical points of f (x) in x &gt; 0. (c) Find th
Cornell - WEB - 191
Math 191FINAL EXAM SOLUTIONSFall 20001. (a) Using l'Hopital's rule, the limit is 1. (b) The only critical point is x = e-1 . (f (x) = (1 + ln x)ex ln x ) (c) The absolute minimum occurs when x = e-1 where the value is e-1/e . There is no absolute maxim
Purdue - LISTS - 20030304
A10K 1 KFITC10K 1KB10K 1KPE10K 1KPE100A-633100PE100A-6331001 01010101 1 1011 1 10 1001 1 10FITC1001K10K10K10KPE1K10KFITC1001K10K11 010K10KPE1001K10K1 K1K1K1KA-633100A-680100A-633100A-6801001 01010
Oakland University - ME - 463
Table Top
Oakland University - ME - 463
Table Middle Level
Oakland University - ME - 463
Table (Bottom Level)
Oakland University - ME - 463
Table Top Legs
Oakland University - ME - 463
Steel Plate
Oakland University - ME - 463
Spring Cover
Oakland University - ME - 463
Spring Top Washer
Oakland University - ME - 463
Split Lock Washer
Oakland University - ME - 463
Pipe Clamp
Oakland University - ME - 463
Bike Pedal Surface
Oakland University - ME - 463
Bike Pedal Crank
Oakland University - ME - 463
Hex Washer Head Screw
Oakland University - ME - 463
Hex Nut
Oakland University - ME - 463
Hex Lock Nut