MULTI-OBJECTIVE SERVER PLACEMENT DETERMINATION
First Claim
1. A method in a computing device to determine a plurality of recommended geographic server locations by attempting to minimize both user-server latency and a latency of inter-user communications, the method comprising:
- acquiring geographic information for a plurality of users of a set of one or more networks, wherein the geographic information for each of the plurality of users indicates a geographic location of that user;
acquiring relationship information for at least some of the plurality of users, wherein the relationship information indicates those of the plurality of users that are connected on a network of the set of networks;
transforming the geographic information and the relationship information into a graph including a plurality of nodes representing the plurality of users and a plurality of edges connecting the plurality of nodes according to the relationship information, wherein each of the plurality of edges includes an edge weight;
generating a first plurality of clusters by performing a first clustering algorithm on the graph, wherein each cluster of the first plurality of clusters includes a centroid and a set of one or more nodes of the plurality of nodes, wherein each of the set of nodes is included in only one of the first plurality of clusters;
generating a second plurality of clusters by performing a second clustering algorithm comprising,iteratively examining pairs of clusters of the first plurality of clusters, andfor each examined pair of clusters, repeatedly swapping pairs of nodes between the pair of clusters when a swap of a pair of nodes will;
reduce a total cut weight of the graph, wherein the total cut weight is a sum of edge weights of edges that connect nodes in different clusters, andlocate each node of the pair of nodes, when swapped to the other cluster of the examined pair of clusters, within a defined maximum distance from the centroid of the other cluster to thereby bound user-to-server latency; and
causing information describing geographic locations of centroids of the second plurality of clusters to be presented to a user as the plurality of recommended geographic server locations.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and apparatus for determining recommended geographic server locations for online social networks by attempting to minimize user-server latency and inter-user communications latency. In an embodiment, geographic and relationship information for a plurality of users is acquired. The plurality of users may belong to one or more networks. The acquired information is transformed into a graph. A first plurality of clusters is generated with a first clustering algorithm. A second plurality of clusters is generated by iteratively examining pairs of the first plurality clusters, and swapping nodes between the examined clusters if it will reduce a total cut weight of the graph and locate each pair of nodes within a defined maximum distance from the centroid of the target cluster. In an embodiment, a method uses a joint analysis approach based upon characteristics of a plurality of existing networks.
38 Citations
20 Claims
-
1. A method in a computing device to determine a plurality of recommended geographic server locations by attempting to minimize both user-server latency and a latency of inter-user communications, the method comprising:
-
acquiring geographic information for a plurality of users of a set of one or more networks, wherein the geographic information for each of the plurality of users indicates a geographic location of that user; acquiring relationship information for at least some of the plurality of users, wherein the relationship information indicates those of the plurality of users that are connected on a network of the set of networks; transforming the geographic information and the relationship information into a graph including a plurality of nodes representing the plurality of users and a plurality of edges connecting the plurality of nodes according to the relationship information, wherein each of the plurality of edges includes an edge weight; generating a first plurality of clusters by performing a first clustering algorithm on the graph, wherein each cluster of the first plurality of clusters includes a centroid and a set of one or more nodes of the plurality of nodes, wherein each of the set of nodes is included in only one of the first plurality of clusters; generating a second plurality of clusters by performing a second clustering algorithm comprising, iteratively examining pairs of clusters of the first plurality of clusters, and for each examined pair of clusters, repeatedly swapping pairs of nodes between the pair of clusters when a swap of a pair of nodes will; reduce a total cut weight of the graph, wherein the total cut weight is a sum of edge weights of edges that connect nodes in different clusters, and locate each node of the pair of nodes, when swapped to the other cluster of the examined pair of clusters, within a defined maximum distance from the centroid of the other cluster to thereby bound user-to-server latency; and causing information describing geographic locations of centroids of the second plurality of clusters to be presented to a user as the plurality of recommended geographic server locations. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method in a computing device to determine a plurality of recommended geographic server locations by attempting to minimize both user-server latency and a latency of inter-user communications using a joint analysis approach based upon characteristics of a plurality of networks, the method comprising:
-
acquiring geographic information for a plurality of users of the plurality of networks, wherein the geographic information for a user of the plurality of users indicates a geographic location of the user; acquiring relationship information for at least some of the plurality of users, wherein the relationship information indicates those of the plurality of users that are connected on at least one of the plurality of networks; transforming the geographic information and the relationship information into a plurality of graphs, wherein each graph of the plurality of graphs represents one network of the plurality of networks and includes, a plurality of nodes representing those users of the plurality of users that belong to the one network, and a plurality of edges connecting the plurality of nodes according to the relationship information, wherein each of the plurality of edges includes an edge weight; generating, for each graph of the plurality of graphs, a plurality of clusters for that graph by performing a clustering algorithm, wherein each of the plurality of clusters includes a centroid; and identifying a first recommended geographic server location by; ranking a set of centroids according to the frequency of occurrence of each centroid in the set of centroids, wherein the set of centroids includes all of the centroids of the plurality of clusters of each of the plurality of graphs, and identifying a centroid of the ranked set of centroids having the highest occurrence as representing the first recommended geographic server location. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A server end station to determine a plurality of recommended geographic server locations by attempting to minimize both user-server latency and a latency of inter-user communications, the server end station comprising:
-
an information acquisition module configured to, acquire geographic information for a plurality of users of a set of one or more networks, wherein the geographic information for each user of the plurality of users indicates a geographic location of that user, and acquire relationship information for at least some of the plurality of users, wherein the relationship information indicates those of the plurality of users that are connected on at least one network of the set of networks; a transformation module configured to transform the geographic information and the relationship information into a graph including a plurality of nodes representing the plurality of users and a plurality of edges connecting the plurality of nodes according to the relationship information, wherein each of the plurality of edges includes an edge weight; a server placement module configured to, generate a first plurality of clusters by performing a first clustering algorithm on the graph, wherein each cluster of the first plurality of clusters includes a centroid and a set of one or more nodes of the plurality of nodes, wherein each node of the set of nodes is included in only one cluster of the first plurality of clusters, and generate a second plurality of clusters by performing a second clustering algorithm comprising, iteratively examining pairs of clusters of the first plurality of clusters, and for each examined pair of clusters, repeatedly swapping pairs of nodes between the pair of clusters when a swap of a pair of nodes will; reduce a total cut weight of the graph, wherein the total cut weight is a sum of edge weights of edges that connect nodes in different clusters, and locate each node of the pair of nodes, when swapped to the other cluster of the examined pair of clusters, within a defined maximum distance from the centroid of the other cluster to thereby bound user-server latency; and a presentation module configured to cause information describing geographic locations of centroids of the second plurality of clusters to be presented to a user as the plurality of recommended geographic server locations. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification