Server load balancing using geodata
First Claim
Patent Images
1. A computer-implemented method for storing and manipulating map data describing map objects, the method comprising:
- receiving, from a mobile computing device, a request for map data describing one or more map objects located in a first geographic region, wherein the request includes an unencrypted header portion and an encrypted message portion, and the unencrypted header portion stores approximate location coordinates of the mobile computing device identifying an approximate location of the mobile computing device within the first geographic region;
identifying one or more servers storing the one or more map objects for the first geographic region based on the approximate location coordinates in the unencrypted header portion; and
routing the request to at least one of the identified one or more servers, wherein the request is serviced based on the encrypted message portion and the encrypted message portion stores detailed location coordinates of the mobile computing device identifying an actual location of the mobile computing device within the first geographic region, and the actual location of the mobile computing device is not identified via the unencrypted header portion.
1 Assignment
0 Petitions
Accused Products
Abstract
The present technology relates to serving geodata based on location of a requesting device. More specifically, the technology efficiently services requests for geodata, e.g., map data, by directing requests to a server that stores a shard of an entire database of geodata. A request for geodata includes an unencrypted header having a location of a device making the request for geodata. The present technology relates the location to a shard storing data relevant to the location.
63 Citations
20 Claims
-
1. A computer-implemented method for storing and manipulating map data describing map objects, the method comprising:
-
receiving, from a mobile computing device, a request for map data describing one or more map objects located in a first geographic region, wherein the request includes an unencrypted header portion and an encrypted message portion, and the unencrypted header portion stores approximate location coordinates of the mobile computing device identifying an approximate location of the mobile computing device within the first geographic region; identifying one or more servers storing the one or more map objects for the first geographic region based on the approximate location coordinates in the unencrypted header portion; and routing the request to at least one of the identified one or more servers, wherein the request is serviced based on the encrypted message portion and the encrypted message portion stores detailed location coordinates of the mobile computing device identifying an actual location of the mobile computing device within the first geographic region, and the actual location of the mobile computing device is not identified via the unencrypted header portion. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system for storing and manipulating map data describing map objects, the system comprising:
-
a plurality of servers collectively storing map data in random access memory (RAM), wherein the map data is divided into a plurality of shards and each server has one or more shards of the plurality of shards of map data stored thereon; and a content switch configured to; receive, from a mobile computing device, a request for at least a portion of the map data describing one or more map objects located in a first geographic region, wherein the request includes an unencrypted header portion and an encrypted message portion, and the unencrypted header portion stores approximate location coordinates of the mobile computing device identifying an approximate location of the mobile computing device within the first geographic region, identify at least one server from among the plurality of servers that stores the one or more map objects for the first geographic region based on the approximate location coordinates in the unencrypted header portion, and route the request for at least a portion of the map data to the identified at least one server, wherein the request is serviced based on the encrypted message portion and the encrypted message portion stores detailed location coordinates of the mobile computing device identifying an actual location of the mobile computing device within the first geographic region, and the actual location of the mobile computing device is not identified via the unencrypted header portion. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A product for storing and manipulating map data describing map objects, the product comprising:
a non-transitory machine-readable storage medium configured to store instructions that, when executed by a processor included in a computing device, cause the computing device to carry out steps that include; receiving a request for the map data describing one or more map objects from a mobile computing device, the one or more map objects located in a first geographic region; including, in the request, an unencrypted header portion and an encrypted message portion, wherein the unencrypted header portion stores approximate location coordinates of the mobile computing device identifying an approximate location of the mobile computing device within the first geographic region; extracting the approximate location coordinates from the unencrypted header portion; identifying one or more servers storing the one or more map objects for the first geographic region based on the approximate location coordinates extracted from the unencrypted header portion; selecting one of the identified one or more servers based on one or more load balancing considerations; and routing the request to the selected server, wherein the request is serviced based on the encrypted message portion and the encrypted message portion stores detailed location coordinates of the mobile computing device identifying an actual location of the mobile computing device within the first geographic region, and the actual location of the mobile computing device is not identified via the unencrypted header portion. - View Dependent Claims (16, 17, 18, 19, 20)
Specification