IP Library Granted Patent US 9,977,796
Granted Patent B2
US 9,977,796 · App. 14/453,470 · Granted May 22, 2018

Table creation for partitioned tables

Inventors: Lars Fricke (Karlsruhe, DE); Christian Bensberg (Heidelberg, DE)
Assignee: SAP SE
G06F17/30292G06F17/30312G06F17/30339G06F17/30501G06F17/30522G06F17/30584
View Patent ↗
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 9,977,796
App. No.
14/453,470
Granted
May 22, 2018
Kind
B2
Abstract

A table creation request pertaining to a table in a database maintained on a multi-node data partitioning landscape that comprises a plurality of processing nodes can specify a number of partitions to be generated. At run time, a currently available number of processing nodes in the multi-node data partitioning landscape can be queried, and this currently available number of processing nodes can be compared with the specified number of partitions to be generated for the created table. The table can be generated with the specified number of partitions such that the generated partitions are located across the plurality of partitions according to a load balancing approach if the number of processing nodes equals the number of partitions to be generated or according to other information in the table request if the number of processing nodes does not equal the specified number of partitions.

Claims (52)

1. A computer program product comprising a non-transitory machine-readable storage medium storing instructions that, when executed by at least one programmable processor, cause the at least one programmable processor to perform operations comprising:

comparing a currently available number of available processing nodes in a multi-node data partitioning landscape that comprises a plurality of processing nodes with a specified number of partitions to be generated for a table, the specified number of partitions to be generated for a table being received as part of a table creation request that further comprises other information, wherein the comparing further comprises determining that the currently available number of processing nodes differs from the specified number of partitions;

generating a plurality of partitions for the table, the plurality of partitions comprising the specified number of partitions, the plurality of partitions being generated in a database maintained on the multi-node data partitioning landscape;

locating the plurality of partitions across the available processing nodes in the multi-node data partitioning landscape according to a data partitioning approach, the locating comprising:

using the other information in the table creation request to determine the data partitioning approach; and

assigning, using the data partitioning approach, each partition of the plurality of partitions to a respective available processing node of the available processing nodes such that a first partition of the plurality of partitions is located on a first available processing node of the available processing nodes that also comprises a second partition of another table in the database to which the first partition is logically related;

determining, based on the data partitioning approach and in response to a data request requesting data that is logically related to the first partition and the second partition, the first available processing node onto which the first partition and the second partition were located; and

directing, based on the determining, the data request to the first available processing node.

2. A computer program product as in claim 1 , wherein the other information in the table creation request comprises semantic information regarding relationships between data in the plurality of partitions.

3. A computer program product as in claim 1 , wherein the operations further comprise:

receiving, by a recipient node of the plurality of processing nodes, a first data request, the first data request being received directly from a requesting machine without being handled by a master node,

identifying, by the recipient node, a target node of the plurality of processing nodes to handle the first data request, the identifying comprising the recipient node applying partitioning information to identify one partition of the plurality of partitions to which the first data request should be directed, and mapping information associating each partition of the plurality of partitions with an assigned node of the plurality of processing nodes; and

redirecting, by the recipient node, the first data request to the target node so that the target node can act on the identified one partition in response to the first data request.

4. A computer program product as in claim 3 , wherein the operations further comprise accessing the partitioning information and the mapping information from at least one of a local storage accessible to the recipient node and a metadata repository accessible to each of the plurality of processing nodes.

5. A computer program product as in claim 1 , wherein the plurality of partitions are part of a multi-node data partitioning landscape comprising data partitioning over at least two partitioning levels, the table being further partitioned at a first level using a first partitioning specification and at a second level using a second partitioning specification.

6. A computer program product as in claim 1 , wherein the table is further partitioned at a first level into at least two first level partitions based on a first partitioning method, and each of the first level partitions is further partitioned at a second level into two or more second-level partitions based on a second partitioning method that is the same for all of the at least two first level partitions.

7. A computer program product as in claim 1 , wherein the table creation request comprises a parameter specifying the specified number of partitions to be generated for the table.

8. A computer program product as in claim 2 , wherein the semantic information comprises grouping information indicating that the first partition and the second partition are related and should be located on a same processing node.

9. A system comprising:

computer hardware configured to perform operations comprising:

comparing a currently available number of available processing nodes in a multi-node data partitioning landscape that comprises a plurality of processing nodes with a specified number of partitions to be generated for a table, the specified number of partitions to be generated for a table being received as part of a table creation request that further comprises other information, wherein the comparing further comprises determining that the currently available number of processing nodes differs from the specified number of partitions;

generating a plurality of partitions for the table, the plurality of partitions comprising the specified number of partitions, the plurality of partitions being generated in a database maintained on the multi-node data partitioning landscape;

locating the plurality of partitions across the available processing nodes in the multi-node data partitioning landscape according to a data partitioning approach, the locating comprising:

using the other information in the table creation request to determine the data partitioning approach; and

assigning, using the data partitioning approach, each partition of the plurality of partitions to a respective available processing node of the available processing nodes such that a first partition of the plurality of partitions is located on a first available processing node of the available processing nodes that also comprises a second partition of another table in the database to which the first partition is logically related;

determining, based on the data partitioning approach and in response to a data request requesting data that is logically related to the first partition and the second partition, the first available processing node onto which the first partition and the second partition were located; and

directing, based on the determining, the data request to the first available processing node.

10. A system as in claim 9 , wherein the other information in the table creation request comprises semantic information regarding relationships between data in the plurality of partitions.

11. A system as in claim 9 , wherein the operations further comprise:

receiving, by a recipient node of the plurality of processing nodes, a first data request, the first data request being received directly from a requesting machine without being handled by a master node,

identifying, by the recipient node, a target node of the plurality of processing nodes to handle the first data request, the identifying comprising the recipient node applying partitioning information to identify one partition of the plurality of partitions to which the first data request should be directed, and mapping information associating each partition of the plurality of partitions with an assigned node of the plurality of processing nodes; and

redirecting, by the recipient node, the first data request to the target node so that the target node can act on the identified one partition in response to the first data request.

12. A system as in claim 11 , wherein the operations further comprise accessing the partitioning information and the mapping information from at least one of a local storage accessible to the recipient node and a metadata repository accessible to each of the plurality of processing nodes.

13. A system as in claim 9 , wherein the plurality of partitions are part of a multi-node data partitioning landscape comprising data partitioning over at least two partitioning levels, the table being further partitioned at a first level using a first partitioning specification and at a second level using a second partitioning specification.

14. A system as in claim 9 , wherein the table is further partitioned at a first level into at least two first level partitions based on a first partitioning method, and each of the first level partitions is further partitioned at a second level into two or more second-level partitions based on a second partitioning method that is the same for all of the at least two first level partitions.

15. A computer-implemented method comprising:

comparing a currently available number of available processing nodes in a multi-node data partitioning landscape that comprises a plurality of processing nodes with a specified number of partitions to be generated for a table, the specified number of partitions to be generated for a table being received as part of a table creation request that further comprises other information, wherein the comparing further comprises determining that the currently available number of processing nodes differs from the specified number of partitions;

generating a plurality of partitions for the table, the plurality of partitions comprising the specified number of partitions, the plurality of partitions being generated in a database maintained on the multi-node data partitioning landscape;

locating the plurality of partitions across the available processing nodes in the multi-node data partitioning landscape according to a data partitioning approach, the locating comprising:

using the other information in the table creation request to determine the data partitioning approach; and

assigning, using the data partitioning approach, each partition of the plurality of partitions to a respective available processing node of the available processing nodes such that a first partition of the plurality of partitions is located on a first available processing node of the available processing nodes that also comprises a second partition of another table in the database to which the first partition is logically related;

determining, based on the data partitioning approach and in response to a data request requesting data that is logically related to the first partition and the second partition, the first available processing node onto which the first partition and the second partition were located; and

directing, based on the determining, the data request to the first available processing node;

wherein the comparing, the determining, the generating, the locating, the using, the assigning, the determining, and the directing are performed by at least one system comprising at least one programmable processor.

16. A computer-implemented method as in claim 15 , wherein the other information in the table creation request comprises semantic information regarding relationships between data in the plurality of partitions.

17. A computer-implemented method as in claim 15 , wherein the operations further comprise:

receiving, by a recipient node of the plurality of processing nodes, a first data request, the first data request being received directly from a requesting machine without being handled by a master node,

identifying, by the recipient node, a target node of the plurality of processing nodes to handle the first data request, the identifying comprising the recipient node applying partitioning information to identify one partition of the plurality of partitions to which the first data request should be directed, and mapping information associating each partition of the plurality of partitions with an assigned node of the plurality of processing nodes; and

redirecting, by the recipient node, the first data request to the target node so that the target node can act on the identified one partition in response to the first data request.

18. A computer-implemented method as in claim 17 , wherein the operations further comprise accessing the partitioning information and the mapping information from at least one of a local storage accessible to the recipient node and a metadata repository accessible to each of the plurality of processing nodes.

19. A computer-implemented method as in claim 15 , wherein the plurality of partitions are part of a multi-node data partitioning landscape comprising data partitioning over at least two partitioning levels, the table being further partitioned at a first level using a first partitioning specification and at a second level using a second partitioning specification.

20. A computer-implemented method as in claim 15 , wherein the table is further partitioned at a first level into at least two first level partitions based on a first partitioning method, and each of the first level partitions is further partitioned at a second level into two or more second-level partitions based on a second partitioning method that is the same for all of the at least two first level partitions.

Assignments (3)
CHANGE OF NAME Recorded Jan 15, 2021
From: SAP AG
To: SAP SE
Reel/Frame 056294/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 14, 2021
From: FRICKE, LARS; BENSBERG, CHRISTIAN
To: SAP AG
Reel/Frame 054926/0635 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 6, 2014
From: FRICKE, LARS; BENSBERG, CHRISTIAN
To: SAP SE
Reel/Frame 033480/0711 →
Continuity (2)
Continuation 13336942 · Dec 23, 2011
Related Publication 20140351291A1 · Nov 27, 2014