主权项 |
1. In a distributed shared-nothing database system maintaining data across a plurality of logical partitions each having a single thread of execution and being allocated to a position on a consistent hash ring, a computer-implemented method for transparently performing data rebalancing with serializable isolation when new logical partitions are added to the database system, the method comprising the steps of:
(a) calculating a desired consistent hash ring including an added new partition to the database system in one or more positions in the consistent hash ring previously allocated to one or more pre-existing partitions; (b) generating an index identifying data to be moved from said one or more pre-existing partitions to the new partition; (c) executing a series of rebalancing transactions in serialized transaction queues on said one or more pre-existing partitions and the new partition to transfer different portions of the data to be moved from said one or more pre-existing partitions to the new partition, while maintaining serializable isolation, and updating the consistent hash ring after each rebalancing transaction has been executed to reflect transfer of the data from said one or more pre-existing partitions to the new partition, wherein serializable isolation is maintained by pausing execution of pending transactions for at least one of the one or more pre-existing partitions and the new partition for a specified amount of time, the specified amount of time representing an amount of time expected to transfer data from the one or more pre-existing partitions to the new partition; and (d) rerouting in-flight transactions to the new partition for data moved from the one or more pre-existing partitions to the new partition. |