×

Data processing service

  • US 10,176,225 B2
  • Filed: 03/23/2015
  • Issued: 01/08/2019
  • Est. Priority Date: 11/14/2011
  • Status: Active Grant
First Claim
Patent Images

1. A computer-implemented method, comprising:

  • receiving, by a computing system and from a remote computing device, a first query that is structured to cause a querying system to select first data;

    identifying, by the computing system, that the first data is stored within a first logical portion of data that is designated for replication among multiple data centers;

    identifying, by the computing system, that the first logical portion of data has been fully replicated among none of the multiple data centers;

    in response to identifying that the first logical portion of data has been fully replicated among none of the multiple data centers, identifying, by the computing system, a most-recent data center of the multiple data centers that most-recently updated the first logical portion of data;

    sending, by the computing system, the first query to the identified most-recent data center, so as to cause the identified most-recent data center to select the first data and send the first data to the remote computing device, in accordance with the first query, from a copy of the first logical portion of data that is stored by the identified most-recent data center;

    receiving, by the computing system and from the remote computing device, a second query that is structured to cause the querying system to select second data;

    identifying, by the computing system, that the second data is stored within a second logical portion of data that is designated for replication among the multiple data centers, with a first data center of the multiple data centers being designated to always be an initial data center to update its copy of the second logical portion of data before other data centers of the multiple data centers update their respective copies of the second logical portion of data;

    identifying, that the second logical portion of data has been fully replicated to both the first data center and a second data center of the multiple data centers, based on comparing a write timestamp for a copy of the second logical portion of data that is stored by the second data center to a write timestamp for a copy of the second logical portion of data that is stored by the first data center that is designated to always be the initial data center to update its copy of the second logical portion of data, and determining based on determining that the write timestamp for the copy of the second logical portion of data that is stored by the second data center is more recent than the write timestamp for the copy of the second logical portion of data that is stored by the first data center;

    in response to identifying that the second logical portion of data has been fully replicated among the first data center and the second data center, selecting one of the first data center and the second data center to handle the second query based at least in part on criterion that includes;

    (1) identifying which of the first data center and the second data center is geographically closest to the remote computing device that transmitted the second query to the computing system;

    (2) identifying which of the first data center and the second data center is associated with a shortest trip time for a message transmitted between (a) the remote computing device that transmitted the second query to the computing system, and (b) each of the first data center and the second data center, and(3) identifying which of the first data center and the second data center has been determined to have most available computing capacity from among the first data center and the second data center; and

    sending, by the computing system, the second query to the selected one data center for execution of the second query, so as to cause the selected one data center to send a copy of the second data to the remote computing device.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×