Scaling network services using DNS
First Claim
1. One or more processor readable storage devices having processor readable code embodied on said processor readable storage devices, said processor readable code for programming one or more processors to perform a method comprising:
- maintaining a table that links an object handle in a URL to location and version data, the location data identifying a cluster of one or more servers that stores a valid content page for a user having an account with the service provided over a network, the version data identifying a version of the service, the object handle is specific to the user having the account;
receiving a selection of a beta version of the service for the user;
moving content for the user to a beta version server such that the beta version server stores the valid content page;
updating the table to link the object handle to the beta version server;
receiving a DNS lookup request having a domain name from a remote computer;
determining an object handle from the domain name, the object handle specific to the user having an account with the service;
retrieving location and version data linked to the object handle in the table, the version data identifying the beta version of the service;
determining that the valid content page for the user is stored on the beta version server based on the retrieved location and version data;
determining an IP address associated with the beta version server; and
sending the IP address to the remote computer in response to the DNS lookup request.
2 Assignments
0 Petitions
Accused Products
Abstract
Lookup requests received by a domain name service (DNS) are processed based on the actual location of data associated with a requested content page rather than a domain mapping of IP addresses. A DNS server which receives a request initiates a query for the location of user data associated with the request based on an object handle contained in a domain name of the request. The location data is used to construct an IP address which is provided in response to the IP lookup request received by the DNS server. The DNS system may be used to provide IP addresses for a scaled web-based networking service, alternate versions of a service and a service implementing rolling upgrades.
-
Citations
9 Claims
-
1. One or more processor readable storage devices having processor readable code embodied on said processor readable storage devices, said processor readable code for programming one or more processors to perform a method comprising:
-
maintaining a table that links an object handle in a URL to location and version data, the location data identifying a cluster of one or more servers that stores a valid content page for a user having an account with the service provided over a network, the version data identifying a version of the service, the object handle is specific to the user having the account; receiving a selection of a beta version of the service for the user; moving content for the user to a beta version server such that the beta version server stores the valid content page; updating the table to link the object handle to the beta version server; receiving a DNS lookup request having a domain name from a remote computer; determining an object handle from the domain name, the object handle specific to the user having an account with the service; retrieving location and version data linked to the object handle in the table, the version data identifying the beta version of the service; determining that the valid content page for the user is stored on the beta version server based on the retrieved location and version data; determining an IP address associated with the beta version server; and sending the IP address to the remote computer in response to the DNS lookup request. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer implemented method, comprising:
-
maintaining user content for a plurality of groups of users on a corresponding plurality of server clusters in a data center, a server cluster includes one or more servers, valid content for each group of users is provided from a server cluster of the plurality of server clusters, the user content pertains to users having an account with a service that is provided over a network; maintaining a table of object handles, each of the object handles is specific to one of the users having an account with the service, the table links an object handle for each of the users to the server cluster that provides the valid content for the user with that object handle and a version of the service currently being used to provide the content for the user; receiving a first DNS lookup request having a domain name in the form of a first URL from a first client; identifying an object handle as the host domain of the first URL, the object handle specific to a first user of the service; retrieving data center identification information linked to the object handle in the URL, the data center identification information identifying a first server cluster of the plurality of server clusters that provides the valid content for the first user; determining a first IP address associated with the first server cluster; sending the first IP address to the first client in response to the first DNS lookup request; moving the valid content for the first user to a second server cluster of the plurality of server clusters, along with valid content of all users in the same group as the first user; updating the data center identification information to link the object handle to the second server cluster, along with updating the object handles of all users in the same group as the first user to the second server cluster; receiving a second DNS lookup request having the domain name in the form of a second URL from a second client after the updating; identifying the object handle as the host domain of the second URL; retrieving the data center identification information that links the object handle to the second server cluster; determining a second IP address associated with the second server cluster; and sending the second IP address to the second client in response to the second DNS lookup request. - View Dependent Claims (8, 9)
-
Specification