WO2014071094A2 - Cdn traffic management in the cloud - Google Patents
Cdn traffic management in the cloud Download PDFInfo
- Publication number
- WO2014071094A2 WO2014071094A2 PCT/US2013/067907 US2013067907W WO2014071094A2 WO 2014071094 A2 WO2014071094 A2 WO 2014071094A2 US 2013067907 W US2013067907 W US 2013067907W WO 2014071094 A2 WO2014071094 A2 WO 2014071094A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- property
- edge data
- load balancer
- act
- incubation
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/14—Payment architectures specially adapted for billing systems
- G06Q20/145—Payments according to the detected use or quantity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/72—Admission control; Resource allocation using reservation actions during connection setup
- H04L47/726—Reserving resources in multiple paths to be used simultaneously
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/83—Admission control; Resource allocation based on usage prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
Definitions
- Digital content may include web objects (e.g., text, graphics, URLs, scripts), downloadable objects (e.g., media files, software, documents), web applications, streaming media (e.g. audio and video content), etc.
- web objects e.g., text, graphics, URLs, scripts
- downloadable objects e.g., media files, software, documents
- web applications e.g. audio and video content
- streaming media e.g. audio and video content
- CDNs Content Delivery Networks
- CDNs aim to ease the ability of service providers to deliver digital content to large and/or geographically diverse groups of clients.
- CDNs position servers (or clusters of servers) in various geographical locations, and use these servers to cache and deliver content from origin servers of service providers.
- CDNs can improve the service providers' ability to deliver content to clients both by increasing total available server resources and bandwidth used to deliver each service provider's content, and also by delivering each service provider's content from servers that are geographically nearer the clients that are being served.
- CDNs often provide content delivery services for a large number of service providers. As such, CDNs allocate CDN resources among the various service providers. For example, if the CDN is experiencing a surge in traffic for a particular service provider in a particular geographical region, the CDN may reactively allocate additional server resources in the particular geographical region for use in delivering the particular service provider's content, while removing the additional server resources in the particular geographical region from one or more other service providers.
- At least some embodiments described herein manage traffic within a CDN using both live and historical data. As such, the CDN can proactively, as opposed to reactively, reconfigure itself to handle current and anticipated client loads.
- attributes of a property are determined using an incubation pool.
- a computer system determines an incubation period based on an estimate of load size and traffic type for the property and based on rules that define a minimum and a maximum incubation time for properties that are added to the incubation pool.
- the computer system adds the property to the incubation pool, including allocating server resources of the incubation pool to the property.
- the computer system analyzes load and traffic patterns for the property for the determined incubation period, and determines a load size and/or a traffic type for the property based on adding the property to the incubation pool.
- a load balancer agent offloads traffic to other edge data centers in a CDN.
- the load balancer agent determines that traffic at the edge data center should be offloaded to the other edge data centers, and determines a priority level for requesting the offloading of traffic to the other edge data centers.
- the load balancer agent sends an offload request to each of the other edge data centers. Each offload request indicates the determined priority level.
- the load balancer agent receives one or more replies from the other edge data centers, including at least one reply indicating that resources are available for use by the load balancer agent.
- the load balancer agent sorts the replies to identify at least one edge data center for offloading traffic, and offloads traffic to the identified edge data center(s).
- Figure 1 illustrates an example computer architecture that facilitates both proactively and reactively configuring a CDN to handle current and anticipated client loads for properties hosted by the CDN.
- Figure 2 illustrates an example scheme for dividing, partitioning, and/or allocating resources of an example CDN.
- Figure 3 illustrates a flow chart of an example method for allocating server resources at an edge data center of a CDN to properties serviced by the edge data center.
- Figure 4 illustrates a flow chart of an example method for a load balancer agent at an edge data center to offload traffic to another edge data center.
- Figure 5 illustrates a flow chart of an example method for determining one or more attributes of a property using an incubation pool.
- At least some embodiments described herein manage traffic within a CDN using both live and historical data. As such, the CDN can proactively, as opposed to reactively, reconfigure itself to handle current and anticipated client loads.
- embodiments are directed to a CDN that services a plurality of properties and that includes a plurality of edge data centers that are physically located at different geographic locations (and potentially at geographic locations around the world). Each edge data center includes a plurality of servers that are used to cache and serve content of the properties.
- Embodiments are also directed to a CDN that includes a load balancer service that tracks long-term traffic trends for the plurality of edge data centers, and that manages rules for allocating server resources (based on the long term traffic trends) to the properties.
- Embodiments are also directed to a CDN that includes a load balancer agent at each edge data center.
- Each load balancer agent is configured to make server allocation decisions based on the rules that are based on long-term traffic trends, as well as real-time (or near real-time) data regarding present activity at the edge data center. As such, the load balancer agents make server allocation decisions proactively based on long-term traffic trends and rules, and reactively based on real-time (or near-real time) data.
- a "property” is a customer web application that is hosted on an origin server.
- a "property” may be an online video streaming website, an online audio streaming service, a patch/updates website, etc.
- a "customer” is a person, entity, service provider, etc. that owns one or more properties.
- an "origin server” is a web server that is owned and/or operated by a customer.
- Figure 1 illustrates an example computer architecture 100 that facilitates both proactively and reactively configuring a CDN to handle current and anticipated client loads for properties hosted by the CDN.
- computer architecture 100 includes edge data centers 102, one or more components 108 related to near real-time (NRT) data, and one or more components 114 related to long-term trends and rules.
- NRT near real-time
- Each of the depicted components and computer systems are connected to one another over (or are part of) a network, such as, for example, a Local Area Network ("LAN”), a Wide Area Network (“WAN”), the Internet, etc.
- LAN Local Area Network
- WAN Wide Area Network
- the Internet etc.
- each of the depicted components and computer systems can create message related data and exchange message related data (e.g., Internet Protocol (“IP”) datagrams and other higher layer protocols that utilize IP datagrams, such as, Transmission Control Protocol (“TCP”), Hypertext Transfer Protocol (“HTTP”), Simple Mail Transfer Protocol (“SMTP”), etc.) over the network.
- IP Internet Protocol
- TCP Transmission Control Protocol
- HTTP Hypertext Transfer Protocol
- SMTP Simple Mail Transfer Protocol
- Edge data centers 102 comprise a plurality of data centers that are each located at different geographical locations.
- Figure 1 depicts edge data center 102a and edge data center 102b, though computer architecture 100 could include any number of edge data centers, as indicated by the vertical ellipses.
- a "pop" point of presence also refers to an edge data center, whether the edge data center is dedicated as part of a CDN, or is collocated with other services.
- each edge data center 102 includes a plurality of servers (e.g., servers 106a and 106b) that are configured to cache content of properties that are associated with the edge data center and to deliver that content to clients (e.g., clients of the cached properties, that are geographically near the edge data center).
- Each edge data center 102 also includes a load balancer agent (e.g., load balancer agents 104a and 104b).
- the load balancer agents ( 104a, 104b) are configured to make both proactive and reactive decisions about how server resources (106a, 106b) at the corresponding edge data center are allocated to different properties. In doing so, the load balancer agents (104a, 104b) use rules (from a rules data store 124) that are based on long terms trends data, as well as NRT data (from a NRT data store 112).
- NRT data means data that is collected and aggregated in near real-time, such as within a few minutes or even within seconds.
- the component(s) 108 related to NRT data include a NRT aggregator 110 and NRT data store 112.
- NRT aggregator 110 parses logs generated at edge data centers 102 to generate NRT data about current activity at each edge data center.
- NRT aggregator 110 stores the generated NRT data in NRT data store 112.
- NRT data store 112 makes the NRT data available to load balancer agents (104a, 104b) at each edge data center (as indicated by the arrows between NRT data store 112 and the load balancer agents).
- the load balancer agents are enabled to retrieve the NRT data from NRT data store 112 and to use the NRT data as part of their resource allocation decisions. Using NRT data, the load balancer agents are able to react to current traffic at the edge data centers 102, such as to deal with unexpected surges in traffic at one or more properties. While the component(s) 108 related to NRT data are depicted as being separate from edge data centers 102, all or part of these components may, in some embodiments, be implemented at the edge data centers 102.
- the component(s) 114 related to long-term trends and rules include logs data store 120, trends aggregator 118, and long-term trends data store 116.
- Logs data store 120 is configured to store logs generated by edge data centers 102.
- Trends aggregator 118 is configured to parse these logs to ascertain long-term traffic patterns of the properties that are serviced by the edge data centers.
- Tends aggregator 118 stores long-term traffic patterns in long-term trends data store 116.
- Long-term trends may identify changes in client demand for a property over days, weeks, months, or even years. For example, for a video-streaming property, long-term trends may indicate an increase in client demand on a particular day of the week (e.g., corresponding to the release of new content), in the evenings, and on the weekends. In another example, for a patch/updates property, long-term trends may indicate an increase in client demand on a particular day of the month (e.g., when new patch/update content is released), and at a particular time of day when many clients are configured to install patches/updates.
- the component(s) 114 related to long-term trends and rules also include load balancer service 122 and rules data store 124.
- Load balancer service 122 is configured to analyze the traffic pattern data in long-term trends data store 116, to create/modify rules related to the assignment of servers at edge data centers 102 to various properties, and to store the rules in rules data store 124.
- Rules data store 124 makes the rules available to load balancer agents (104a, 104b) at each edge data center (as depicted by the arrows between rules data store 124 and the load balancer agents).
- the load balancer agents are enabled to retrieve the rules from rules data store 124 and to use the rules as part of their resource allocation decisions.
- load balancer service 122 may receive long-term trend data from long- term trends data store 116, and also provide feedback to long-term trends data store 116. For example, load balancer service 122 may refine/optimize the gathering of long-term trend data. In addition, as indicated by the double arrow between rules data store 124 and load balancer service 122, load balancer service 122 may both read rules from rules data store 124 and also provide rules input and adjustments to rules data store 124.
- a CDN assigns properties to pools that span edge data centers (pops).
- the set of servers at a particular pop that belong to a particular pool are a partition of that pool. These servers service the properties for the pool at the pop.
- Figure 2 illustrates an example scheme for dividing, partitioning, and/or allocating resources of an example CDN.
- the example CDN includes three pops (or edge data centers). These include "pop A” with 50 servers, "pop B" with 80 servers, and "pop C" with 100 servers. As indicated by the horizontal ellipses, the example CDN could include any number of pops.
- the example CDN divides the example CDN resources into a plurality of pools, including 'pool 1 ', 'pool 2', and 'pool 3'. As indicated by the vertical ellipses, the example CDN could include any number of pools.
- Each pool comprises a partition of one or more servers at one or more of the pops.
- pool 1 includes partition 1A (10 servers) at pop A, partition IB (25 servers) at pop B, and partition 1C (20 servers) at pop C.
- pool 2 includes partitions (2 A, 2B, and 2C) at pops A, B, and C
- pool 3 includes partitions (3A and 3B) at pops A and B.
- Properties can be assigned to the pools. For example, five properties may be assigned to pool 1, 10 properties may be assigned to pool 2, and four properties may be assigned to pool 3. Correspondingly, servers in partitions of each pool are reserved to service the properties that are assigned the pool. For example, at pop A the 10 servers of partition 1A are reserved to service the five properties assigned to pool 1, at pop B the 25 servers of partition IB are reserved to service the five properties assigned to pool 1, and at pop B the 20 servers of partition 1C are reserved to service the five properties assigned to pool 1.
- a property may be assigned to multiple pools, and those pools may be assigned to the same pop. Thus, a property may be assigned to multiple partitions (corresponding to different pools) at a single pop.
- Embodiments include a load-balancing algorithm that is performed by each load balancer agent at edge data centers 102. Using the load-balancing algorithm, the each load balancer agent leverages both NRT data from NRT data store 112 and rules from rules data store 124 to make local server allocation decisions.
- Figure 3 illustrates a flow chart of an example method 300 for allocating server resources at an edge data center of a CDN to properties serviced by the edge data center. Method 300 will be described with respect to the components and data of computer architecture 100.
- Method 300 comprises an act of sorting properties according to trending traffic (act 302).
- Act 302 can include an act of sorting, based on near real-time data, a plurality of properties by trending traffic at an edge data center.
- load balancer agent 104a can compare NRT data from NRT data store 112 with rules from rules data store 124 to determine the type of traffic pattern one or more properties are undergoing at edge data center 102.
- Load balancer agent 104a can then sort the properties that are experiencing traffic surges (e.g., in descending order of priority) and place them in a sorted property list.
- the remainder of method 300 can then make resource allocation assignments according to the sorted property list so that surging properties are allocated server resources 106a before non-surging properties.
- Method 300 also comprises an act of selecting the next property in the sorted property list (act 304) and an act of selecting the next partition for the selected property (act 306).
- load balancer agent 104a can select the property having the greatest trending traffic in the sorted property list, and then select a first partition to which that property is assigned.
- Method 300 also comprises an act of calculating server needs for the selected property in the selected partition (act 308).
- Act 308 can include an act of allocating server resources for at least one property of the sorted plurality of properties at the edge data center based on one or more rules developed from long-term trends, including calculating server needs for the at least one property in a partition at the edge data center.
- act 308 can include load balancer agent 104a changing the load type of the property based on trending traffic and determining the server needs for the property based on the new load type.
- properties can be assigned a general load type within the rules, based on factors such as past traffic patterns for the property (e.g., as described later in connection with incubation), manual assignments, or specification from a customer.
- each property may be categorized in each pop according to a "t-shirt size" (e.g., S, M, L, XL) based on its typical client load at that pop.
- act 308 can include a load balancer agent using the NRT data to determine that current trending traffic will cause the property to reach a point that will result in a load type increase (e.g., from L to XL) or decrease at the pop.
- the load balancer agent can assign the new load type to the property at the pop. Then, the load balancer agent can compute new server needs for the property based on the new load type.
- Computing the new server needs can include retrieving the general server needs for a property of the new load type from the rules.
- the rules may specify the general server needs of a property of load type XL are as shown in Table 1 :
- Table 1 specifies minimum server needs and a multiplier.
- the minimum server needs is the count of totally dedicated servers capable of fulfilling 100% of the needs of a property of this type at the pop.
- the multiplier defines how much elastic margin should be allowed for a property of this type.
- Computing the new server needs can also include calculating the pop load for the property. For example, based on its pool assignment, a property may be allocated across pops as shown in Table 2:
- each load type can correspond to a coefficient weight.
- coefficient weights may be as specified in Table 3 :
- the load balancer agent can calculate the server needs count for each load type for the property, as shown in Table 4:
- the load balancer agent can then compute the allocation percentage for the selected property in the selected partition using the following equation:
- allocation percentage ((number of a load type at a pop) * (weight of the load type from Table 3)) / (sum total from Table 4)
- Table 5 shows the allocation percentage for property 1 in each pop:
- the new server needs for the property 1 in the partition at pop A would be 44 servers.
- a property may be assigned to two or more overlapping pools.
- the load balancer agent can calculate the pool partition share of the load in the pop.
- property 1 may be assigned to both a 'North America Pool' and an 'International Pool', with each pool being assigned to at least one common pop.
- Table 6 depicts an example pool allocation scheme in which the pools are assigned to at least one common pop:
- property 1 is assigned to one partition (80 servers) in pop A as part of the North America Pool, and another partition (100 servers) in pop A as part of the International Pool, for a total of 180 servers at pop A.
- Calculating the partition share in pop A can be accomplished using one of at least two strategies: naive partition allocation or proportional partition allocation.
- the load balancer agent can assign the servers needed by the property in the pop to each partition evenly. For example, since property 1 needs 44 servers in pop A, the load balancer agent can assign half of the server needs (22 servers) to the partition corresponding to the North America Pool and half of the server needs (22 servers) to the partition corresponding to the International Pool.
- the load balancer agent can assign the servers needed by the property in the pop to each partition proportionally.
- the partition at pop A corresponding to the North America Pool has -44% (80 servers / 180 servers) of the servers potentially available to property 1 at pop A
- the partition at pop A corresponding to the International pool has -55% (100 servers / 180 servers) of the servers potentially available to property 1 at pop A.
- the load balancer agent can proportionally assign 20 of the server needs (44 servers * 44%) to the partition corresponding to the North America Pool and 24 of the server needs (44 servers * 55%) to the partition corresponding to the International Pool, for a total of 44 servers.
- method 300 also comprises an act of allocating the property needs to the available servers in the selected partition (act 310).
- Act 308 can include an act of allocating server resources for at least one property of the sorted plurality of properties at the edge data center based on one or more rules developed from long-term trends, including allocating the server needs for the at least one property to one or more available servers in the partition.
- act 310 can include load balancer agent 104a allocating the load share to servers in a partition using one or more different criteria. For example, during allocation, load balancer agent 104a can perform one or more of: (i) aggregating server resources, (ii) accounting for stickiness of data, or (iii) accounting for compatibility of properties.
- act 308 can include sorting and servers in a partition that are candidates to be assigned to a property according to a weighted average of a resources aggregates index, a stickiness of cached data index, and a compatibility index.
- a load balancer agent can compute a weighted average for each candidate server in a partition that a property may be assigned to, then sort those servers according to the weighted average.
- the sorted list of servers provides, in order, the best suitable servers for assignment to the property.
- the resources aggregates index provides an indication of an estimate of available resources remaining at a server, and can be computed in any appropriate manner for estimating remaining resources at a server.
- a load balancer agent can track which properties are allocated to which servers in a partition, and estimate available resources remaining each server given the average load of these properties.
- the stickiness of cached data index can indicate how long data has been cached at a server.
- a load balancer agent can track how long cached data at the servers has been alive. The longer data has been cached, the more valuable the stickiness, since this data would appear to be more valuable.
- the compatibility index can provide a score of the compatibility (or incompatibility) of different properties at a server.
- a load balancer agent can score a server based on the compatibility of properties that are assigned to the server, while factoring in a penalty for the presence of incompatible properties.
- the load balancer agent can use the compatibility index to minimize incompatible property assignments.
- the load balancer agent may assign these properties to the same server, while avoiding assigning other properties that also heavily use network I/O and disk I/O to that server.
- Computing a compatibility index can include: (i) obtaining, from the rules, a predefined penalty coefficient for incompatible property types and sizes; (ii) using a compatibility matrix from the rules to obtain a list of all incompatible properties that are hosted at a server, (iii) identifying the load types (e.g., S, M, L, XL) of properties on the server and the frequencies of their occurrence on the server; and (iv) for each incompatible property type, raise their penalty coefficient to the power of the frequency.
- the load types e.g., S, M, L, XL
- n incompatible properties count of a certain load type
- Table 7 represents an example compatibility matrix, which would be defined in the rules, that specifies which property types are compatible with each other:
- property type T 1 may be a property that primarily uses disk I/O
- property type T2 may be a property that primarily uses network I/O
- Table 8 represents an example penalty coefficient, defined in the rules, that specifies the penalty for incompatible properties of certain sizes:
- the load balancer agent can maximize the assignment of compatible properties to the server and make more efficient use of the server's resources.
- a load balancer agent can compute a weighted average for each candidate server in a partition that a property may be assigned to, and then sort those servers according to the weighted average. For example, if a property needs to be assigned to a partition of five servers, computation of the weighted average for one server may be performed as specified in Table 9:
- Table 9 A similar weighted average can also be computed for the other four servers in the partition. The five servers can then be sorted according to their weighted average value. Table 10 shows an example sorting:
- the property can then be assigned to the servers according to the sorted order, with servers having a higher score being more suitable for having the property assigned to them.
- a property can be assigned to a server by updating a mapping of properties to servers. After making a property assignment, the load balancer agent can adjust the aggregate resource index for the assigned server(s) to account for the resources that will be used by the newly assigned property.
- Method 300 may also comprise an act of handling server deficit (act 312).
- act 312 can include the load balancer agent at the pop requesting that some of the load be shared by servers at other pops. This is described further in connection with inter-agent load balancing. If no other pops can handle the requested load, the property may be assigned to the same server at the pop more than once. Act 312 may also include raising one or more alerts, such as to a CDN administrator.
- Method 300 also comprises an act of determining whether there are more partitions for the selected property (act 314) and an act of determining whether there are more properties in the sorted property list (act 316). When there are more partitions and/or properties, method 300 can loop back to acts 304 and/or 306, ensuring that all properties and partitions are considered and any appropriate server assignments are made.
- a load balancer agent at an edge data center may determine (based on the rules) that load conditions at the edge data center have reached certain parameters that indicate an overload. When this happens, the load balancer agent may contact other load balancer agent(s) at one or more other edge data centers to attempt to offset some of the traffic at the edge data center to one or more other edge data centers.
- Figure 1 includes a double-arrow between edge data center 102a and edge data center 102b, indicating that load balancer agent 104a and load balancer agent 104b can communicate with one another (and with other load balancer agents at other edge data centers).
- Figure 4 illustrates a flow chart of an example method 400 for a load balancer agent at an edge data center to offload traffic to another edge data center. Method 400 will be described with respect to the components and data of computer architecture 100.
- Method 400 comprises an act of determining that traffic should be offloaded (act 402).
- Act 402 can include an act determining that traffic at an edge data center should be offloaded to one or more other edge data centers.
- load balancer agent 104a can consult business rules from rules data store 124 to determine whether traffic should be offloaded.
- business rules can take the form of: if ⁇ condition> then ⁇ action>, using any appropriate structured language (e.g., XML, C#, Java).
- example rules may include:
- Health may be measured according to a health index in the NRT data that scores pop health according to factors like how many servers are in/out of rotation, how many servers are loaded, etc.
- Method 400 also comprises of an act of sending offload request(s) to other edge data center(s) (act 404).
- Act 404 can include an act determining a priority level for requesting the offloading of traffic to the other edge data centers.
- load balancer agent 104a can determine the urgency of offloading traffic to other edge data centers, and determine a priority level accordingly.
- Other load balancer agents can use the priority when determining whether or not to lend resources to load balancer agent 104a.
- priority levels could include the examples specified in Table 11 : Priority Urgency Example
- Act 404 can also include an act of sending an offload request to each of the other edge data centers, each offload request indicating the determined priority level.
- load balancer agent 104a can send an offload request to load balancer agent 104b at edge data center 102b.
- Load balancer agent 104a may also send offload requests to one or more other load balancer agents at other edge data centers that are not depicted.
- the load balancer agent may do so in a timed, asynchronous manner.
- Method 400 also comprises of an act of sending offload request(s) to other edge data center(s) (act 404).
- Act 404 can include an act of receiving one or more replies from one or more of the other edge data centers, including one or more replies indicating that resources are available for use by the load balancer agent.
- load balancer agent 104a may receive a reply from one or more of the edge data centers to which it sent the offload request(s).
- the replies may indicate that the other edge data centers have resources are available for use by the load balancer agent to offload traffic.
- the replies include a list of servers at the other edge data center that are available for use.
- a reply indicates that the resources are guaranteed to be valid and reserved for use by load balancer agent 104a for a predetermined or negotiated amount of time.
- Act 404 may also include receiving one or more replies indicating that resources are not available for use by the load balancer agent (i.e., assistance is not possible).
- Method 400 also comprises of an act of offloading traffic to at least one edge data (act 408).
- Act 408 can include an act of sorting the one or more replies to identify at least one edge data center for offloading traffic. For example, if load balancer agent 104a receives affirmative replies from more than one edge data center, load balancer agent 104a can sort these replies to determine to which edge data center(s) traffic should be offloaded. In some embodiments, sorting the replies includes calculating a weighted average of factors for each data center.
- the factors can include, for example, distance (physical or network) of the edge data center, the cost (e.g., monetary cost for bandwidth) for offloading traffic to the edge data center, and/or the resources that have been made available at the edge data center. For example, even though one edge data center may have a higher monetary cost for use than other available edge data centers, it may be desirable to use that edge data center because it can provide a larger number of resources and other available edge data centers and/or because is it closer than other available edge data centers.
- Act 408 can include an act of offloading traffic to the at least one identified edge data center. For example, once a desired edge data center is selected, load balancer agent 104a can send a list of servers that are desired to be used to the identified edge data center, along with a resource manifest. Load balancer agent 104a may offload some traffic to one edge data center, and offload the remaining traffic to one or more other edge data centers.
- load balancer agent 104a can inform the edge data center that those resources can be freed. For example, load balancer agent 104a may inform an edge data center that some, or all, of the servers the edge data center made available/reserved can be freed.
- method 400 enables an edge data center to leverage resources at other edge data centers when it determines that it is in or is approaching an overload situation. 3. Feedback loop between the central service and the rules database
- load balancer service 122 is, in some embodiments, in two-way communication with long-term trends data store 116 and rules data store 124. As such, load balancer service 122 can be configured to engage in a feedback loop to self-assess and to self-improve the rules based on the long-term trends. Using long-term data from the long-term trends data store 116 as a primary input, the load balancer service 122 can determine optimized settings for configuration parameters and business rules that are in rules data store 124.
- the feedback loop occurs explicitly. For example, when a change is made to a configuration value (e.g., a compatibility penalty, a sort criteria weight), load balancer service 122 can make a snapshot of performance data for the CDN, for a pop, for a property, etc. Then, load balancer service 122 can subsequently analyze the snapshot to ascertain the effect of the change to the configuration value on performance of the relevant component. If there is performance degradation in the CDN due the change, an alert can be generated and/or the configuration value can be automatically adjusted (e.g., reverted).
- a configuration value e.g., a compatibility penalty, a sort criteria weight
- the feedback loop occurs implicitly. Since log data may be continuously aggregated (e.g., by trends aggregator 118) and analyzed (e.g., by load balancer service 122), and since load balancer service 122 is configured to recognized and adapt to changes in the log data (e.g., daily), changes to the load of a property and/or type of resource consumption by a property should be accounted for eventually.
- log data may be continuously aggregated (e.g., by trends aggregator 118) and analyzed (e.g., by load balancer service 122), and since load balancer service 122 is configured to recognized and adapt to changes in the log data (e.g., daily), changes to the load of a property and/or type of resource consumption by a property should be accounted for eventually.
- the feedback loop can work on both live and on simulated logs, and can operate on both live and simulated configuration parameters ⁇ rules.
- Table 12 specifies how implicit and explicit elements of the feedback loop may work on each type.
- Some embodiments include the use of one or more incubation pools.
- the CDN can assign the property to an incubation pool.
- the property is analyzed to ascertain one or more attributes of the property, such as t-shirt size (e.g., S, M, L, XL) and traffic patterns (e.g., peak traffic periods, low traffic periods, etc.).
- t-shirt size e.g., S, M, L, XL
- traffic patterns e.g., peak traffic periods, low traffic periods, etc.
- Figure 5 illustrates a flow chart of an example method 500 for determining one or more attributes of a property using an incubation pool. Method 500 will be described with respect to the components and data of computer architecture 100.
- Method 500 comprises an act of determining an incubation period (act 502).
- Act 502 can include an act of determining an incubation period based on an estimate of load size and traffic type for a property and based on one or more rules that define a minimum and a maximum incubation time for properties that are added to an incubation pool.
- load balancer service 122 or another administrative system within a CDN can determine an incubation period for a property that is to be added to the CDN. Determining the incubation period can be based on information that is provided about the property (e.g., from the customer), and based on general business rules in rules data store 124.
- determining the incubation period is based on a customer truth index (CTI), which can affect the amount of time that a property spends in incubation.
- CTI customer truth index
- a customer has a high CTI, meaning the CDN has a high level of trust in how a customer characterizes properties, then the CDN may leave that customer's newly added properties in incubation for a shorter period of time.
- a customer has a low CTI, meaning the CDN has a low level of trust in how a customer characterizes properties, then the CDN may leave that customer's newly added properties in incubation for a longer period of time.
- the CDN may ask the customer one or more questions about the property. These questions can be designed to help the CDN compute a general approximation of attributes of the property (e.g., load size and type of traffic). If this is the first property that is being on-boarded by the customer, the CDN may apply a relatively low level of trust to the answers that are supplied by the customer, and leave the property in incubation for a longer period of time.
- attributes of the property e.g., load size and type of traffic.
- the CDN can compute the attributes that were previously estimated based on observation of real use of the property. If the computed attributes are similar to those that were approximated based on customer input, then the customer may be assigned a high CTI. If the computed attributes are dissimilar from those that were approximated based on customer input, then the customer may be assigned a low CTI.
- the CDN may refine the CTI of a customer over time, such as by re-computing the attributes after the property has been released to a production pool and updating the CTI accordingly.
- the CTI is a composite index that is expressed as a percentage.
- the CTI may be based on the customer's track record of telling the "truth" about property characteristics.
- the CTI may also be based on the actual performance of the property.
- determining the incubation period is based on business rules in rules data store 124.
- the rules may specify a minimum incubation period and a maximum incubation period.
- the final incubation period may be between the minimum and maximum, based on the CTI. For example, if a customer has a CTI of 90% or greater, then new properties for the customer may be left in incubation for only the minimum period. If the customer has a CTI of less than 90%, then new properties for the customer may be left in incubation for a period greater than the minimum, and approaching the maximum as the CTI score gets lower.
- Method 500 also comprises an act of adding a property to an incubation pool (act 504).
- Act 504 can include an act of adding the property to the incubation pool, including allocating one or more server resources of the incubation pool to the property.
- load balancer service 122 or another administrative system within the CDN can assign the property to a special pool that is set apart as an incubation pool. As such, the property can be assigned to corresponding partitions at edge data centers/pops.
- Act 504 can also include an act of analyzing load and traffic patterns for the property for the determined incubation period. For example, during its time in the incubation pool, load balancer service 122 can analyze the client load patterns, the type of content that is served by the property, the types of resources that are utilized at servers of edge data centers when serving clients, etc. Act 504 can also include an act of determining one or more of a load size or a traffic type for the property based on adding the property to the incubation pool.
- the CDN can compute the size and traffic type of the property, and store this information in rules data store 124.
- Method 500 may also comprise an act of handling incubation spillover (act 506).
- the rules in rules data store 124 may specify conditions under which a newly incubated property can spill over its allocated resources and use additional resources.
- the rules may specify that a property for a VIP customer may be automatically allowed to spill over, and that spillover is disabled by default for non-VIP properties.
- the rules may specify that spillover can be enabled for a property if the property exhibits a constant growth that exceeds certain thresholds.
- the rules may also specify conditions for ceasing a spillover.
- Act 506 can include an act of determining that the property exceeds the one or more allocated server resources, and allocating one or more additional resources to the property.
- load balancer service 122 or another administrative system within the CDN may determine that a property is growing larger than its allocated resources, and that is it permitted to spill over.
- the CDN may allocate the property greater resources within the incubation pool, spill over to resources within another incubation pool, and/or spill over to resources within a non-incubation pool (e.g., for a VIP customer).
- Method 500 may also comprise an act of executing post-incubation steps (act 508). For example, after the incubation period has ended, it may be determined that insufficient information has been gathered about the property. As such, the incubation period for the property may be extended. In another example, the CTI index for the property's customer may be updated, as described above. In yet another example, the customer may be billed for time the property spent in the incubation phase, and/or billing rules may be updated based on information gathered during incubation.
- Method 500 may also comprise stressing the property.
- the CDN may run a stress test load on the property. Doing so can help to determine the property's behavior patterns and the property's impact on the CDN during extreme load scenarios.
- a customer may be given favorable billing treatment if they opt to be subject to a stress test. For example, during on-boarding the customer may be offered an option to execute a stress test against the property.
- the customer may be able to specify stress test parameters, such as stress test duration, the type(s) of synthetic test data to use as part of the stress test, etc.
- the types and boundaries of stress test parameters can be defined in the rules.
- the CDN can use un-utilized or underutilized resources within the CDN, special-purpose resources within the CDN, and/or resources that are separate from the CDN to generate the stress load.
- incubation can help to acquire data about a property and to define rules surrounding the property. Doing so can help to refine the CDN's relationships with customers, and to protect the integrity of CDN resources.
- Embodiments of the present invention may comprise or utilize a special-purpose or general-purpose computer system that includes computer hardware, such as, for example, one or more processors and system memory, as discussed in greater detail below.
- Embodiments within the scope of the present invention also include physical and other computer-readable media for carrying or storing computer-executable instructions and/or data structures.
- Such computer-readable media can be any available media that can be accessed by a general-purpose or special-purpose computer system.
- Computer-readable media that store computer-executable instructions and/or data structures are computer storage media.
- Computer-readable media that carry computer-executable instructions and/or data structures are transmission media.
- embodiments of the invention can comprise at least two distinctly different kinds of computer-readable media: computer storage media and transmission media.
- Computer storage media are physical storage media that store computer- executable instructions and/or data structures.
- Physical storage media includes recordable- type storage devices, such as RAM, ROM, EEPROM, solid state drives (“SSDs”), flash memory, phase-change memory (“PCM”), optical disk storage, magnetic disk storage or other magnetic storage devices, or any other physical storage medium which can be used to store program code in the form of computer-executable instructions or data structures, and which can be accessed by a general-purpose or special-purpose computer system.
- Transmission media can include a network and/or data links which can be used to carry program code in the form of computer-executable instructions or data structures, and which can be accessed by a general-purpose or special-purpose computer system.
- a "network" is defined as one or more data links that enable the transport of electronic data between computer systems and/or modules and/or other electronic devices.
- program code in the form of computer-executable instructions or data structures can be transferred automatically from transmission media to computer storage media (or vice versa).
- program code in the form of computer-executable instructions or data structures received over a network or data link can be buffered in RAM within a network interface module (e.g., a "NIC"), and then eventually transferred to computer system RAM and/or to less volatile computer storage media at a computer system.
- a network interface module e.g., a "NIC”
- NIC network interface module
- computer storage media can be included in computer system components that also (or even primarily) utilize transmission media.
- Computer-executable instructions comprise, for example, instructions and data which, when executed at one or more processors, cause a general-purpose computer system, special-purpose computer system, or special-purpose processing device to perform a certain function or group of functions.
- Computer-executable instructions may be, for example, binaries, intermediate format instructions such as assembly language, or even source code.
- Cloud computing environments may be distributed, although this is not required. When distributed, cloud computing environments may be distributed internationally within an organization and/or have components possessed across multiple organizations.
- “cloud computing” is defined as a model for enabling on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services). The definition of “cloud computing” is not limited to any of the other numerous advantages that can be obtained from such a model when properly deployed.
- a cloud computing model can be composed of various characteristics, such as on- demand self-service, broad network access, resource pooling, rapid elasticity, measured service, and so forth.
- a cloud computing model may also come in the form of various service models such as, for example, Software as a Service (“SaaS”), Platform as a Service (“PaaS”), and Infrastructure as a Service (“IaaS”).
- SaaS Software as a Service
- PaaS Platform as a Service
- IaaS Infrastructure as a Service
- the cloud computing model may also be deployed using different deployment models such as private cloud, community cloud, public cloud, hybrid cloud, and so forth.
- Some embodiments may comprise a system includes one or more hosts that are each capable of running one or more virtual machines.
- virtual machines emulate an operational computing system, supporting an operating system and perhaps one or more other applications as well.
- each host includes a hypervisor that emulates virtual resources for the virtual machines using physical resources that are abstracted from view of the virtual machines.
- the hypervisor also provides proper isolation between the virtual machines.
- the hypervisor provides the illusion that the virtual machine is interfacing with a physical resource, even though the virtual machine only interfaces with the appearance (e.g., a virtual resource) of a physical resource. Examples of physical resources including processing capacity, memory, disk space, network bandwidth, media drives, and so forth.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Environmental & Geological Engineering (AREA)
- Finance (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201380057086.5A CN104756467B (zh) | 2012-11-01 | 2013-11-01 | 云中的cdn流量管理 |
EP13795333.7A EP2915312B1 (en) | 2012-11-01 | 2013-11-01 | Cdn traffic management in the cloud |
BR112015009474-0A BR112015009474B1 (pt) | 2012-11-01 | 2013-11-01 | Método para determinar um ou mais atributos de uma propriedade utilizando um grupo de incubação e sistema de computador |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/666,651 US9374276B2 (en) | 2012-11-01 | 2012-11-01 | CDN traffic management in the cloud |
US13/666,651 | 2012-11-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2014071094A2 true WO2014071094A2 (en) | 2014-05-08 |
WO2014071094A3 WO2014071094A3 (en) | 2014-06-26 |
Family
ID=49640154
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2013/067907 WO2014071094A2 (en) | 2012-11-01 | 2013-11-01 | Cdn traffic management in the cloud |
Country Status (5)
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9948704B2 (en) | 2016-04-07 | 2018-04-17 | International Business Machines Corporation | Determining a best fit coordinator node in a database as a service infrastructure |
US10791168B1 (en) | 2018-05-21 | 2020-09-29 | Rafay Systems, Inc. | Traffic aware network workload management system |
US11936757B1 (en) | 2022-04-29 | 2024-03-19 | Rafay Systems, Inc. | Pull-based on-demand application deployment to edge node |
US12040978B2 (en) * | 2021-04-02 | 2024-07-16 | Microsoft Technology Licensing, Llc | Anycast routing technique for a content delivery network |
Families Citing this family (104)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7991910B2 (en) | 2008-11-17 | 2011-08-02 | Amazon Technologies, Inc. | Updating routing information based on client location |
US8028090B2 (en) | 2008-11-17 | 2011-09-27 | Amazon Technologies, Inc. | Request routing utilizing client location information |
US7970820B1 (en) | 2008-03-31 | 2011-06-28 | Amazon Technologies, Inc. | Locality based content distribution |
US7962597B2 (en) | 2008-03-31 | 2011-06-14 | Amazon Technologies, Inc. | Request routing based on class |
US8601090B1 (en) | 2008-03-31 | 2013-12-03 | Amazon Technologies, Inc. | Network resource identification |
US8321568B2 (en) | 2008-03-31 | 2012-11-27 | Amazon Technologies, Inc. | Content management |
US8447831B1 (en) | 2008-03-31 | 2013-05-21 | Amazon Technologies, Inc. | Incentive driven content delivery |
US8606996B2 (en) | 2008-03-31 | 2013-12-10 | Amazon Technologies, Inc. | Cache optimization |
US9407681B1 (en) | 2010-09-28 | 2016-08-02 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US8073940B1 (en) | 2008-11-17 | 2011-12-06 | Amazon Technologies, Inc. | Managing content delivery network service providers |
US8122098B1 (en) | 2008-11-17 | 2012-02-21 | Amazon Technologies, Inc. | Managing content delivery network service providers by a content broker |
US8412823B1 (en) | 2009-03-27 | 2013-04-02 | Amazon Technologies, Inc. | Managing tracking information entries in resource cache components |
US8756341B1 (en) | 2009-03-27 | 2014-06-17 | Amazon Technologies, Inc. | Request routing utilizing popularity information |
US8688837B1 (en) | 2009-03-27 | 2014-04-01 | Amazon Technologies, Inc. | Dynamically translating resource identifiers for request routing using popularity information |
US8782236B1 (en) | 2009-06-16 | 2014-07-15 | Amazon Technologies, Inc. | Managing resources using resource expiration data |
US8397073B1 (en) | 2009-09-04 | 2013-03-12 | Amazon Technologies, Inc. | Managing secure content in a content delivery network |
US8433771B1 (en) | 2009-10-02 | 2013-04-30 | Amazon Technologies, Inc. | Distribution network with forward resource propagation |
US9495338B1 (en) | 2010-01-28 | 2016-11-15 | Amazon Technologies, Inc. | Content distribution network |
US8606922B1 (en) * | 2010-09-27 | 2013-12-10 | Amazon Technologies, Inc. | Dynamic resource zone mapping |
US10097398B1 (en) | 2010-09-28 | 2018-10-09 | Amazon Technologies, Inc. | Point of presence management in request routing |
US9003035B1 (en) | 2010-09-28 | 2015-04-07 | Amazon Technologies, Inc. | Point of presence management in request routing |
US10958501B1 (en) | 2010-09-28 | 2021-03-23 | Amazon Technologies, Inc. | Request routing information based on client IP groupings |
US9712484B1 (en) | 2010-09-28 | 2017-07-18 | Amazon Technologies, Inc. | Managing request routing information utilizing client identifiers |
US8468247B1 (en) | 2010-09-28 | 2013-06-18 | Amazon Technologies, Inc. | Point of presence management in request routing |
US8452874B2 (en) | 2010-11-22 | 2013-05-28 | Amazon Technologies, Inc. | Request routing processing |
US10467042B1 (en) | 2011-04-27 | 2019-11-05 | Amazon Technologies, Inc. | Optimized deployment based upon customer locality |
US10623408B1 (en) | 2012-04-02 | 2020-04-14 | Amazon Technologies, Inc. | Context sensitive object management |
US9154551B1 (en) | 2012-06-11 | 2015-10-06 | Amazon Technologies, Inc. | Processing DNS queries to identify pre-processing information |
US9323577B2 (en) | 2012-09-20 | 2016-04-26 | Amazon Technologies, Inc. | Automated profiling of resource usage |
US9374276B2 (en) | 2012-11-01 | 2016-06-21 | Microsoft Technology Licensing, Llc | CDN traffic management in the cloud |
US9537973B2 (en) * | 2012-11-01 | 2017-01-03 | Microsoft Technology Licensing, Llc | CDN load balancing in the cloud |
US9307059B2 (en) * | 2012-11-09 | 2016-04-05 | Sap Se | Retry mechanism for data loading from on-premise datasource to cloud |
US9634904B2 (en) * | 2012-12-13 | 2017-04-25 | Level 3 Communications, Llc | Framework supporting content delivery with hybrid content delivery services |
US10205698B1 (en) | 2012-12-19 | 2019-02-12 | Amazon Technologies, Inc. | Source-dependent address resolution |
US10397292B2 (en) | 2013-03-15 | 2019-08-27 | Divx, Llc | Systems, methods, and media for delivery of content |
US9294391B1 (en) | 2013-06-04 | 2016-03-22 | Amazon Technologies, Inc. | Managing network computing components utilizing request routing |
FR3023108A1 (fr) * | 2014-06-30 | 2016-01-01 | Orange | Procede et dispositif d'orchestration de ressources |
US10296973B2 (en) * | 2014-07-23 | 2019-05-21 | Fortinet, Inc. | Financial information exchange (FIX) protocol based load balancing |
CN106165359B (zh) | 2014-10-17 | 2020-05-08 | 华为技术有限公司 | 数据流分发方法和设备 |
US10033627B1 (en) | 2014-12-18 | 2018-07-24 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10097448B1 (en) | 2014-12-18 | 2018-10-09 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10091096B1 (en) | 2014-12-18 | 2018-10-02 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10110511B2 (en) | 2015-03-16 | 2018-10-23 | Liveperson, Inc. | Resource prioritization and communication-channel establishment |
US10225326B1 (en) | 2015-03-23 | 2019-03-05 | Amazon Technologies, Inc. | Point of presence based data uploading |
US9819567B1 (en) | 2015-03-30 | 2017-11-14 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US9887931B1 (en) * | 2015-03-30 | 2018-02-06 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US9887932B1 (en) * | 2015-03-30 | 2018-02-06 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US9832141B1 (en) | 2015-05-13 | 2017-11-28 | Amazon Technologies, Inc. | Routing based request correlation |
US10097566B1 (en) | 2015-07-31 | 2018-10-09 | Amazon Technologies, Inc. | Identifying targets of network attacks |
US9774619B1 (en) | 2015-09-24 | 2017-09-26 | Amazon Technologies, Inc. | Mitigating network attacks |
US10270878B1 (en) | 2015-11-10 | 2019-04-23 | Amazon Technologies, Inc. | Routing for origin-facing points of presence |
US10049051B1 (en) | 2015-12-11 | 2018-08-14 | Amazon Technologies, Inc. | Reserved cache space in content delivery networks |
US10257307B1 (en) | 2015-12-11 | 2019-04-09 | Amazon Technologies, Inc. | Reserved cache space in content delivery networks |
US10348639B2 (en) | 2015-12-18 | 2019-07-09 | Amazon Technologies, Inc. | Use of virtual endpoints to improve data transmission rates |
US10075551B1 (en) | 2016-06-06 | 2018-09-11 | Amazon Technologies, Inc. | Request management for hierarchical cache |
US10110694B1 (en) | 2016-06-29 | 2018-10-23 | Amazon Technologies, Inc. | Adaptive transfer rate for retrieving content from a server |
US9992086B1 (en) | 2016-08-23 | 2018-06-05 | Amazon Technologies, Inc. | External health checking of virtual private cloud network environments |
US10033691B1 (en) | 2016-08-24 | 2018-07-24 | Amazon Technologies, Inc. | Adaptive resolution of domain name requests in virtual private cloud network environments |
US10749782B2 (en) * | 2016-09-10 | 2020-08-18 | Splunk Inc. | Analyzing servers based on data streams generated by instrumented software executing on the servers |
US10469513B2 (en) | 2016-10-05 | 2019-11-05 | Amazon Technologies, Inc. | Encrypted network addresses |
US10372499B1 (en) | 2016-12-27 | 2019-08-06 | Amazon Technologies, Inc. | Efficient region selection system for executing request-driven code |
US10831549B1 (en) | 2016-12-27 | 2020-11-10 | Amazon Technologies, Inc. | Multi-region request-driven code execution system |
US10440096B2 (en) | 2016-12-28 | 2019-10-08 | Intel IP Corporation | Application computation offloading for mobile edge computing |
US10938884B1 (en) | 2017-01-30 | 2021-03-02 | Amazon Technologies, Inc. | Origin server cloaking using virtual private cloud network environments |
US10498795B2 (en) | 2017-02-17 | 2019-12-03 | Divx, Llc | Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming |
US10503613B1 (en) | 2017-04-21 | 2019-12-10 | Amazon Technologies, Inc. | Efficient serving of resources during server unavailability |
US11075987B1 (en) | 2017-06-12 | 2021-07-27 | Amazon Technologies, Inc. | Load estimating content delivery network |
US10447648B2 (en) | 2017-06-19 | 2019-10-15 | Amazon Technologies, Inc. | Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP |
US10742593B1 (en) | 2017-09-25 | 2020-08-11 | Amazon Technologies, Inc. | Hybrid content request routing system |
US10938736B2 (en) * | 2017-10-18 | 2021-03-02 | Futurewei Technologies, Inc. | Dynamic allocation of edge computing resources in edge computing centers |
US10951735B2 (en) | 2017-11-07 | 2021-03-16 | General Electric Company | Peer based distribution of edge applications |
EP3729777A1 (en) * | 2017-12-18 | 2020-10-28 | Telefonaktiebolaget LM Ericsson (publ) | Virtual edge node as a service |
US10855753B2 (en) | 2018-02-23 | 2020-12-01 | Standard Cognition, Corp. | Distributed computing of vehicle data by selecting a computation resource of a remote server that satisfies a selection policy for meeting resource requirements according to capability information |
US10616340B2 (en) * | 2018-02-23 | 2020-04-07 | Standard Cognition, Corp. | Distributed computing of large data by selecting a computational resource of a remote server based on selection policies and data information wherein the selections policies are associated with location constraints, time constraints, and data type constraints |
US10592578B1 (en) | 2018-03-07 | 2020-03-17 | Amazon Technologies, Inc. | Predictive content push-enabled content delivery network |
CN108449281B (zh) * | 2018-03-26 | 2020-12-08 | 北京交通大学 | 网络流量协同卸载方法及协同卸载控制器 |
CN108737500B (zh) * | 2018-04-20 | 2022-02-25 | 青岛海尔科技有限公司 | 目标资源获取、提供方法、装置、存储介质与计算机设备 |
CN108965906B (zh) * | 2018-05-28 | 2020-12-29 | 安徽维德工业自动化有限公司 | 一种基于云存储服务器的视频存储方法 |
WO2020020442A1 (en) * | 2018-07-24 | 2020-01-30 | Huawei Technologies Co., Ltd. | Edge computing topology information exposure |
EP4239484A3 (en) | 2018-10-26 | 2024-01-03 | VMware, Inc. | Collecting samples hierarchically in a datacenter |
US11019060B2 (en) | 2018-11-01 | 2021-05-25 | Giocasters, Llc | Methods and systems for providing a customized network |
US10331462B1 (en) * | 2018-11-06 | 2019-06-25 | Cloudflare, Inc. | Cloud computing platform that executes third-party code in a distributed cloud computing network |
US10862852B1 (en) | 2018-11-16 | 2020-12-08 | Amazon Technologies, Inc. | Resolution of domain name requests in heterogeneous network environments |
EP3657329A1 (en) * | 2018-11-22 | 2020-05-27 | Siemens Aktiengesellschaft | System, devices and method for execution of tasks in an internet-of-things (iot) environment |
US10798635B2 (en) * | 2018-12-03 | 2020-10-06 | At&T Intellectual Property I, L.P. | Mobile edge computing for data network traffic |
US11025747B1 (en) | 2018-12-12 | 2021-06-01 | Amazon Technologies, Inc. | Content request pattern-based routing system |
US11902092B2 (en) | 2019-02-15 | 2024-02-13 | Samsung Electronics Co., Ltd. | Systems and methods for latency-aware edge computing |
US11159429B2 (en) | 2019-03-26 | 2021-10-26 | International Business Machines Corporation | Real-time cloud container communications routing |
US11290358B2 (en) | 2019-05-30 | 2022-03-29 | Vmware, Inc. | Partitioning health monitoring in a global server load balancing system |
US11134053B2 (en) | 2019-07-17 | 2021-09-28 | International Business Machines Corporation | Determining cache time to live in an object storage system |
US11451477B2 (en) * | 2019-09-27 | 2022-09-20 | Amazon Technologies, Inc. | Load balanced access to distributed endpoints |
CN110995802A (zh) * | 2019-11-22 | 2020-04-10 | 北京奇艺世纪科技有限公司 | 任务的处理方法和装置、存储介质及电子装置 |
KR102389665B1 (ko) * | 2019-11-25 | 2022-04-25 | 경희대학교 산학협력단 | 다중 통신 서비스에서 에너지 효율적인 통신 및 계산 자원 할당 프레임워크 구축 장치 및 방법 |
US11233768B1 (en) * | 2020-09-30 | 2022-01-25 | Akamai Technologies, Inc. | CDN configuration tuning based on domain scan analysis |
US11445012B2 (en) * | 2020-11-25 | 2022-09-13 | Seagate Technology Llc | Proactive load balancer for data storage system |
CN112948089B (zh) * | 2021-03-22 | 2024-04-05 | 福建随行软件有限公司 | 一种招投标请求的资源分发方法及数据中心 |
CN112702217B (zh) * | 2021-03-23 | 2021-06-18 | 北京视界云天科技有限公司 | 带宽流量调度方法、装置及存储介质 |
CN113205808A (zh) * | 2021-04-27 | 2021-08-03 | 无锡星凝互动科技有限公司 | 一种基于ai咨询云计算搭建方法及系统 |
US11811861B2 (en) * | 2021-05-17 | 2023-11-07 | Vmware, Inc. | Dynamically updating load balancing criteria |
US11792155B2 (en) | 2021-06-14 | 2023-10-17 | Vmware, Inc. | Method and apparatus for enhanced client persistence in multi-site GSLB deployments |
US11595264B1 (en) * | 2021-09-17 | 2023-02-28 | Microsoft Technology Licensing, Llc | Provisioning edge backhauls for dynamic workloads |
CN114553705B (zh) * | 2022-02-18 | 2024-07-05 | 深圳平安智慧医健科技有限公司 | 服务器动态扩容方法、装置、电子设备及存储介质 |
US12107821B2 (en) | 2022-07-14 | 2024-10-01 | VMware LLC | Two tier DNS |
US11895182B1 (en) | 2023-01-23 | 2024-02-06 | Bank Of America Corporation | Systems, methods, and apparatuses for dynamically determining data center transmissions by implementing load balancers in an electronic network |
Family Cites Families (79)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6625795B1 (en) | 1998-06-29 | 2003-09-23 | Xilinx, Inc. | Method and apparatus for placement of input-output design objects into a programmable gate array |
US7590739B2 (en) * | 1999-11-22 | 2009-09-15 | Akamai Technologies, Inc. | Distributed on-demand computing system |
US7114008B2 (en) | 2000-06-23 | 2006-09-26 | Cloudshield Technologies, Inc. | Edge adapter architecture apparatus and method |
US8204082B2 (en) | 2000-06-23 | 2012-06-19 | Cloudshield Technologies, Inc. | Transparent provisioning of services over a network |
US7032031B2 (en) | 2000-06-23 | 2006-04-18 | Cloudshield Technologies, Inc. | Edge adapter apparatus and method |
US7716367B1 (en) * | 2000-07-20 | 2010-05-11 | Akamai Technologies, Inc. | Network performance monitoring in a content delivery service |
US7274658B2 (en) | 2001-03-01 | 2007-09-25 | Akamai Technologies, Inc. | Optimal route selection in a content delivery network |
US7340505B2 (en) | 2001-04-02 | 2008-03-04 | Akamai Technologies, Inc. | Content storage and replication in a managed internet content storage environment |
EP1381977A1 (en) | 2001-04-26 | 2004-01-21 | Creekpath Systems, Inc. | A system for global and local data resource management for service guarantees |
US6944678B2 (en) | 2001-06-18 | 2005-09-13 | Transtech Networks Usa, Inc. | Content-aware application switch and methods thereof |
US7047315B1 (en) | 2002-03-19 | 2006-05-16 | Cisco Technology, Inc. | Method providing server affinity and client stickiness in a server load balancing device without TCP termination and without keeping flow states |
US7133905B2 (en) | 2002-04-09 | 2006-11-07 | Akamai Technologies, Inc. | Method and system for tiered distribution in a content delivery network |
JP2003333050A (ja) * | 2002-05-10 | 2003-11-21 | Matsushita Electric Ind Co Ltd | データ送信方法 |
US7395355B2 (en) | 2002-07-11 | 2008-07-01 | Akamai Technologies, Inc. | Method for caching and delivery of compressed content in a content delivery network |
US7136922B2 (en) | 2002-10-15 | 2006-11-14 | Akamai Technologies, Inc. | Method and system for providing on-demand content delivery for an origin server |
US7334032B2 (en) * | 2002-12-04 | 2008-02-19 | International Business Machines Corporation | System for allocating storage performance resource |
US7660896B1 (en) | 2003-04-15 | 2010-02-09 | Akamai Technologies, Inc. | Method of load balancing edge-enabled applications in a content delivery network (CDN) |
US20070061441A1 (en) | 2003-10-08 | 2007-03-15 | Landis John A | Para-virtualized computer system with I/0 server partitions that map physical host hardware for access by guest partitions |
US20050149940A1 (en) * | 2003-12-31 | 2005-07-07 | Sychron Inc. | System Providing Methodology for Policy-Based Resource Allocation |
US7941556B2 (en) * | 2005-02-23 | 2011-05-10 | At&T Intellectual Property I, Lp | Monitoring for replica placement and request distribution |
US20060195578A1 (en) * | 2005-02-28 | 2006-08-31 | Fujitsu Limited | Resource allocation method for network area and allocation program therefor, and network system |
US7853953B2 (en) * | 2005-05-27 | 2010-12-14 | International Business Machines Corporation | Methods and apparatus for selective workload off-loading across multiple data centers |
JP2007183883A (ja) | 2006-01-10 | 2007-07-19 | Fujitsu Ltd | 資源計画作成プログラム、該プログラムを記録した記録媒体、資源計画作成装置、および資源計画作成方法 |
JP5092374B2 (ja) | 2006-12-01 | 2012-12-05 | 富士通株式会社 | データセンタ及びデータ転送方法 |
US8244827B2 (en) | 2007-12-19 | 2012-08-14 | International Business Machines Corporation | Transferring a logical partition (‘LPAR’) between two server computing devices based on LPAR customer requirements |
GB2456026A (en) * | 2007-12-26 | 2009-07-01 | Contendo Inc | CDN balancing and sharing platform |
JP5256744B2 (ja) | 2008-01-16 | 2013-08-07 | 日本電気株式会社 | 資源割当てシステム、資源割当て方法及びプログラム |
US8347307B2 (en) | 2008-03-12 | 2013-01-01 | International Business Machines Corporation | Method and system for cost avoidance in virtualized computing environments |
US9762692B2 (en) | 2008-04-04 | 2017-09-12 | Level 3 Communications, Llc | Handling long-tail content in a content delivery network (CDN) |
US8930538B2 (en) | 2008-04-04 | 2015-01-06 | Level 3 Communications, Llc | Handling long-tail content in a content delivery network (CDN) |
US8180896B2 (en) * | 2008-08-06 | 2012-05-15 | Edgecast Networks, Inc. | Global load balancing on a content delivery network |
US9996572B2 (en) | 2008-10-24 | 2018-06-12 | Microsoft Technology Licensing, Llc | Partition management in a partitioned, scalable, and available structured storage |
US20100157841A1 (en) * | 2008-12-18 | 2010-06-24 | Sarat Puthenpura | Method and apparatus for determining bandwidth requirement for a network |
WO2010099513A2 (en) | 2009-02-27 | 2010-09-02 | Coach Wei | Adaptive network with automatic scaling |
US20100223364A1 (en) | 2009-02-27 | 2010-09-02 | Yottaa Inc | System and method for network traffic management and load balancing |
US8194680B1 (en) | 2009-03-11 | 2012-06-05 | Amazon Technologies, Inc. | Managing communications for modified computer networks |
US8199752B2 (en) | 2009-10-02 | 2012-06-12 | Limelight Networks, Inc. | Enhanced anycast for edge server selection |
EP2531931B1 (en) * | 2010-02-02 | 2018-08-22 | WebTrends, Inc. | Method and system for test-duration estimation |
US8650299B1 (en) | 2010-02-03 | 2014-02-11 | Citrix Systems, Inc. | Scalable cloud computing |
US8949533B2 (en) | 2010-02-05 | 2015-02-03 | Telefonaktiebolaget L M Ericsson (Publ) | Method and node entity for enhancing content delivery network |
US8473959B2 (en) * | 2010-02-22 | 2013-06-25 | Virtustream, Inc. | Methods and apparatus related to migration of customer resources to virtual resources within a data center environment |
US9282097B2 (en) | 2010-05-07 | 2016-03-08 | Citrix Systems, Inc. | Systems and methods for providing single sign on access to enterprise SAAS and cloud hosted applications |
US8719415B1 (en) | 2010-06-28 | 2014-05-06 | Amazon Technologies, Inc. | Use of temporarily available computing nodes for dynamic scaling of a cluster |
US20120102154A1 (en) | 2010-10-26 | 2012-04-26 | Futurewei Technologies, Inc. | Cloud-Based Transcoding Platform Systems and Methods |
US20130179931A1 (en) | 2010-11-02 | 2013-07-11 | Daniel Osorio | Processing, storing, and delivering digital content |
US8499066B1 (en) | 2010-11-19 | 2013-07-30 | Amazon Technologies, Inc. | Predicting long-term computing resource usage |
US8533285B2 (en) * | 2010-12-01 | 2013-09-10 | Cisco Technology, Inc. | Directing data flows in data centers with clustering services |
US8863204B2 (en) | 2010-12-20 | 2014-10-14 | Comcast Cable Communications, Llc | Cache management in a video content distribution network |
US8863138B2 (en) | 2010-12-22 | 2014-10-14 | Intel Corporation | Application service performance in cloud computing |
US8849758B1 (en) | 2010-12-28 | 2014-09-30 | Amazon Technologies, Inc. | Dynamic data set replica management |
US10009315B2 (en) | 2011-03-09 | 2018-06-26 | Amazon Technologies, Inc. | Outside live migration |
US8978030B2 (en) | 2011-04-07 | 2015-03-10 | Infosys Limited | Elastic provisioning of resources via distributed virtualization |
US8806015B2 (en) | 2011-05-04 | 2014-08-12 | International Business Machines Corporation | Workload-aware placement in private heterogeneous clouds |
US8959526B2 (en) | 2011-06-09 | 2015-02-17 | Microsoft Corporation | Scheduling execution of complementary jobs based on resource usage |
EP2732601B1 (en) | 2011-07-14 | 2016-02-03 | Telefonaktiebolaget LM Ericsson (PUBL) | Optimization engine in a mobile cloud accelerator and related methods |
US10853306B2 (en) | 2011-08-02 | 2020-12-01 | Ajay JADHAV | Cloud-based distributed persistence and cache data model |
US9747592B2 (en) | 2011-08-16 | 2017-08-29 | Verizon Digital Media Services Inc. | End-to-end content delivery network incorporating independently operated transparent caches and proxy caches |
US8510807B1 (en) | 2011-08-16 | 2013-08-13 | Edgecast Networks, Inc. | Real-time granular statistical reporting for distributed platforms |
US9461881B2 (en) | 2011-09-30 | 2016-10-04 | Commvault Systems, Inc. | Migration of existing computing systems to cloud computing sites or virtual machines |
ES2402037B1 (es) | 2011-10-13 | 2014-04-30 | Telefónica, S.A. | Método y sistema para realizar un proceso de adquisición de contenido distribuido para una red de distribución de contenido |
WO2013067224A1 (en) | 2011-11-02 | 2013-05-10 | Akamai Technologies, Inc. | Multi-domain configuration handling in an edge network server |
US9274838B2 (en) | 2011-12-22 | 2016-03-01 | Netapp, Inc. | Dynamic instantiation and management of virtual caching appliances |
US9172591B2 (en) | 2012-02-06 | 2015-10-27 | Deepfield Networks | System and method for management of cloud-based systems |
US20140130055A1 (en) | 2012-02-14 | 2014-05-08 | Aloke Guha | Systems and methods for provisioning of storage for virtualized applications |
US9350671B2 (en) | 2012-03-22 | 2016-05-24 | Futurewei Technologies, Inc. | Supporting software defined networking with application layer traffic optimization |
US10365953B2 (en) | 2012-05-01 | 2019-07-30 | Red Hat, Inc. | Tracking and utilizing facts about a node of a multi-tenant cloud hosting environment |
US9363313B2 (en) * | 2012-06-11 | 2016-06-07 | Cisco Technology, Inc. | Reducing virtual IP-address (VIP) failure detection time |
US8626910B1 (en) | 2012-06-19 | 2014-01-07 | Edgecast Networks, Inc. | Systems and methods for performing localized server-side monitoring in a content delivery network |
US8930374B2 (en) * | 2012-06-29 | 2015-01-06 | Nokia Corporation | Method and apparatus for multidimensional data storage and file system with a dynamic ordered tree structure |
US8745267B2 (en) | 2012-08-19 | 2014-06-03 | Box, Inc. | Enhancement of upload and/or download performance based on client and/or server feedback information |
US20140068703A1 (en) | 2012-08-28 | 2014-03-06 | Florin S. Balus | System and method providing policy based data center network automation |
US20140067758A1 (en) | 2012-08-28 | 2014-03-06 | Nokia Corporation | Method and apparatus for providing edge-based interoperability for data and computations |
US9634922B2 (en) | 2012-09-11 | 2017-04-25 | Board Of Regents Of The Nevada System Of Higher Education, On Behalf Of The University Of Nevada, Reno | Apparatus, system, and method for cloud-assisted routing |
US9537973B2 (en) | 2012-11-01 | 2017-01-03 | Microsoft Technology Licensing, Llc | CDN load balancing in the cloud |
US9374276B2 (en) | 2012-11-01 | 2016-06-21 | Microsoft Technology Licensing, Llc | CDN traffic management in the cloud |
US9262323B1 (en) | 2012-11-26 | 2016-02-16 | Amazon Technologies, Inc. | Replication in distributed caching cluster |
US9317223B2 (en) | 2012-12-17 | 2016-04-19 | International Business Machines Corporation | Method and apparatus for automated migration of data among storage centers |
US9369541B2 (en) | 2013-03-14 | 2016-06-14 | Massachusetts Institute Of Technology | Method and apparatus for implementing distributed content caching in a content delivery network |
CN105493053B (zh) | 2013-08-29 | 2019-06-11 | 英派尔科技开发有限公司 | 多核处理器及更新多核处理器中的高速缓存的方法 |
-
2012
- 2012-11-01 US US13/666,651 patent/US9374276B2/en not_active Expired - Fee Related
-
2013
- 2013-11-01 BR BR112015009474-0A patent/BR112015009474B1/pt active IP Right Grant
- 2013-11-01 WO PCT/US2013/067907 patent/WO2014071094A2/en active Application Filing
- 2013-11-01 EP EP16187818.6A patent/EP3131268B1/en active Active
- 2013-11-01 CN CN201380057086.5A patent/CN104756467B/zh active Active
- 2013-11-01 EP EP13795333.7A patent/EP2915312B1/en active Active
-
2016
- 2016-06-17 US US15/185,319 patent/US9979657B2/en active Active
Non-Patent Citations (1)
Title |
---|
None |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9948704B2 (en) | 2016-04-07 | 2018-04-17 | International Business Machines Corporation | Determining a best fit coordinator node in a database as a service infrastructure |
US10791168B1 (en) | 2018-05-21 | 2020-09-29 | Rafay Systems, Inc. | Traffic aware network workload management system |
US12040978B2 (en) * | 2021-04-02 | 2024-07-16 | Microsoft Technology Licensing, Llc | Anycast routing technique for a content delivery network |
US11936757B1 (en) | 2022-04-29 | 2024-03-19 | Rafay Systems, Inc. | Pull-based on-demand application deployment to edge node |
Also Published As
Publication number | Publication date |
---|---|
EP3131268B1 (en) | 2018-01-31 |
WO2014071094A3 (en) | 2014-06-26 |
CN104756467B (zh) | 2018-07-03 |
BR112015009474A2 (US07928230-20110419-C00014.png) | 2017-08-15 |
US20140122698A1 (en) | 2014-05-01 |
CN104756467A (zh) | 2015-07-01 |
EP2915312B1 (en) | 2018-01-31 |
US20160294701A1 (en) | 2016-10-06 |
US9979657B2 (en) | 2018-05-22 |
EP2915312A2 (en) | 2015-09-09 |
EP3131268A1 (en) | 2017-02-15 |
BR112015009474B1 (pt) | 2023-02-07 |
US9374276B2 (en) | 2016-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9979657B2 (en) | Offloading traffic to edge data centers in a content delivery network | |
US9537973B2 (en) | CDN load balancing in the cloud | |
US9317223B2 (en) | Method and apparatus for automated migration of data among storage centers | |
US10616370B2 (en) | Adjusting cloud-based execution environment by neural network | |
US20110078303A1 (en) | Dynamic load balancing and scaling of allocated cloud resources in an enterprise network | |
EP3335119A1 (en) | Multi-priority service instance allocation within cloud computing platforms | |
US20160191343A1 (en) | Maintain a service on a cloud network based on a scale rule | |
US20110035248A1 (en) | Distributed Service Platform Computing with a Guaranteed Quality of Service | |
WO2013150490A1 (en) | Method and device to optimise placement of virtual machines with use of multiple parameters | |
JP2013525931A (ja) | コンテンツ配信に利用される動的バインド | |
EP3080695A1 (en) | Allocation and migration of cloud resources in a distributed cloud system | |
CN109547517A (zh) | 一种带宽资源调度方法和装置 | |
US20140173591A1 (en) | Differentiated service levels in virtualized computing | |
US10250673B1 (en) | Storage workload management using redirected messages | |
US11792275B2 (en) | Dynamic connection capacity management | |
CN108566419A (zh) | 一种基于云计算的智能数据处理方法 | |
CN102932271A (zh) | 负载均衡的实现方法和装置 | |
CN108521450A (zh) | 一种基于云计算的快速数据处理方法 | |
Rankothge et al. | On the scaling of virtualized network functions | |
Aldwyan et al. | Elastic deployment of container clusters across geographically distributed cloud data centers for web applications | |
CN108322552A (zh) | 一种基于云计算的安全数据处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 13795333 Country of ref document: EP Kind code of ref document: A2 |
|
DPE1 | Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101) | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2013795333 Country of ref document: EP |
|
REG | Reference to national code |
Ref country code: BR Ref legal event code: B01A Ref document number: 112015009474 Country of ref document: BR |
|
ENP | Entry into the national phase |
Ref document number: 112015009474 Country of ref document: BR Kind code of ref document: A2 Effective date: 20150428 |