Abstract:
System and method embodiments are provided to implement highly scalable and high availability (HA) clusters in massively parallel processing (MPP) systems. The embodiments include a method to build a highly scalable MPP HA cluster, which provides HA to the cluster while allowing it to scale to relatively larger number of nodes. An embodiment apparatus includes a plurality of data processing nodes distributed in a plurality of corresponding sub-clusters and configured to exchange heart-beat messages between each other within limit of each of the corresponding sub-clusters to maintain sub-cluster membership integrity and detect failures in the corresponding sub-clusters. The sub-clusters are arranged in a fan-out tree hierarchy and configured to prevent heart-beat messaging between each other.
Abstract:
In one embodiment, a method for adding partitions to a massively parallel processing (MPP) cluster includes determining whether a first number of available nodes of a first leaf sub-cluster (LSC) of a meta sub-cluster (MSC) of the MPP cluster is greater than or equal to a second number of partitions of a table and assigning a first node of the first LSC to a first partition when the first number of available nodes is greater than or equal to the second number of partitions. The method also includes searching for a second LSC in the MSC when the first number of available nodes is less than the second number of partitions.
Abstract:
An embodiment method for massively parallel processing includes initiating a management instance on an initial machine, the management instance generating an initial partition corresponding to the initial machine, determining a total number of partitions desired for processing a database, the total number of partitions including the initial partition, determining a number of additional machines available to process the database, grouping the initial machine and the additional machines together in a pod, and launching the management instance on the additional machines in the pod to generate the total number of partitions desired for the database. Additional embodiment methods and an embodiment system operable to perform such methods are also disclosed.
Abstract:
A method for performing a transaction in a massively parallel processing (MPP) database includes receiving, by a transaction manager, from a first resource manager, a first snapshot of the first resource manager and receiving, by the transaction manager, from a second resource manager, a second snapshot of the second resource manager. Also, the method includes reconciling the first snapshot of the first resource manager and the second snapshot of the second resource manager to generate a reconciled snapshot and transmitting, by the transaction manager, to the first resource manager and the second resource manager, the reconciled snapshot. Additionally, the method includes performing a transaction using the reconciled snapshot.
Abstract:
Embodiments are provided herein for an efficient database storage model, which utilizes sparse file features to efficiently store and retrieve data. The embodiments provide database algorithms that utilize the file system abstraction layer to hide the complexity of managing disk space while providing the database a linear and contiguous logical address space for holding multiple database objects. An embodiment method includes pre-allocating, in a logical sparse file, a plurality of segments fixed in size and contiguous at fixed offsets. Upon receiving a command to write database objects to the segments, the database objects are mapped to the segments in a database catalog. The method further includes interfacing with a file system to initialize storage medium space for writing the data objects to the segments at the fixed offsets.
Abstract:
A method for performing a transaction in a massively parallel processing (MPP) database includes receiving, by a transaction manager, from a first resource manager, a first snapshot of the first resource manager and receiving, by the transaction manager, from a second resource manager, a second snapshot of the second resource manager. Also, the method includes reconciling the first snapshot of the first resource manager and the second snapshot of the second resource manager to generate a reconciled snapshot and transmitting, by the transaction manager, to the first resource manager and the second resource manager, the reconciled snapshot. Additionally, the method includes performing a transaction using the reconciled snapshot.
Abstract:
An embodiment method for massively parallel processing includes assigning a primary key to a first table in a database and a foreign key to a second table in the database, the foreign key of the second table identical to the primary key of the first table, determining a number of partition groups desired for the database, partitioning the first table into first partitions based on the primary key assigned and the number of partition groups desired, partitioning the second table into second partitions based on the foreign key assigned and the number of partition groups desired, and distributing the first partitions and the second partitions to the partition groups as partitioned. An embodiment system for implementing the embodiment methods is also disclosed.
Abstract:
An embodiment method for massively parallel processing includes initiating a management instance on an initial machine, the management instance generating an initial partition corresponding to the initial machine, determining a total number of partitions desired for processing a database, the total number of partitions including the initial partition, determining a number of additional machines available to process the database, grouping the initial machine and the additional machines together in a pod, and launching the management instance on the additional machines in the pod to generate the total number of partitions desired for the database. Additional embodiment methods and an embodiment system operable to perform such methods are also disclosed.
Abstract:
An embodiment method for massively parallel processing includes assigning a primary key to a first table in a database and a foreign key to a second table in the database, the foreign key of the second table identical to the primary key of the first table, determining a number of partition groups desired for the database, partitioning the first table into first partitions based on the primary key assigned and the number of partition groups desired, partitioning the second table into second partitions based on the foreign key assigned and the number of partition groups desired, and distributing the first partitions and the second partitions to the partition groups as partitioned. An embodiment system for implementing the embodiment methods is also disclosed.
Abstract:
System and method embodiments are provided to implement highly scalable and high availability (HA) clusters in massively parallel processing (MPP) systems. The embodiments include a method to build a highly scalable MPP HA cluster, which provides HA to the cluster while allowing it to scale to relatively larger number of nodes. An embodiment apparatus includes a plurality of data processing nodes distributed in a plurality of corresponding sub-clusters and configured to exchange heart-beat messages between each other within limit of each of the corresponding sub-clusters to maintain sub-cluster membership integrity and detect failures in the corresponding sub-clusters. The sub-clusters are arranged in a fan-out tree hierarchy and configured to prevent heart-beat messaging between each other.