The invention relates to systems and methods of global load balancing in a content delivery network having a plurality of edge servers which may be distributed across multiple geographic locations. According to one aspect of the invention, a global load balancing system includes a first load balancing server for receiving a packet requesting content to be delivered to a client, selecting one of the plurality of edge servers to deliver the requested content to the client, and forwarding the packet across a network connection to a second load balancing server, which forwards the packet to the selected edge server. The selected edge server, in response to receiving the packet, sends across a network connection the requested content with an address for direct delivery to the client, thereby allowing the requested content to be delivered to the client while bypassing a return path through the first load balancing server.
|
1. A content delivery network (cdn) comprising:
a first point-of-Presence (pop) comprising a first load balancing server and a first set of edge servers, the first load balancing server assigned a particular internet protocol (ip) address such that a request for content addressed to the particular ip address originating from a first region that is proximate to the first pop is routed to the first load balancing server; and
a second pop comprising a second load balancing server and a second set of edge servers, the second load balancing server assigned the same particular ip address as the first load balancing server such that a request for the content addressed to the particular ip address originating from a second region that is proximate to the second pop is routed to the second load balancing server, the second load balancing server comprising:
a processor (i) processing a set of parameters to identify whether the first pop offers improved delivery of content relative to the second pop or the second pop provides improved delivery of the content relative to the first pop and (ii) selecting an edge server of the first set of edge servers when the processor determines that the first pop provides improved delivery for the content relative to the second pop based on the set of parameters; and a packet switch forwarding a received request for the content to the first pop when the processor determines that the first pop provides improved delivery for the content relative to the second pop based on the set of parameters.
10. A method of load balancing across a content delivery network (cdn), the cdn comprising a first point-of-Presence (pop) and a second pop from which content is distributed on behalf of others by the cdn, the first pop geographically separated from the second pop, the method comprising:
configuring the cdn for Anycast routing by (i) assigning a particular ip address to the first pop and (ii) assigning the same particular ip address to the second pop, wherein said assigning the particular ip address to the first pop facilitates routing to the first pop, a request for content that is addressed to the particular ip address and that originates from a first region that is proximate to the first pop, and wherein said assigning the particular ip address to the second pop facilitates routing to the second pop, a request for the content that is addressed to the particular ip address and that originates from a second region that is proximate to the second pop;
monitoring a set of parameters relating to performance of at least the first pop and the second pop;
receiving at the first pop, a request for content that is addressed to the particular ip address and that originates from the first region;
determining by the first pop, based on the set of parameters whether the second pop provides improved delivery of the content relative to the first pop; and
selecting by the first pop, an edge server operating in the second pop when the second pop provides improved delivery of the content relative to the first pop: and
forwarding the request to the second pop when the second pop provides improved delivery of the content relative the first pop.
14. A method of balancing load across a cdn having at least a first pop and a second pop, the first pop comprising a first set of edge servers located proximally to a first region, the second pop comprising a second set of edge servers proximally located to a second region that is geographically separated from the first region, the method comprising:
providing a first load balancing server at the first pop for balancing a load at least across the first set of edge servers;
assigning to the first load balancing server, a particular ip address that is also assigned to a second load balancing server, the first load balancing server for balancing a load resulting from requests for content that are resolved to the first pop by Anycast routing as a result of the requests being addressed to the particular ip address and originating from the first region, the second load balancing server for balancing a load resulting from requests for the content that are resolved to the second pop by Anycast routing as a result of the requests being addressed to the particular ip address and originating from the second region;
receiving at the first load balancing server, a request for the content that is addressed to the particular ip address and that originates from the first region;
processing the request at the first load balancing server to determine which edge server of the first and second sets of edge servers optimally delivers the content based on a set of performance parameters;
selecting a particular edge server from the second set of edge servers to satisfy the received request by delivering the content when the particular edge server optimally delivers the content relative to other servers of the first and second sets of servers; and
forwarding the received request from the first load balancing server at the first pop to the selected edge server at the second pop for improved delivery of the content.
2. The cdn of
3. The cdn of
4. The cdn of
5. The cdn of
6. The cdn of
7. The cdn of
8. The cdn of
9. The cdn of
11. The method of
12. The method of
13. The method of
15. The method of
16. The method of
17. The method of
18. The method of
|
This application is a continuation of U.S. application Ser. No. 12/221,724, filed Aug. 6, 2008, now U.S. Pat. No. 8,180,896, the entire contents of which are incorporated herein by reference.
The invention relates to systems and methods for servicing requests across a wide area data network.
Today, the Internet continues to grow as a medium for delivering content. One of the factors driving the growth and success of the Internet as a medium for delivering content is the proliferation of high-speed Internet access to the home. This access provides a high quality data channel to the home of consumers, allowing for marketers and other individuals to provide quality commercial video and audio to the home user. Thus, the Internet offers a high quality and flexible medium for presenting content to the end user.
As the popularity of the Internet grows, more and more people rely on the Internet for getting their information and entertainment. High speed transfer of media rich content, such as video and audio, is readily available now over the Internet. One example is that some television networks, such as ABC, offer videos of earlier aired episodes of popular television shows. As such, the day after the airing of the television show, the website associated with the downloadable video is often heavily accessed by users wishing to download the video. The demand of multiple users requesting large data files places a burden on the content provider to come up with ways to deliver the content effectively and with a high quality of service. To this end, engineers have developed the content delivery network and service.
One example of a content delivery network and service is the network and service offered by the Akamai Company of Cambridge, Mass. Akamai provides a content delivery service that cost effectively delivers content across the Internet. To that end, Akamai established a content delivery network that comprises a set of servers, called edge servers, that are disposed at certain network locations on the Internet. These network locations correspond to geographic locations that have been determined by Akamai to be proximate to a large number of Internet users. Thus, the edge servers are placed at a location where they are physically close to a large number, if not the majority, of Internet users and as such they are described as being at the edge of the network, at the point right before Internet connects to the home user. Delivering content from these edge servers down to local users is thus understood as quick and relatively affordable. By contracting with Akamai, a content owner can store their content at these edge servers. When the home user requests content from the content provider, Akamai can deliver that content to the user from the closest edge server, by identifying the edge server that has the requested content and that is most proximate to that user.
In another example, a content delivery network places edge servers at efficient locations on the Internet and provides a load balancing function that could balance the load of multiple requests coming in bursts. The load balancing process would reallocate these requests to different edge servers across the content delivery network and thereby distribute the burden of delivering heavily requested content across multiple data processing platforms.
Thus, the content delivery networks act as large cache systems that strategically locate servers across the Internet and store content for delivery to an end user, while balancing the load of data requests from multiple users.
Although today's content delivery networks can work quite well and provide the content owner with tools for efficient and effective delivery of large data files, there is a need in the art to provide for more robust mechanisms for allowing content owners to ensure how their content files are delivered efficiently over the content delivery networks.
The systems and methods described herein provide a global load balancing device that can be used on a content delivery network. The global load balancing device may allocate traffic across the content delivery network to distribute requests across the different edge servers that are stored on that network. This in turn provides for greater performance and efficiency in dealing with requests from multiple users. In addition, the global load balancing device may regulate relative traffic load across multiple geographic locations of the content delivery network by managing sets of IP addresses advertised by routing tables of routers located at the multiple geographic locations.
According to one aspect of the invention, a global load balancing system for use in a content delivery network having a plurality of edge servers includes a first load balancing server for balancing a load across the plurality of edge servers. The first load balancing server includes an input port for receiving a packet requesting content to be delivered to a client, a processor for selecting one of the plurality of edge servers to deliver at least a portion of the content requested by the packet to the client, and a packet switch for forwarding the packet across a network connection to a second load balancing server. The second load balancing server has a packet switch for forwarding the packet to the selected edge server of the plurality of edge servers. The selected edge server, in response to receiving the packet, sends across a network connection at least a portion of the requested content with an address for direct delivery to the client, thereby allowing the at least a portion of the requested content to be delivered to the client while bypassing a return path through the first load balancing server.
In some embodiments, the plurality of edge servers are distributed across multiple geographical locations, where the distribution is based at least in part on population density corresponding to the multiple geographical locations.
In some embodiments, the processor selects the selected edge server based at least in part on cost of delivering the at least a portion of the requested content from the selected edge server, edge server load, edge server availability, file type, network latency, proximity, or speed of transfer to the client.
In some embodiments, the first load balancing server is located at a first geographical location associated with a first router having a first routing table that advertises a first set of IP addresses; while the second load balancing server is located at a second geographical location associated with a second router having a second routing table that advertises a second set of IP addresses. The first routing table advertises an IP address identical to one advertised by the second routing table.
According to another aspect of the invention, a method of load balancing across a content delivery network having a plurality of edge servers is provided. The method includes the steps of providing a first load balancing server for balancing a load across the plurality of edge servers and for receiving a packet requesting content to be delivered to a client, selecting one of the plurality of edge servers to deliver at least a portion of the content requested by the packet to the client, and operating the first load balancing server to forward the packet across a network connection to a second load balancing server. At the second load balancing server, the method includes the step of forwarding the packet to the selected edge server of the plurality of edge servers. The selected edge server, in response to receiving the packet, sends across a network connection at least a portion of the requested content with an address for direct delivery to the client, thereby allowing the at least a portion of the requested content to be delivered to the client while bypassing a return path through the first load balancing server.
According to another aspect of the invention, a global load balancing system for use in a content delivery network having a plurality of edge servers distributed across multiple geographical locations includes first and second load balancing servers for balancing a load across the plurality of edge servers. The first load balancing server is located at a first geographical location and associated with a first router having a first routing table that advertises a first set of IP addresses. The second load balancing server is located at a second geographical location and associated with a second router having a second routing table that advertises a second set of IP addresses. The first routing table advertises an IP address identical to one advertised by the second routing table. In some embodiments, the first load balancing server includes an input port for receiving a packet requesting an IP address advertised by the first routing table and a packet switch for forwarding the packet for receipt by an edge server that delivers content associated with the requested IP address to the client. The packet may use one of HTTP, FTP, RTMP, and MMS as a communications protocol. In some embodiments, the first load balancing server includes a processor for selecting the edge server to receive the forwarded packet based at least in part on at least one of edge server load, edge server availability, file type, network latency, proximity, and speed of transfer to the client.
In some embodiments, the global load balancing system includes an input port for receiving data indicative of a performance status of at least one edge server associated with the first geographical location, where the performance status indicates how well an edge server will deliver content identified by IP addresses, and a processor for managing the first set of IP addresses advertised by the first routing table of the first router based at least in part on the performance status. The processor may use a Border Gateway Protocol to manage the first set of IP addresses advertised by the first routing table. In some implementations, the processor removes at least one IP address from the first set of IP addresses, so that the first routing table no longer advertises the removed IP address, when the performance status of at least one edge server associated with the first geographical location indicates an inability to deliver content in response to a packet requesting content. In some implementations, the processor removes at least one IP address from the first set of IP addresses, so that the first routing table no longer advertises the removed IP address, when the performance status of at least one edge server associated with the first geographical location indicates that delivery of content in response to a packet requesting content does not satisfy a desired quality of service level. In some implementations, the processor adds at least one IP address to the first set of IP addresses, so that the first routing table advertises the added IP address, when the performance status of at least one edge server associated with the first geographical location indicates an ability to deliver content in response to a packet requesting content. In some implementations, the processor adds at least one IP address to the first set of IP addresses, so that the first routing table advertises the added IP address, when the performance status of at least one edge server associated with the first geographical location indicates that delivery of content in response to a packet requesting content does satisfy a desired quality of service level.
According to another aspect of the invention, a method of load balancing across a content delivery network having a plurality of edge servers distributed across multiple geographical locations is provided. The method includes the steps of providing first and second load balancing servers for balancing a load across the plurality of edge servers. The first load balancing server is located at a first geographical location and associated with a first routing table that advertises a first set of IP addresses. The second load balancing server is located at a second geographical location and associated with a second routing table that advertises a second set of IP addresses. The first routing table advertises an IP address identical to one advertised by the second routing table.
In some embodiments, the method includes the step of operating the first load balancing server to forward a packet requesting the IP address across a network connection for receipt by an edge server that delivers content associated with the IP address to the client. The packet may use one of HTTP, FTP, RTMP, and MMS as a communications protocol. In some embodiments, the method includes the step of selecting the edge server to receive the forwarded packet based at least in part on at least one of edge server load, edge server availability, file type, network latency, proximity, and speed of transfer to the client.
In some embodiments, the method includes the step of regulating a relative traffic load at the first and second geographical locations by regulating a first set of IP addresses advertised by the first routing table and a second set of IP addresses advertised by the second routing table. In some implementations, the step of regulating a relative traffic load includes removing an IP address, which is identical to one in the second set of IP addresses, from the first set of IP addresses so that the first routing table no longer advertises the IP address and the second routing table continues to advertise the IP address. In some implementations, the step of regulating a relative traffic load includes determining a number of IP addresses to remove from the first set of IP addresses, based at least in part on a magnitude of a desired decrease in traffic load at the first geographical location, relative to traffic loads at other geographical locations of the content delivery network, and removing the determined number of LP addresses from the first set of IP addresses so that the first routing table no longer advertises the removed IP addresses.
In some embodiments, the method includes the steps of monitoring a first traffic load associated with the first geographical location, monitoring a second traffic load associated with the second geographical location, and regulating a relative traffic load at the first and second geographical locations by modifying at least one of the first and second sets of IP addresses based at least in part on the monitored first and second traffic loads. The modifying may include removing or adding an IP address to at least one of the first and second sets of IP addresses.
The foregoing and other objects and advantages of the invention will be appreciated more fully from the following further description thereof, with reference to the accompanying drawings wherein:
To provide an overall understanding of the invention, certain illustrative embodiments will now be described, including a system that allows a content delivery network to balance a load by redirecting users to edge servers that are most capable of handling the request. However, it will be understood by one of ordinary skill in the art that the systems and methods described herein may be adapted and modified for other suitable applications and that such other additions and modifications will not depart from the scope hereof.
Thus, in one aspect, the invention provides systems that receive requests for data from a client. In these cases the data being requested is stored on a content delivery network. The client request is typically generated as a client, typically a browser, is resolving a link on a web page where that link points to content stored on the content delivery network. The client request may take the form of a packet transmitted from the client to a load balancing server on the content delivery network to which the link resolves. The load balancing server will detect the request and process it based on the requested information, or examine it to determine the requested content. The load balancing server will determine which edge server should serve the requested content. In some embodiments, the load balancing server may have a processor that applies an algorithm that will consider parameters, such as server resources, server availability, delivery costs, network resources, file type and other parameters, and determine the edge server best-suited, based on the considered parameters, for transferring the requested content directly to the user. For example, the load balancing server in one location might have a 100 ms network latency back to the user, but it might be aware that at another location the load balancing server is only 20 ms away from the user; therefore the load balancing server at the first location might forward the client request to the second location where the other load balancing server is physically connected to the network, so that the load balancing server at the second location can forward the client request to one of the edge servers at the second location. Thus, it will be understood that the load balancing server may redirect a packet requesting content to an edge server.
The invention may enhance load balancing by using AnyCast routing at the load balancer level, and automatically advertising or removing AnyCast routes based on a number of different parameters such as load on the edge servers handling user requests. The global load balancing devices located at multiple locations within the content delivery network could have the same Internet Protocol (IP) addresses as each other, where an IP address may be a numerical identification assigned to devices participating in a computer network utilizing the Internet Protocol for communication between its nodes. In particular, by advertising the same IP addresses on the Internet they would impact Internet routing tables in such a way where users would be directed to the closest device (edge location within the content delivery network) from a routing stand point. For example, the load balancing devices may use a route-advertising method commonly known as AnyCast routing. In some embodiments, the invention would encompass an automated structure for the global load balancing device to add or remove these route advertisements based on user requests, capacity of content delivery servers, network latency and other factors within that edge location of a content delivery network or based on data from other edge locations. As such, in some embodiments, the invention provides the ability for a content delivery network to control or regulate how much traffic is sent to each location that advertises addresses using AnyCast routing. Although the systems and methods described herein may refer to Internet Protocol addresses or other protocol-specific features, the invention generally may apply to any computer network using a communications protocol having a corresponding scheme for logical or network layer addresses.
Turning to
In the embodiment depicted in
The content server 14 can be maintained by the content provider within its facility or at a hosting site such as that provided by the Web.com Company of Atlanta, Ga. At the hosting site, the hardware and software needed for running a website is maintained. The content provider, such as the event promoter discussed above, may store content in the content store 18 and may configure web server software executing on the content server 14 so that a website having the content, applications and features desired by the content provider is set up for users to access and interact with. The depicted content server may be any server that generates and serves web pages, images, video, audio or other types of files. The computer platform of the content server may be any suitable server such as an Intel based server running Microsoft Windows Operating System or Linux Operating System.
The web server executing on the content server 14 is typically an HTTP server process and may be any suitable server process including the Apache server or a streaming server handling real time protocols. Suitable servers are known in the art and are described in Jamsa, Internet Programming, Jamsa Press (1995), the teachings of which are herein incorporated by reference. In one embodiment, the HTTP server process serves HTML pages representative of content, such as static web pages, or dynamically generated web pages, such as search request web pages, to client processes making requests for such pages. An HTTP server listener process may be an executing computer program operating on the server 14 and which monitors a port and listens for client requests to transfer a resource file, such as a hypertext document, an image, audio, animation, or video file from the server's host to the client process host. In one embodiment, the client process employs the hypertext transfer protocol (HTTP) wherein the client process transmits a file request that specifies a file name, an Internet location (host address), and a method, such as the HTTP, or any other proprietary or standard protocol suitable to retrieve the requested file. The HTTP server listener process detects the client request and passes the request to the executing HTTP server processors. It will be apparent to one of ordinary skill in the art, that a plurality of HTTP server processes can be executing on the server 14 simultaneously. The HTTP server processors can pass the file request typically round-robin style until an HTTP server process is identified that is available to service the client's request.
The edge server 20 depicted in
In one example, the content delivery network is a network such as the Akamai content delivery network (CDN) or the Edgecast content delivery network. These CDNs may identify locations on the network that are intersection points where a number of traffic flows come together. The CDN places its edge servers at these intersection points and it is understood that the content stored at those edge servers 20 may be delivered more quickly and efficiently than content stored at other locations on the network. In the system depicted in
The client 28 may be any user system running a data processing platform that has a client process, typically called a browser, capable of accessing web content over the network 12. As shown in
Typically, at the user's computer 28 the modified URLs are resolved and the user's browser makes a request directed to the edge server that is closest to the client 28 and that contains the requested content. In response to receiving the request, the edge server 20 may fetch from its cache memory 22 the requested content and deliver it to the client 28 so that the delivered content gets integrated into the web page delivered from the content owner's site 14. Thus, the system depicted in
As discussed above with reference to
In the embodiment depicted in
The load balancing server 44 at Region 2 can pass the redirected request directly to an edge server 38. In particular, the load balancing server 44 may have a switch, such as a packet switch, for forwarding the packet representative of the client request to edge server 38. In response to receiving the client request, the edge server 38 sends at least a portion of the content requested, along with an address for delivery direct to the client 40 located in Region 3, across a network connection of network 34, as depicted in
Although the above figures graphically depict the servers, such as the load balancing server, as a functional block element, it will be apparent to one of ordinary skill in the art that these elements can be realized as computer programs or portions of computer programs that are capable of running on the data processor platform to thereby configure the data processor as a system according to the invention.
Moreover, it will be apparent to those skilled in the art that depicted load balancing server may be realized as a software component operating on a conventional data processing system such as a Unix server. In that embodiment, the load balancing server may be implemented as a C language computer program, or a computer program written in any high level language including C++, Fortran, Java or BASIC. Additionally, in an embodiment where microcontrollers or DSPs are employed, the load balancing server may be realized as a computer program written in microcode or written in a high level language and compiled down to microcode that can be executed on the platform employed. The development of such server processes and programs is known to those of skill in the art, and such techniques are set forth in, for example, Stephen G. Kochan, Programming in C, Hayden Publishing (1983).
Similarly, the IP address 1.1.1.1 may be added back to the set of IP addresses advertised by the routing table at location Los Angeles 104 if one or more of the edge servers 116 recovers, as indicated by performance status, so that packets from clients requesting IP address 1.1.1.1 may once again be transmitted to the load balancing server 108 to be distributed to the edge servers 116. In particular, the performance status may indicate that the edge server is capable of delivering content in response to a packet requesting content and/or that the delivery of content in response to a packet requesting content satisfies a desired quality of service level.
In the example depicted in
Generally, adding or removing a determined number of IP addresses from a set of IP addresses advertised at a location may result in a substantially proportionate increase or decrease in traffic load received at the location, allowing a content delivery network to regulate the percentages of traffic load distributed amongst its multiple geographic locations. For example, a content delivery network can advertise the same set of IPs from all of its geographic locations or some of them. Or the content delivery network can choose to advertise a greater number of IP addresses to control the user traffic at a finer granularity level. For example, by using twenty IP addresses or address blocks, the content delivery network can divide the traffic into 5% increments, and by not advertising one IP address at one location forcing 5% of users to go to another location. It will also be understood that the systems described herein provide advantages over the prior art including the ability to route users directly to servers without using Domain Name Servers, thereby significantly speeding the connection time for end users.
Those skilled in the art will know or be able to ascertain using no more than routine experimentation, many equivalents to the embodiments and practices described herein. Accordingly, it will be understood that the invention is not to be limited to the embodiments disclosed herein, but is to be understood from the following claims, which are to be interpreted as broadly as allowed under the law.
Kazerani, Alex, Sakata, Jay, Goldsmith, Phil
Patent | Priority | Assignee | Title |
10440104, | Jun 05 2014 | Microsoft Technology Licensing, LLC | Load balancing with layered edge servers |
12058037, | Jun 24 2011 | Amazon Technologies, Inc. | Techniques for utilizing network destination identifiers simultaneously announced from multiple locations |
9054911, | Apr 16 2012 | GOOGLE LLC | Multicast group ingestion |
9923959, | Jun 05 2014 | Microsoft Corporation | Load balancing with layered edge servers |
ER978, |
Patent | Priority | Assignee | Title |
6064671, | Dec 08 1995 | F5 Networks, Inc | Multi-homed end system for increasing computers network bandwidth |
6249801, | Jul 15 1998 | RADWARE LTD | Load balancing |
6958707, | Jun 18 2001 | Emergency vehicle alert system | |
7500243, | Aug 17 2000 | Oracle America, Inc | Load balancing method and system using multiple load balancing servers |
7587500, | Jan 10 2001 | CLEARWAY ACQUISITION, INC | Distributed selection of a content server |
7945693, | Feb 10 1998 | SANDPIPER CDN, LLC | Controlling subscriber information rates in a content delivery network |
20020103846, | |||
20030115283, | |||
20030174648, | |||
20040044744, | |||
20040078481, | |||
20050021863, | |||
20050188073, | |||
20060112170, | |||
20090172192, | |||
20090177756, | |||
20090177778, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jan 23 2009 | GOLDSMITH, PHIL | EDGECAST NETWORKS, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 029302 | /0196 | |
Jan 23 2009 | KAZERANI, ALEX | EDGECAST NETWORKS, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 029302 | /0196 | |
Jan 23 2009 | SAKATA, JAY | EDGECAST NETWORKS, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 029302 | /0196 | |
Apr 26 2012 | EdgeCast Networks, Inc. | (assignment on the face of the patent) | / | |||
Mar 18 2016 | EDGECAST NETWORKS, INC | VERIZON DIGITAL MEDIA SERVICES INC | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 038511 | /0045 | |
Nov 01 2021 | VERIZON DIGITAL MEDIA SERVICES INC | EDGECAST INC | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 059367 | /0990 | |
Oct 21 2022 | EDGECAST INC | EDGIO, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 061738 | /0972 | |
Nov 14 2023 | EDGIO, INC | LYNROCK LAKE MASTER FUND LP [LYNROCK LAKE PARTNERS LLC, ITS GENERAL PARTNER] | PATENT SECURITY AGREEMENT | 065597 | /0212 | |
Nov 14 2023 | MOJO MERGER SUB, LLC | LYNROCK LAKE MASTER FUND LP [LYNROCK LAKE PARTNERS LLC, ITS GENERAL PARTNER] | PATENT SECURITY AGREEMENT | 065597 | /0212 | |
Nov 14 2023 | EDGIO, INC | U S BANK TRUST COMPANY, NATIONAL ASSOCIATION | PATENT SECURITY AGREEMENT | 065597 | /0406 | |
Nov 14 2023 | MOJO MERGER SUB, LLC | U S BANK TRUST COMPANY, NATIONAL ASSOCIATION | PATENT SECURITY AGREEMENT | 065597 | /0406 |
Date | Maintenance Fee Events |
Feb 28 2014 | STOL: Pat Hldr no Longer Claims Small Ent Stat |
Nov 21 2016 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Oct 02 2020 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Date | Maintenance Schedule |
May 21 2016 | 4 years fee payment window open |
Nov 21 2016 | 6 months grace period start (w surcharge) |
May 21 2017 | patent expiry (for year 4) |
May 21 2019 | 2 years to revive unintentionally abandoned end. (for year 4) |
May 21 2020 | 8 years fee payment window open |
Nov 21 2020 | 6 months grace period start (w surcharge) |
May 21 2021 | patent expiry (for year 8) |
May 21 2023 | 2 years to revive unintentionally abandoned end. (for year 8) |
May 21 2024 | 12 years fee payment window open |
Nov 21 2024 | 6 months grace period start (w surcharge) |
May 21 2025 | patent expiry (for year 12) |
May 21 2027 | 2 years to revive unintentionally abandoned end. (for year 12) |