Cross-region data access in partitioned framework
First Claim
1. A computer-implemented method executed by one or more computing devices for servicing a request to access customer information in scalable partitioned customer data stores, the computer-implemented method comprising:
- receiving, at a first computing device, a request to access customer information, wherein the customer information is stored in at least one of a plurality of partitioned data stores, wherein each of the plurality of data stores corresponds to one of a plurality of regions, and wherein the request includes a non-partitionable key associated with a plurality of customers;
obtaining one or more partitionable keys based on the non-partitionable key wherein each partitionable key corresponds to customer information regarding a specific customer, wherein each partitionable key is associated with a specific region, and wherein each of the one or more partitionable keys is distinct from the non-partitionable key;
for each partitionable key;
determining the specific region corresponding to the partitionable key based on a global customer mapping table, wherein the global customer mapping table defines a relationship between the partitionable key and the corresponding specific region; and
if the corresponding specific region is an originating region of the request;
identifying a bucket associated with the partitionable key, wherein the bucket is associated with the requested customer information, and wherein the bucket corresponds to a partition of a data store associated with the originating region; and
determining the partition of the data store associated with the originating region and corresponding to the identified bucket based on mapping information relating partitions to buckets and based on the identified bucket, wherein the partition contains the requested customer information.
0 Assignments
0 Petitions
Accused Products
Abstract
A method and system is provided for maintaining customer data in a data store system utilizing a scalable partitioning framework. More specifically, the data store of a customer service system is partitioned (divided) into multiple partitions by a partitionable key of customer data so that each partition owns a subset of the customer data. By maintaining several partitions that store a subset of the customer data exclusive to each other, blackout or brownout problems can be local to one partition and, thus, the availability for the entire system will be increased. Moreover, a set of partitionable keys, a minimal unit to be moved between partitions, is grouped and associated with a partition. By eliminating direct dependencies between the partitions and the partitionable keys, the system can have great flexibility with regard to migrating customer data between partitions and adding a new partition.
-
Citations
15 Claims
-
1. A computer-implemented method executed by one or more computing devices for servicing a request to access customer information in scalable partitioned customer data stores, the computer-implemented method comprising:
-
receiving, at a first computing device, a request to access customer information, wherein the customer information is stored in at least one of a plurality of partitioned data stores, wherein each of the plurality of data stores corresponds to one of a plurality of regions, and wherein the request includes a non-partitionable key associated with a plurality of customers; obtaining one or more partitionable keys based on the non-partitionable key wherein each partitionable key corresponds to customer information regarding a specific customer, wherein each partitionable key is associated with a specific region, and wherein each of the one or more partitionable keys is distinct from the non-partitionable key; for each partitionable key; determining the specific region corresponding to the partitionable key based on a global customer mapping table, wherein the global customer mapping table defines a relationship between the partitionable key and the corresponding specific region; and if the corresponding specific region is an originating region of the request; identifying a bucket associated with the partitionable key, wherein the bucket is associated with the requested customer information, and wherein the bucket corresponds to a partition of a data store associated with the originating region; and determining the partition of the data store associated with the originating region and corresponding to the identified bucket based on mapping information relating partitions to buckets and based on the identified bucket, wherein the partition contains the requested customer information. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A computer system for servicing a request to access customer information in a plurality of scalable partitioned customer data stores, wherein each of the plurality of data stores is associated with one of a plurality of regions, wherein the request includes a non-partitionable key which has a mapping relationship with a plurality of customers, the computer system comprising:
as implemented by one or more computing devices; a global data component configured to maintain a global customer mapping table that represents a relationship between a plurality of partitionable keys and the plurality of regions, wherein each of the plurality of partitionable keys corresponds to customer information of a specific customer, and wherein each of the plurality of partitionable keys is associated with a specific region of the plurality of regions; and a partitioning service component configured to identify the non-partitionable key from the request and to identify one or more partitionable keys based on the non-partitionable key; wherein the global data component is configured to, for each of the identified one or more partitionable keys, determine the specific region associated with the partitionable key. - View Dependent Claims (7, 8, 9, 10)
-
11. A computer-implemented method executed by one or more computing devices for servicing a request to access information about a customer in scalable partitioned customer data stores, wherein each of the plurality of data store stores corresponds to one of a plurality of regions, wherein each data store includes a plurality of partitions containing information regarding customers, wherein each customer corresponds to one of a plurality of partitionable keys, and wherein each partitionable key is associated with a specific region, the computer-implemented method comprising:
-
receiving, at a first computing device, a request involving a non-partitionable key of a customer, wherein the non-partitionable key does not have an indexed mapping relationship with a partitionable key corresponding to the customer; based on the non-partitionable key, querying for information regarding the customer in each partition of the data store corresponding to an originating region of the request; determining whether to query for the information about the customer in non-originating regions; if it is determined to query for information regarding the customer in non-originating regions, querying for the information regarding the customer in each non-originating region; aggregating the obtained information regarding the customer; and providing the aggregated information regarding the customer. - View Dependent Claims (12, 13)
-
-
14. A computer system for servicing a request to access customer information in scalable partitioned customer data stores, wherein each of a plurality of data stores corresponds to one of a plurality of regions, wherein each customer corresponds to one of a plurality of partitionable keys, and wherein each partitionable key is associated with a specific region the computer system comprising:
as implemented by one or more computing devices; a customer service component configured to receive a request involving a non-partitionable key of a customer, wherein the non-partitionable key is distinct from a partitionable key and does not have a defined mapping relationship with the partitionable key corresponding to the customer; and a partitioning service component configured to query for the customer information in each partition in of the data store corresponding to an originating region of the request to obtain information about the customer and to determine whether to query for the customer information in non-originating regions; wherein the partitioning service component is further configured to aggregate the obtained customer information and provide the aggregated customer information. - View Dependent Claims (15)
Specification