H04L67/1017

System and method for cloud-based analytics

A system and method in accordance with example embodiments may include systems and methods for a cloud-based analytics platform. The cloud-based analytics platform may allow the manual and automatic uploading to and/or downloading from a cloud server. The platform may include single sign-on (SSO) capabilities such that a user may have one set of credentials to access data from the cloud-based analytics and/or data stored locally. The platform may include data validation and processing in order to provide real-time feedback on uploads based on file type, file size, access rights, extracted data, and transformed data.

System and method for cloud-based analytics

A system and method in accordance with example embodiments may include systems and methods for a cloud-based analytics platform. The cloud-based analytics platform may allow the manual and automatic uploading to and/or downloading from a cloud server. The platform may include single sign-on (SSO) capabilities such that a user may have one set of credentials to access data from the cloud-based analytics and/or data stored locally. The platform may include data validation and processing in order to provide real-time feedback on uploads based on file type, file size, access rights, extracted data, and transformed data.

Resilient distributed storage system

A distributed data storage system that includes endpoint nodes, gateway nodes, and one or more gateway name servers. A gateway name server receives from clients resolution requests to resolve to a gateway node and resolves the resolution requests to a gateway node address of a gateway node. A gateway node receives client requests to access an endpoint node and redirects the requests to endpoint nodes identified by a gateway node whose address was resolved to by a gateway name server. An endpoint node receives from a client a retrieval request to retrieve data based on being redirected to the endpoint node. When a retrieval request is received and the endpoint node stores the data, the endpoint node sends the data to the client. When a retrieval request is received and the endpoint node does not store the data, the endpoint node forwards the retrieval request to another endpoint node.

Resilient distributed storage system

A distributed data storage system that includes endpoint nodes, gateway nodes, and one or more gateway name servers. A gateway name server receives from clients resolution requests to resolve to a gateway node and resolves the resolution requests to a gateway node address of a gateway node. A gateway node receives client requests to access an endpoint node and redirects the requests to endpoint nodes identified by a gateway node whose address was resolved to by a gateway name server. An endpoint node receives from a client a retrieval request to retrieve data based on being redirected to the endpoint node. When a retrieval request is received and the endpoint node stores the data, the endpoint node sends the data to the client. When a retrieval request is received and the endpoint node does not store the data, the endpoint node forwards the retrieval request to another endpoint node.

Systems and methods for streaming media content during unavailability of content server

Systems and methods are described herein for streaming during unavailability of a content server. Upon determining that there are conditions indicating buffering issues during delivery of a media asset, a server determines a first group of devices suitable for receiving the media asset from the server and sharing the media asset on a peer-to-peer network. Then, the server determines a second group of devices suitable for receiving the media asset on a peer-to-peer network from a first group device. The server then determines groupings within which to share and receive the media asset. Next, the server transmits instructions to the devices in the first group to maintain in buffer and share certain portions of the media asset with the second group devices within their grouping. Finally, the server updates information detailing the media asset portions the devices are maintaining in buffer and sharing.

Systems and methods for streaming media content during unavailability of content server

Systems and methods are described herein for streaming during unavailability of a content server. Upon determining that there are conditions indicating buffering issues during delivery of a media asset, a server determines a first group of devices suitable for receiving the media asset from the server and sharing the media asset on a peer-to-peer network. Then, the server determines a second group of devices suitable for receiving the media asset on a peer-to-peer network from a first group device. The server then determines groupings within which to share and receive the media asset. Next, the server transmits instructions to the devices in the first group to maintain in buffer and share certain portions of the media asset with the second group devices within their grouping. Finally, the server updates information detailing the media asset portions the devices are maintaining in buffer and sharing.

DYNAMICALLY UPDATING LOAD BALANCING CRITERIA

Some embodiments provide a method of performing load balancing for a group of machines that are distributed across several physical sites. The method of some embodiments iteratively computes (1) first and second sets of load values respectively for first and second sets of machines that are respectively located at first and second physical sites, and (2) uses the computed first and second sets of load values to distribute received data messages that the group of machines needs to process, among the machines in the first and second physical sites. The iterative computations entail repeated calculations of first and second sets of weight values that are respectively used to combine first and second load metric values for the first and second sets of machines to repeatedly produce the first and second sets of load values for the first and second sets of machines. The repeated calculation of the weight values automatedly and dynamically adjusts the load prediction at each site without user adjustment of these weight values. As it is difficult for a user to gauge the effect of each load metric on the overall load, some embodiments use machine learned technique to automatedly adjust these weight values.

DYNAMICALLY UPDATING LOAD BALANCING CRITERIA

Some embodiments provide a method of performing load balancing for a group of machines that are distributed across several physical sites. The method of some embodiments iteratively computes (1) first and second sets of load values respectively for first and second sets of machines that are respectively located at first and second physical sites, and (2) uses the computed first and second sets of load values to distribute received data messages that the group of machines needs to process, among the machines in the first and second physical sites. The iterative computations entail repeated calculations of first and second sets of weight values that are respectively used to combine first and second load metric values for the first and second sets of machines to repeatedly produce the first and second sets of load values for the first and second sets of machines. The repeated calculation of the weight values automatedly and dynamically adjusts the load prediction at each site without user adjustment of these weight values. As it is difficult for a user to gauge the effect of each load metric on the overall load, some embodiments use machine learned technique to automatedly adjust these weight values.

ESTABLISHING AND USING A TUNNEL FROM AN ORIGIN SERVER IN A DISTRIBUTED EDGE COMPUTE AND ROUTING SERVICE

An edge server of a distributed edge compute and routing service receives a tunnel connection request from a tunnel client residing on an origin server, that requests a tunnel be established between the edge server and the tunnel client. The request identifies the hostname that is to be tunneled. An IP address is assigned for the tunnel. DNS record(s) are added or changed that associate the hostname with the assigned IP address. Routing rules are installed in the edge servers of the distributed edge compute and routing service to reach the edge server for the tunneled hostname. The edge server receives a request for a resource of the tunneled hostname from another edge server that received the request from a client, where the other edge server is not connected to the origin server. The request is transmitted from the edge server to the origin server over the tunnel.

ESTABLISHING AND USING A TUNNEL FROM AN ORIGIN SERVER IN A DISTRIBUTED EDGE COMPUTE AND ROUTING SERVICE

An edge server of a distributed edge compute and routing service receives a tunnel connection request from a tunnel client residing on an origin server, that requests a tunnel be established between the edge server and the tunnel client. The request identifies the hostname that is to be tunneled. An IP address is assigned for the tunnel. DNS record(s) are added or changed that associate the hostname with the assigned IP address. Routing rules are installed in the edge servers of the distributed edge compute and routing service to reach the edge server for the tunneled hostname. The edge server receives a request for a resource of the tunneled hostname from another edge server that received the request from a client, where the other edge server is not connected to the origin server. The request is transmitted from the edge server to the origin server over the tunnel.