IP Library Patent Application 15182847
Patent Application
App. No. 15/182,847

PARTITIONING ONLINE DATABASES

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
15/182,847
Abstract

Methods, systems, and computer program products are provided for partitioning online databases. Online database operations, such as, for example, SPLIT, MERGE, and DROP, are used to alter the arrangement of partitions in a federated database. A SPLIT operation splits rows at one partition across a plurality of other partitions. A MERGE operation merges rows at a plurality of partitions in to one partition. A DROP operation shifts responsibility for rows of data from one partition to another partition and then drops the rows from the one partition.

Claims (37)

1 . A computing system, comprising:

one or more processors; and

one or more computer-readable media having stored thereon computer-executable instructions that are executable by the one or more processors to cause the computing system to drop rows in a distributed database, the computer-executable instructions including instructions that are executable to cause the computing system to perform at least the following:

receive a drop directive including a set of key values that each identify a different row of the distributed database that is to be dropped, the set of key values identifying: (i) one or more first rows selected from among a first subset of rows that are stored in a first partition of the distributed database, and (ii) one or more second rows selected from among a second subset of rows that are stored in a second partition of the distributed database; and

execute a drop operation to drop the one or more first rows and the rows one or more second rows, while the first and second partitions remain online, including:

creating a third partition of the distributed database;

expanding the one or more first rows and the one or more second rows into the third partition; and

dropping the one or more first rows from the first partition and dropping the one or more second rows from the second partition.

2 . The computing system of claim 1 , the computer-executable instructions also including instructions that are executable to configure the computing system assign the set of key values to the third partition.

3 . The computing system of claim 1 , wherein one or more data fields of the one or more first and one or more second rows that are expanded into the third partition are left blank.

4 . The computing system of claim 1 , wherein the subset of key values is defined according to a low directive that drops key values that are below a defined boundary.

5 . The computing system of claim 1 , wherein the subset of key values is defined according to a high directive that drops key values that are above a defined boundary.

6 . The computing system of claim 1 , wherein each key value comprises a federation key value.

7 . The computing system of claim 1 , wherein the first subset of rows that are stored in a first partition are stored in the first partition based on a first subset of federation key values being assigned to the first partition, and wherein the second subset of rows that are stored in a second partition are stored in the second partition based on a second subset of federation key values being assigned to the second partition.

8 . A method, implemented at a computer system that includes one or more processors, for dropping rows in a distributed database, the method comprising:

receiving a drop directive including a set of key values that each identify a different row of the distributed database that is to be dropped, the set of key values identifying: (i) one or more first rows selected from among a first subset of rows that are stored in a first partition of the distributed database, and (ii) one or more second rows selected from among a second subset of rows that are stored in a second partition of the distributed database; and

executing a drop operation to drop the one or more first rows and the rows one or more second rows, while the first and second partitions remain online, including:

creating a third partition of the distributed database;

expanding the one or more first rows and the one or more second rows into the third partition; and

dropping the one or more first rows from the first partition and dropping the one or more second rows from the second partition.

9 . The method of claim 8 , further comprising assigning the set of key values to the third partition.

10 . The method of claim 8 , wherein one or more data fields of the one or more first and one or more second rows that are expanded into the third partition are left blank.

11 . The method of claim 8 , wherein the subset of key values is defined according to a low directive that drops key values that are below a defined boundary.

12 . The method of claim 8 , wherein the subset of key values is defined according to a high directive that drops key values that are above a defined boundary.

13 . The method of claim 8 , wherein each key value comprises a federation key value.

14 . The method of claim 8 , wherein the first subset of rows that are stored in a first partition are stored in the first partition based on a first subset of federation key values being assigned to the first partition, and wherein the second subset of rows that are stored in a second partition are stored in the second partition based on a second subset of federation key values being assigned to the second partition.

15 . A computer program product comprising one or more hardware storage devices having stored thereon computer-executable instructions that are executable by one or more processors of a computing system to cause the computing system to drop rows in a distributed database, the computer-executable instructions including instructions that are executable to cause the computing system to perform at least the following:

receive a drop directive including a set of key values that each identify a different row of the distributed database that is to be dropped, the set of key values identifying: (i) one or more first rows selected from among a first subset of rows that are stored in a first partition of the distributed database, and (ii) one or more second rows selected from among a second subset of rows that are stored in a second partition of the distributed database; and

execute a drop operation to drop the one or more first rows and the rows one or more second rows, while the first and second partitions remain online, including:

creating a third partition of the distributed database;

expanding the one or more first rows and the one or more second rows into the third partition; and

dropping the one or more first rows from the first partition and dropping the one or more second rows from the second partition.

16 . The computer program product of claim 15 , the computer-executable instructions also including instructions that are executable to configure the computing system assign the set of key values to the third partition.

17 . The computer program product of claim 15 , wherein one or more data fields of the one or more first and one or more second rows that are expanded into the third partition are left blank.

18 . The computer program product of claim 15 , wherein the subset of key values is defined according to a low directive that drops key values that are below a defined boundary.

19 . The computer program product of claim 15 , wherein the subset of key values is defined according to a high directive that drops key values that are above a defined boundary.

20 . The computer program product of claim 15 , wherein the first subset of rows that are stored in a first partition are stored in the first partition based on a first subset of federation key values being assigned to the first partition, and wherein the second subset of rows that are stored in a second partition are stored in the second partition based on a second subset of federation key values being assigned to the second partition.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 15, 2016
From: NOVIK, LEV; KIMBALL, ANDREW; PETROSSIAN, TONY; BIYIKOGLU, CIHANGIR; VOUTILAINEN, SANTERI OLAVI; TALIUS, TOMAS; CSERI, ISTVAN; HAMMER, JOACHIM; CLARK, JASON D.; FRIEDMAN, MARC T.; KALHAN, AJAY
To: MICROSOFT CORPORATION
Reel/Frame 038918/0082 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 15, 2016
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 038918/0158 →