A method for massively parallel processing, comprising: initiating, by a resource group manager (440, 540), a management instance (430a, 530a) on an initial machine (410a, 510a), the management instance (430a, 530a) generating an empty initial database partition (450, 550) corresponding to the initial machine (410a, 510a); determining, by the management instance (430a, 530a) on the initial machine (410a, 510a), a total number of database partitions (450, 452, 454, 550, 552, 554, 556) desired for processing a database, the total number of database partitions including the initial database partition; determining, by the resource group manager (440, 540), a number of additional machines (410b, 410c, 510b, 510c) available to process the database, wherein the total number of the database partitions is greater than a sum total number of the initial machine and the additional machines; grouping, by the resource group manager (440, 540) the initial machine (410a, 510a) and the additional machines (410b, 410c, 510b, 510c) together in a resource group (401, 501), wherein the resource group (401, 501) is expandable over time to add a new machine when a new machine become available to process the database; generating, by the resource group manager (440, 540), a database partition-to-processing machine mapping chart in accordance with the total number of database partitions and the number of machines in the resource group (401, 501); and keeping, by the resource group manager (440, 540), the management instance (430a, 530a) on the initial machine (410a, 510a) as the management instance of the first database partition (450, 550) of the database and creating, by the resource group manager (440, 540), management instances (430b, 430c, 530b, 530c, 530d) on the additional machines (410b, 410c, 510b, 510c) in the resource group (401, 501), generating the total number of database partitions (450, 452, 454, 550, 552, 554) desired for the database and attaching the storage space of the partitions to the database management instances (430a, 430b, 430c, 530a, 530b, 530c, 530d) according to the database partition-to-processing machine mapping chart, wherein one of the additional machines in the resource group is running at least two of the management instances (530c, 530d) for processing the database; expanding, by the resource group manager (440, 540), the resource group (401, 501) to include a new machine; altering, by the resource group manager (440, 540), the database partition-to-processing machine mapping chart in accordance with the total number of database partitions and the number of machines in the expanded resource group; relocating, by the resource group manager (440, 540), one of the management instances from the additional machine running two of the management instances to the new machine. initiating, by a resource group manager (440, 540), a management instance (430a, 530a) on an initial machine (410a, 510a), the management instance (430a, 530a) generating an empty initial database partition (450, 550) corresponding to the initial machine (410a, 510a); determining, by the management instance (430a, 530a) on the initial machine (410a, 510a), a total number of database partitions (450, 452, 454, 550, 552, 554, 556) desired for processing a database, the total number of database partitions including the initial database partition; determining, by the resource group manager (440, 540), a number of additional machines (410b, 410c, 510b, 510c) available to process the database, wherein the total number of the database partitions is greater than a sum total number of the initial machine and the additional machines; grouping, by the resource group manager (440, 540) the initial machine (410a, 510a) and the additional machines (410b, 410c, 510b, 510c) together in a resource group (401, 501), wherein the resource group (401, 501) is expandable over time to add a new machine when a new machine become available to process the database; generating, by the resource group manager (440, 540), a database partition-to-processing machine mapping chart in accordance with the total number of database partitions and the number of machines in the resource group (401, 501); and keeping, by the resource group manager (440, 540), the management instance (430a, 530a) on the initial machine (410a, 510a) as the management instance of the first database partition (450, 550) of the database and creating, by the resource group manager (440, 540), management instances (430b, 430c, 530b, 530c, 530d) on the additional machines (410b, 410c, 510b, 510c) in the resource group (401, 501), generating the total number of database partitions (450, 452, 454, 550, 552, 554) desired for the database and attaching the storage space of the partitions to the database management instances (430a, 430b, 430c, 530a, 530b, 530c, 530d) according to the database partition-to-processing machine mapping chart, wherein one of the additional machines in the resource group is running at least two of the management instances (530c, 530d) for processing the database; expanding, by the resource group manager (440, 540), the resource group (401, 501) to include a new machine; altering, by the resource group manager (440, 540), the database partition-to-processing machine mapping chart in accordance with the total number of database partitions and the number of machines in the expanded resource group; relocating, by the resource group manager (440, 540), one of the management instances from the additional machine running two of the management instances to the new machine.