Patent ID: 9064031
Filing Date: 2015-06-23
Classification: G06F

Abstract:
1. A database management system comprising: a) a network interface, for receiving database queries from two or more client applications, the client applications operating on two or more user client computers, providing at least one connection into the system for each such client application; b) a group of two or more operational nodes for executing the queries as database operations, each operational node implemented as a logical collection of software components that execute on one or more physical machines; c) one or more operational nodes being designated as storage nodes; d) one or more storage nodes grouped into storage nodegroups wherein the system is further configured and operates such that e) client applications establish connections with the system and interact with the system in a query language; f) user data is stored in tables, and tables are grouped into databases; g) tables are associated with storage nodegroups, and wherein data for a given table is stored on the storage nodes that are part of the storage nodegroup associated with the given table; h) data in tables is distributed across the various nodes in the associated storage nodegroups based on various data distribution methods wherein some data distribution methods are data dependent where each node contains a horizontal partition of the data in the table and where the nodes in the storage nodegroups collectively have all the data for the table, and wherein other data distribution methods are data independent distribution methods where each node contains some or all of the data in the table; i) a row of data in a table distributed according to a data dependent distribution is stored on a node based on a value of a distribution vector (DV) which may consist of columns in the row, or attributes that are not columns of the row, or determined based on the values of some columns of the row; j) two or more rows in a single table with identical distribution vectors are stored on the same storage node achieving co-location of data in the two or more rows; k) two or more rows in two tables associated with the same storage nodegroup and having identical distribution vectors are stored on the same storage node achieving co-location of data in the two or more rows in two tables associated with the same storage nodegroup; l) one or more tables are defined as Container Base Tables (CBT's) and whereby the values of specified columns in the CBT defined as the DV of the CBT are used as the DV for all other tables that are defined to be Container Member Tables (CMT) controlled by the subject CBT; m) rows in the CMT are stored on the storage node based on their DV, which is the DV of a uniquely determined row in the CBT thereby achieving co-location of data in the CMT with the corresponding row of the CBT; and n) whereby when a table is defined as a CBT a named container is established, and whereby other tables may be defined to be CMT's that are part of the named container.