throbber
Global Deployment of Data Centers
`
`John Dilley, Bruce Maggs,
`Jay Parikh, Harald Prokop,
`Ramesh Sitaraman,
`and Bill Weihl
`Akamai Technologies
`
`Globally Distributed
`Content Delivery
`
`Using more than 12,000 servers in over 1,000 networks,
`Akamai’s distributed content delivery system fights service
`bottlenecks and shutdowns by delivering content from the
`Internet’s edge.
`
`As Web sites become popular,
`
`they’re increasingly vulnerable to
`the flash crowd problem, in which
`request load overwhelms some aspect of
`the site’s infrastructure, such as the front-
`end Web server, network equipment, or
`bandwidth, or (in more advanced sites) the
`back-end transaction-processing infra-
`structure. The resulting overload can crash
`a site or cause unusually high response
`times — both of which can translate into
`lost revenue or negative customer atti-
`tudes toward a product or brand.
`Our company, Akamai Technologies,
`evolved out of an MIT research effort
`aimed at solving the flash crowd problem
`(www.akamai.com/en/html/about/history.
`html). Our approach is based on the obser-
`vation that serving Web content from a
`single location can present serious prob-
`lems for site scalability, reliability, and
`performance. We thus devised a system to
`serve requests from a variable number of
`surrogate origin servers at the network
`
`edge.1 By caching content at the Internet’s
`edge, we reduce demand on the site’s
`infrastructure and provide faster service
`for users, whose content comes from near-
`by servers.
`When we launched the Akamai system
`in early 1999, it initially delivered only
`Web objects (images and documents). It
`has since evolved to distribute dynami-
`cally generated pages and even applica-
`tions to the network’s edge, providing
`customers with on-demand bandwidth
`and computing capacity. This reduces
`content providers’ infrastructure require-
`ments, and lets them deploy or expand
`services more quickly and easily. Our
`current system has more than 12,000
`servers in over 1,000 networks. Operat-
`ing servers in many locations poses
`many technical challenges, including
`how to direct user requests to appropri-
`ate servers, how to handle failures, how
`to monitor and control the servers, and
`how to update software across the sys-
`
`50
`
`SEPTEMBER • OCTOBER 2002
`
`http://computer.org/internet/
`
`1089-7801/02/$17.00 ©2002 IEEE
`
`IEEE INTERNET COMPUTING
`
`Authorized licensed use limited to: Kirkland & Ellis LLP. Downloaded on August 12,2024 at 16:07:31 UTC from IEEE Xplore. Restrictions apply.
`
`Genius Sports Ex. 1023
`p. 1
`
`

`

`Content Delivery
`
`tem. Here, we describe our system and how we’ve
`managed these challenges.
`
`Existing Approaches
`Researchers have explored several approaches to
`delivering content in a scalable and reliable way.
`Local clustering can improve fault-tolerance and
`scalability. If the data center or the ISP providing
`connectivity fails, however, the entire cluster is
`inaccessible to users. To solve this problem, sites
`can offer mirroring (deploying clusters in a few
`locations) and multihoming (using multiple ISPs
`to connect to the Internet). Clustering, mirroring,
`and multihoming are common approaches for sites
`with stringent reliability and scalability needs.
`These methods do not solve all connectivity prob-
`lems, however, and they do introduce new ones:
`
`I It is difficult to scale clusters to thousands of
`servers.
`I With multihoming, the underlying network
`protocols — in particular the border gateway
`protocol (BGP)2 — do not converge quickly to
`new routes when connections fail.
`I Mirroring requires synchronizing the site
`among the mirrors, which can be difficult.
`
`In all three cases, excess capacity is required: With
`clustering, there must be enough servers at each
`location to handle peak loads (which can be an
`order of magnitude above average loads); with
`multihoming, each connection must be able to
`carry all the traffic; and with mirroring, each mir-
`ror must be able to carry the entire load. Each of
`these solutions thus entails considerable cost,
`which could more than double a site’s initial infra-
`structure expense and ongoing operation costs.
`The Internet is a complex fabric of networks.
`Congestion and failures occur at many places,
`including
`
`I the “first mile” (which is partially addressed by
`multihoming the origin server),
`I the backbones,
`I peering points between network service
`providers, and
`I the “last mile” to the user.
`
`Deploying independent proxy caches throughout
`the Internet can address some of these bottlenecks.
`Transit ISPs and end-user organizations have
`installed proxy caches to reduce latency and band-
`width requirements by serving users directly from
`a previously requested content cache. However,
`
`Web proxy cache hit rates tend to be low — 25 to
`40 percent — in part because Web sites are using
`more dynamic content. As a result, proxy caches
`have had limited success in improving Web sites’
`scalability, reliability, and performance.
`Akamai works closely with content providers to
`develop features that improve service for their Web
`sites and to deliver more content from the network
`edge. For example, features such as authorization,
`control over content invalidation, and dynamic con-
`tent assembly let us deliver content that would oth-
`erwise be uncacheable. Although ISP caches could
`include similar features, to be useful they would
`have to standardize the features and their imple-
`mentation across most cache vendors and deploy-
`ments. Until such a feature is widely deployed, con-
`tent providers have little incentive to use it. Because
`Akamai controls both its network and software, we
`can develop and deploy features quickly.
`
`Akamai’s Network Infrastructure
`Akamai’s infrastructure handles flash crowds by
`allocating more servers to sites experiencing high
`load, while serving all clients from nearby servers.
`The system directs client requests to the nearest
`available server likely to have the requested con-
`tent. It determines this as follows:
`
`I Nearest is a function of network topology and
`dynamic link characteristics: A server with a
`lower round-trip time is considered nearer than
`one with a higher round-trip time. Likewise, a
`server with low packet loss to the client is near-
`er than one with high packet loss.
`I Available is a function of load and network
`bandwidth: A server carrying too much load or
`a data center serving near its bandwidth capac-
`ity is unavailable to serve more clients.
`I Likely is a function of which servers carry the
`content for each customer in a data center: If
`all servers served all the content — by round-
`robin DNS, for example — then the servers’ disk
`and memory resources would be consumed by
`the most popular set of objects.
`
`In the latter case, an Akamai site might hold a
`dozen or more servers within any data center; the
`system distributes content to the minimum num-
`ber of servers at each site to maximize system
`resources within the site.
`
`Automatic Network Control
`The direction of requests to content servers is
`referred to as mapping. Akamai’s mapping tech-
`
`IEEE INTERNET COMPUTING
`
`http://computer.org/internet/
`
`SEPTEMBER • OCTOBER 2002
`
`51
`
`Authorized licensed use limited to: Kirkland & Ellis LLP. Downloaded on August 12,2024 at 16:07:31 UTC from IEEE Xplore. Restrictions apply.
`
`Genius Sports Ex. 1023
`p. 2
`
`

`

`Global Deployment of Data Centers
`
`Content provider
`
`Internet
`
`4
`
`Top-level DNS
`
`1
`
`2
`
`3
`
`User
`Figure 1. Client HTTP content request. Once DNS resolves the edge
`server’s name (steps 1 and 2), the client request is issued to the edge
`server (step 3), which then requests content (if necessary) from the
`content provider’s server, satisfies the request, and logs its completion.
`
`nology uses a dynamic, fault-tolerant DNS system.
`The mapping system resolves a hostname based on
`the service requested, user location, and network
`status; it also uses DNS for network load-balancing.
`The “DNS Resolution” sidebar describes the stan-
`dard DNS resolution process for an Akamai edge
`server name, corresponding to steps 1 and 2 in Fig-
`ure 1. In step 3, the client makes an HTTP request
`to the edge server, which then retrieves the content
`by requesting it from either another Akamai server
`or the content provider’s server (step 4). The server
`then returns the requested information to the client
`and logs the request’s completion.
`Akamai name servers resolve host names to IP
`addresses by mapping requests to a server using
`some or all of the following criteria.
`
`I Service requested. The server must be able to
`satisfy the request. The name server must not
`direct a request for a QuickTime media stream
`to a server that handles only HTTP.
`I Server health. The content server must be up
`and running without errors.
`I Server load. The server must operate under a
`certain load threshold and thus be available for
`additional requests. The load measure typical-
`ly includes the target server’s CPU, disk, and
`network utilization.
`I Network condition. The client must be able to
`reach the server with minimal packet loss, and
`the server’s data center must have sufficient
`bandwidth to handle additional network
`requests.
`I Client location. The server must be close to the
`client in terms of measures such as network
`
`round trip time.
`I Content requested. The server must be likely to
`have the content, according to Akamai’s con-
`sistent hashing algorithm.
`
`Internet routers use BGP messages to exchange net-
`work reachability information among BGP systems
`and compute the best routing path among the Inter-
`net’s autonomous systems.2 Akamai agents com-
`municate with certain border routers as peers; the
`mapping system uses the resulting BGP information
`to determine network topology. The number of hops
`between autonomous systems is a coarse but useful
`measure of network distance. The mapping system
`combines this information with live network statis-
`tics — such as traceroute data3 — to provide a
`detailed, dynamic view of network structure and
`quality measures for different mappings. Imple-
`menting this mapping system on a global scale
`involves several challenges, as we discuss later.
`
`Network Monitoring
`Our DNS-based load balancing system continuous-
`ly monitors the state of services, and their servers
`and networks. Each of the content servers — for the
`HTTP, HTTPS, and streaming protocols — frequent-
`ly reports its load to a monitoring application,
`which aggregates and publishes load reports to the
`local DNS server. That DNS server then determines
`which IP addresses (two or more) to return when
`resolving DNS names. If a server’s load exceeds a
`certain threshold, the DNS server simultaneously
`assigns some of the server’s allocated content to
`additional servers. If the load exceeds another
`threshold, the server’s IP address is no longer avail-
`able to clients. The server can thus shed a fraction
`of its load when it is experiencing moderate to high
`load. The monitoring system also transmits data
`center load to the top-level DNS resolver to direct
`traffic away from overloaded data centers.
`To monitor the entire system’s health end-to-end,
`Akamai uses agents that simulate end-user behavior
`by downloading Web objects and measuring their
`failure rates and download times. Akamai uses this
`information to monitor overall system performance
`and to automatically detect and suspend problem-
`atic data centers or servers.
`In addition to load-balancing metrics, Akamai’s
`monitoring system provides centralized reporting
`on content service for each customer and content
`server. This information is the basis of Akamai’s
`real-time customer traffic analyzer application.
`The information is useful for network operational
`and diagnostic purposes, and provides real-time
`
`52
`
`SEPTEMBER • OCTOBER 2002
`
`http://computer.org/internet/
`
`IEEE INTERNET COMPUTING
`
`Authorized licensed use limited to: Kirkland & Ellis LLP. Downloaded on August 12,2024 at 16:07:31 UTC from IEEE Xplore. Restrictions apply.
`
`Genius Sports Ex. 1023
`p. 3
`
`

`

`DNS Resolution
`
`Content Delivery
`
`Akamai edge servers are located using a
`DNS name, such as a7.g.akamai.net.A DNS
`resolver resolves this name in the standard
`manner, from right to left, querying DNS
`name servers until IP addresses for the host
`a7 in the domain .g.akamai.net are returned.
`Each name resolution associates a “time
`to live” (TTL) with the resolution, which
`proceeds as follows:
`
`1. The resolver chooses a root name
`server and asks it to resolve the name
`a7.g.akamai.net.The root name server
`does not itself resolve the name;instead,
`it sends a domain delegation response
`with IP addresses of the name servers
`that handle .net domain requests.
`2. The resolver then queries the .net
`
`name servers, which return a domain
`delegation (NS records) for .akamai.net.
`These are the Akamai top-level name
`servers (top-level DNS in Figure 1).
`3. Next,the resolver queries an Akamai TL
`DNS server, which returns a domain
`delegation for .g.akamai.net to low-level
`Akamai name servers (low-level DNS in
`Figure 1) with a TTL of about one hour.
`The low-level name servers selected
`correspond to (and are in the same
`location as) the available edge servers
`that are closest to the requesting user.
`4. Finally, the resolver queries an Akamai
`low-level DNS server,which returns the
`IP addresses of servers available to satisfy
`the request.This resolution has a short
`TTL (several seconds to one minute),
`
`which encourages frequent refreshes of
`the DNS resolution and allows Akamai
`to direct requests to other locations or
`servers as conditions change.
`
`A resolver is preconfigured to know the
`Internet root name servers’ IP addresses,
`which are the starting points for a DNS
`resolution if the resolver lacks required
`information in its cache. If the resolver has
`valid IP addresses of the .net name server, it
`skips step 1; if it has cached IP addresses of
`the g.akamai.net name servers, it skips
`steps 1 through 3.
`The resolution process is the same for
`any DNS name. Akamai name resolution
`differs, however, in how its name servers
`behave.
`
`access to an array of service parameters organized
`as a database. The application’s SQL-like interface
`supports ad hoc queries against live and historic
`data, which lets the operations staff locate the
`busiest customer, the server using the most mem-
`ory or disk space, or the switch or data center clos-
`est to its bandwidth limit.
`
`Network Services
`Akamai servers deliver several types of content:
`static and dynamic content over HTTP and HTTPS,
`and streaming audio and video over the three
`streaming protocols described below.
`
`Static Content
`Static Web content consists of HTML pages,
`embedded images, executables, PDF documents,
`and so on. Akamai’s content servers use content
`type to apply lifetime and other features to static
`documents, which have varying cacheability and
`can have special service requirements.
`Lifetimes, for example, can vary from zero sec-
`onds, where the edge server validates the object
`with the origin server on each request, to infinite,
`where the content server never checks the object’s
`consistency. Lifetime values for Akamai edge
`servers can also differ from downstream proxy
`servers and end users.
`Special features might include the ability to
`serve secure content over the HTTPS protocol, sup-
`port alternate content and transfer encodings,
`handle cookies, and so on. Akamai controls fea-
`
`tures on behalf of each customer using a metada-
`ta facility that describes which features to apply
`by customer, content type, and other criteria.
`
`Dynamic Content
`Today’s Web sites depend heavily on dynamic con-
`tent generation to offer end users rich and capti-
`vating material. As we noted earlier, however, proxy
`caches cannot typically cache dynamic content. A
`proxy cache could not, for example, handle a large-
`ly static Web page if it contained an advertisement
`that changed according to each user’s profile.
`To deal with this, we use Edge Side Includes
`technology
`(www.esi.org), which assembles
`dynamic content on edge servers. ESI is similar to
`server-side include languages, but adds fault-tol-
`erance features (for when the origin server is
`unavailable) and
`integrates an Extensible
`Stylesheet Language Transformation (XSLT) engine
`to process XML data. Using ESI lets a content
`provider break a dynamic page into fragments with
`independent cacheability properties. These frag-
`ments are maintained as separate objects in the
`edge server’s cache and are dynamically assembled
`into Web pages in response to user requests.
`The ability to assemble dynamic pages from
`individual page fragments means that the server
`must fetch only noncacheable or expired fragments
`from the origin Web site; this reduces both the load
`on the site’s content generation infrastructure and
`the data that the edge server must retrieve from the
`central origin server. ESI reduced bandwidth
`
`IEEE INTERNET COMPUTING
`
`http://computer.org/internet/
`
`SEPTEMBER • OCTOBER 2002
`
`53
`
`Authorized licensed use limited to: Kirkland & Ellis LLP. Downloaded on August 12,2024 at 16:07:31 UTC from IEEE Xplore. Restrictions apply.
`
`Genius Sports Ex. 1023
`p. 4
`
`

`

`Global Deployment of Data Centers
`
`requirements for dynamic content by 95 to 99 per-
`cent across a range of dynamic sites we studied,
`including portals and financial sites. The resulting
`reduction in central infrastructure offers content
`providers significant savings.
`
`Streaming Media
`Akamai’s streaming network supports live and on-
`demand media in the three major formats —
`Microsoft Windows Media, Real, and Apple’s
`QuickTime. While building a streaming delivery
`network presents some technical issues that are
`similar to those of a Web delivery network, there
`are also significant additional challenges.
`First, the content provider typically captures and
`encodes a live stream and sends it to an entry-point
`server in the Akamai network. Given our principle
`of removing all single points of failure, we must
`have mechanisms that will react quickly to a failed
`entry-point server. Specifically, another entry-point
`server must pick up the live stream quickly enough
`that end users detect no interruption in the stream.
`The stream is delivered from the entry-point serv-
`er to multiple edge servers, which in turn serve the
`content to end users. Media packet delivery from the
`entry-point to the edge servers must be resilient to
`network failures and packet loss, and thus the entry
`point server must route packet flows around con-
`gested and failed links to reach the edge server. Fur-
`ther, the entry point and edge servers must deliver
`packets without significant delay or jitter because a
`late or out-of-order packet is useless in the playback.
`When necessary, Akamai uses information dispersal
`techniques that let the entry point server send data
`on multiple redundant paths, which lets the edge
`server construct a clean copy of the stream even
`when some paths are down or lossy.
`Typically, a content provider uploads an on-
`demand clip into an Akamai content storage facil-
`ity. We distribute the storage facility over many
`data centers and automatically replicate the
`uploaded clip to a subset of the centers. An edge
`server that receives a stream request downloads
`the content from its optimal storage location and
`caches it locally while serving the request.
`
`Technical Challenges
`Constructing a global network poses many non-
`technical challenges, including deploying network
`equipment and server hardware, establishing good
`working relationships with network providers,
`controlling operational expenses, and acquiring
`and supporting customers. While these challenges
`are significant, our focus here is on challenges
`
`related to designing, building, and operating the
`system itself.
`
`System Scalability
`Akamai’s network must scale to support many
`geographically distributed servers, and many cus-
`tomers with differing needs. This presents the fol-
`lowing challenges.
`
`I Monitoring and controlling tens of thousands
`of widely distributed servers, while keeping
`monitoring bandwidth to a minimum.
`I Monitoring network conditions across and
`between thousands of locations, aggregating that
`information, and using it to generate new maps
`every few seconds. Success here depends on min-
`imizing the overhead added to DNS to avoid long
`DNS lookup times. This lets us perform the cal-
`culations required to identify the optimal server
`off-line, rather than making the user wait.
`I Dealing gracefully with incomplete and out-of-
`date information. This requires careful design
`and iterative algorithm tuning.
`I Reacting quickly to changing network condi-
`tions and changing workloads.
`I Measuring Internet conditions at a fine enough
`granularity to attain high-probability estimates
`of end-user performance.
`I Managing, provisioning, and solving prob-
`lems for numerous customers with varying
`needs, varying workloads, and varying
`amounts of content.
`I Isolating customers so they cannot negatively
`affect each other.
`I Ensuring data integrity over many terabytes of
`storage across the network. Because low-level
`(file system or disk) checks are inadequate to
`protect against possible errors — including
`those caused by operators and software bugs —
`we also perform end-to-end checks.
`I Collecting logs with information about user
`requests, processing these logs (for billing), and
`delivering accurate, timely billing information
`to customers.
`
`To meet the challenges of monitoring and control-
`ling content servers, Akamai developed a distrib-
`uted monitoring service that is resilient to tempo-
`rary loss of information. To solve problems for
`customers, Akamai has customer-focused teams
`that diagnose problems and provide billing services.
`
`System Reliability
`A distributed system offers many opportunities for
`
`54
`
`SEPTEMBER • OCTOBER 2002
`
`http://computer.org/internet/
`
`IEEE INTERNET COMPUTING
`
`Authorized licensed use limited to: Kirkland & Ellis LLP. Downloaded on August 12,2024 at 16:07:31 UTC from IEEE Xplore. Restrictions apply.
`
`Genius Sports Ex. 1023
`p. 5
`
`

`

`Content Delivery
`
`fault-tolerance, but it also introduces many com-
`ponents that could fail. This is partly a problem of
`scale: System failures must be detected and cor-
`rected across multiple software platforms. It’s also
`inevitable that computer hardware will age, partic-
`ularly disks and other moving parts. As a large net-
`work’s equipment ages, a fraction of the devices
`will fail each month. Network operations staff must
`detect failure reliably and remove units from ser-
`vice quickly so they can be shipped to a warehouse
`and perhaps repaired and returned to service.
`Akamai’s monitoring and mapping software
`ensures that server or network failures do not affect
`end users, and the DNS system detects failures
`quickly and immediately hands out new IP address-
`es. For customers still using cached DNS answers,
`two mechanisms help prevent denial of service: the
`DNS resolution can return multiple IP addresses, so
`that the client can try another address; or a live
`server at the site can assume the failed server’s IP
`address. To prevent problems when network fail-
`ures make sites unreachable (due to router and
`switch problems, for example), the top-level (TL)
`DNS will identify local DNS servers at different sites
`to ensure that clients can reach a live DNS server.
`Again, to prevent outages, we must carefully
`avoid single points of failure throughout the sys-
`tem. Our edge servers provide massive replication
`for content delivery and DNS request processing.
`We also avoid single failure points by replicating
`monitoring and control mechanisms.
`Finally, we must detect and repair software
`flaws. A key challenge in Web content service is
`that client requests and server responses are not
`static — new request and response headers regu-
`larly appear as vendors enhance their browsers
`and servers, and edge servers must interpret these
`changes correctly and efficiently. Because such
`enhancements can come at any time, it’s infeasi-
`ble to test new versions on all relevant browser
`and content-server versions; testing content serv-
`er features with the top browser and content serv-
`er configurations alone creates a very complex
`testing matrix. To address this challenge, we cre-
`ated a test tool that directs a copy of a live serv-
`er’s traffic to a test version of our software with-
`out affecting content service. This real-world
`traffic enables us to find problems before software
`is deployed to the live network.
`
`Software Deployment
`and Platform Management
`In addition to expanding the network’s size and
`scope, software must evolve with new features for
`
`customers, improved performance, and better
`operational and monitoring capabilities. To meet
`this challenge, we must deploy high-quality soft-
`ware to servers on many networks, sometimes
`quickly to accommodate a rapid time-to-market
`business model.
`We cannot upgrade software on the entire net-
`work atomically. If nothing else, prudence dictates
`that we deploy new network software in stages so
`that we can detect problems before they have sig-
`nificant impact. Also, it’s unlikely that all edge
`servers (or even all networks) will be available at
`the same time. Inevitably, we’ll miss some servers
`and have to update them at a later time. As a
`result, it’s more the rule than the exception to have
`two versions of a software component live on the
`network at the same time. Given this, we must
`write components so that different versions can
`coexist and carefully manage changes to compo-
`nent interfaces. Network operations must contin-
`ually monitor the network and suspend any incor-
`rectly configured servers.
`The servers in the Akamai network run on
`Linux and Windows operating systems. Operating
`multiple OS platforms and services requires a
`monitoring platform and tools that run across
`those platforms and have access to servers’ service
`delivery parameters. This information is required
`for load balancing (local and global) as well as to
`support problem diagnosis for operations and cus-
`tomer care. Finally, running multiple platforms
`and applications requires expertise in all support-
`ed platforms and servers.
`
`Content Visibility and Control
`Akamai’s network distributes and serves content
`for providers, who must retain control over their
`content as we serve it at the edge, and see real-time
`information about what content is served to whom
`and when. Providing this visibility and content
`control offers challenges in cache consistency, life-
`time and integrity control, and several other areas.
`
`Cache consistency. When objects that the edge
`servers deliver are cacheable, we must address the
`consistency of cached content; when they are un-
`cacheable, high-performance delivery is a challenge.
`To address cacheable-object consistency, content
`providers often use established techniques, such as
`applying a “time to live” (TTL) to objects. Some
`objects might be cacheable forever, or at least until
`they are explicitly removed by a cache control util-
`ity (for more on this, see the “Lifetime Control” sec-
`tion). Another approach is to use a different URL
`
`IEEE INTERNET COMPUTING
`
`http://computer.org/internet/
`
`SEPTEMBER • OCTOBER 2002
`
`55
`
`Authorized licensed use limited to: Kirkland & Ellis LLP. Downloaded on August 12,2024 at 16:07:31 UTC from IEEE Xplore. Restrictions apply.
`
`Genius Sports Ex. 1023
`p. 6
`
`

`

`Global Deployment of Data Centers
`
`Related Work in Distributed and Fault-Tolerant Systems
`
`Akamai system technology builds on years
`of research and development in distributed
`and fault-tolerant systems. Many other parts
`of the Internet — such as the network
`routing fabric, the DNS, email, and the Web
`itself — rely on some communication and
`coordination among decentralized asyn-
`chronous components. In contrast, the Aka-
`mai system uses logically centralized (but
`distributed and replicated) administration
`and control to map requests to servers and
`to manage the entire system. Other sys-
`tems also use logically centralized control.
`The Autonet,1 for example, uses a central-
`ized algorithm to recompute and distribute
`routing tables when the network topology
`changes. In contrast to systems like the
`Autonet, which recomputes routes only in
`response to failures and component addi-
`tions, the Akamai system remaps requests
`continuously based on service health and
`load, and the network connection quality
`among components and between compo-
`nents and end users.
`
`Web-based Caching
`Distributed systems research also has a long
`history of distributed data systems work on
`databases,2 file systems,3 and caches.4 The
`Web offers two significant advantages here:
`
`data is primarily read-only, and the users are
`typically people,which means they are more
`tolerant of data inconsistencies than pro-
`grams are.This makes keeping caches con-
`sistent with data sources relatively easy
`compared to similar problems in distributed
`databases and file systems.
`The Web has long used caching, first in
`browsers and then in forward proxies.
`Recent research, however, suggests that
`corporate and ISP Web caching use is not
`significant.5 Web caching’s lack of success
`relative to other types of caching might be
`because Web proxy caches are not closely
`coordinated with the data sources; caching
`software is built and administered by orga-
`nizations distinct from those that provide
`the data. In contrast, Akamai maintains a
`direct relationship with content providers,
`which drives innovation and allows other-
`wise uncacheable content to be served
`from the edge.
`
`Update and Management Tools
`Several package and updating management
`tools address software update and man-
`agement in large distributed computing
`environments. Depot6 achieves reliable sys-
`tem update using modular package and
`internal consistency verification. Depot
`
`relies primarily on a shared global file sys-
`tem for secure data distribution.Akamai,
`however, uses public-key techniques to
`deliver updates over HTTP, and achieves
`performance and scalability by using the
`Akamai network itself for the delivery.
`
`References
`1. M. Schroeder et al.,“Autonet:A High-Speed, Self-
`Configuring Local Area Network Using Point-to-
`Point Links,” IEEE J. Selected Areas in Comm., vol. 9,
`no. 8, Oct. 1991, pp. 1318-1335.
`2. P. Bernstein,V. Hadzilacos, and N. Goodman, Con-
`currency Control and Recovery in Database Systems,
`Addison-Wesley, Boston, 1987.
`3. M. Satyanarayanan,“A Survey of Distributed File
`Systems,” Ann. Rev. of Computer Science, Annual
`Reviews, Palo Alto, Calif., 1989, pp. 447-459.
`4. B. Davidson,“A Survey of Proxy Cache Evaluation
`Techniques,” Proc. 4th Int’l Web Caching Workshop,
`1999; available at http://citeseer.nj.nec.com/
`davison99survey.html.
`5. S. Gadde, J. Chase, and M. Rabinovich, “Web
`Caching and Content Distribution:A View From
`the Interior,” Computer Comm., vol. 24, no. 2, 2001,
`pp. 222-231.
`6. W. Colyer and W.Wong,“Depot: A Tool for Man-
`aging Software Environments,” Large Installation Sys-
`tem Administration (LISA) VI Proc., Usenix Assoc.,
`Berkeley, Calif., 1992, pp. 153-162.
`
`for each object version. In addition to using a
`unique query string for this purpose, we let cus-
`tomers place a version or generation number in the
`URL. Versioned objects typically have infinite TTLs.
`To improve uncacheable objects’ performance,
`we introduce an edge server between the client and
`origin to split the client’s TCP connection into two
`separate connections — one from the client to the
`edge server and one from the edge server to the
`origin. Contrary to intuition, splitting the connec-
`tion can deliver faster responses in some cases
`because the edge server can react to packet loss
`more quickly than the origin server, improving the
`connection’s bandwidth-delay product. We also
`map clients to edge servers that have low conges-
`tion and packet loss. Furthermore, the edge server
`can accept the origin server’s response faster than
`the client could, and can serve it from memory at
`the client’s pace. This frees up origin server
`resources to serve subsequent requests, reducing
`
`origin site demand even for uncacheable content.
`Finally, the edge server can maintain much longer
`persistent connections with the client than can an
`origin server; the origin need only maintain con-
`nections with relatively few Akamai edge servers.
`
`Lifetime control. In some cases, the edge server
`must remove certain objects from all servers on
`demand. This might be in response to a request
`from an Akamai customer (the content’s
`provider), or initiated by an interface that lets
`content publishing systems schedule invalida-
`tions when content changes. Because most Web
`objects change infrequently,4 heuristic caching
`policies in Web proxies typically hold copies long
`after they change. Akamai’s edge servers support
`on-demand purges for changed or otherwise
`invalid content.
`
`Authentication and authorization. When serving
`
`56
`
`SEPTEMBER • OCTOBER 200

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket