US8972441B2

Extensions to generational data distribution methods

Summary by NHIP

Generational Data Distribution

The system distributes table data across storage nodes using generational structures containing Distribution Maps and Allocation Strategies. It augments incoming database commands via out-of-band rules to determine specific connection scopes for execution.

Claim Score by NHIP

Read claim 11, the broadest

Abstract

An elastic parallel database system where metadata is specified out-of-band during database operations via a set of augmentation rules. The rules are used to augment or modify commands received, and indicate whether they are to be used for specific connections on which they are received, for all client connections, or some other scope.

US8972441B2, drawing sheet 1
Sheet 1 of 37

Term

Projected expiry 2 October 2033.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Projected expiry

20 claims: 2 independent, 18 dependent

  1. 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, the system providing at least one connection into the system for each such client application;b) a group of one 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) client applications establish connections with the system and interact with the system in some query language;d) one or more operational nodes operating as storage nodes and collectively referred to as a storage nodegroup;e) the system further storing user data in tables, and grouping the tables into databases;tables are associated with storage nodegroups and the data for the table is stored on the nodes that are part of the storage nodegroup;g) data in tables is distributed across the storage nodes in a storage nodegroup according to some specified distribution method which is either data dependent or data independent, the distribution method further specifying a Distribution Vector (DV) associated with each table;h) data dependent distribution methods distribute data to ensure co-location of rows with identical distribution vectors (DVs);i) a generational data structure is associated with each storage nodegroup, the generational data structure comprising a generation list, the generation list having a start generation and an end generation, each generation in the generation list consists consisting of a Distribution Map (DM) and an Allocation Strategy (AS);j) a storage nodegroup, when initially created, has a generational data structure that is a start generation;k) a new generation with an empty DM that dispatches no rows is added at any point in the associated generation list;and l) whereby a subject row of data is stored on the storage node in a storage nodegroup associated with a table identified by searching through the generational data structure to identify an Allocation Strategy (AS) associated with a first generation for which inspection of the distribution map (DM) alone cannot determine that the Distribution Vector (DV) of the subject row has not been seen before, or using an Allocation Strategy (AS) associated with a current generation in the generation list.
  2. 11
    Broadest claimClaim Score 13, narrow(NHIP)A method for operating a database management system comprising:a) receiving database queries via a network interface from two or more client applications, the client applications operating on two or more user client computers, to provide at least one connection into the system for each such client application;b) executing the queries as database operations on two or more operational nodes, each operational node implemented as a logical collection of software components that execute on one or more physical machines;c) client applications interacting with the system in some query language;d) one or more operational nodes operating as storage nodes and collectively referred to as a storage nodegroup;e) storing user data in tables, and grouping the tables into databases;f) associating tables with storage nodegroups such that data for the tables is stored on the nodes that are part of the storage nodegroup;g) distributing data in tables across the storage nodes in a storage nodegroup according to some specified distribution method which is either data dependent or data independent, the distribution method further specified by a Distribution Vector (DV) associated with each row in a table;h) distributing data via dependent distribution methods to ensure co-location of rows with identical distribution vectors (DVs);i) associating a generational data structure with each storage nodegroup, the generational data structure comprising a generation list, the generation list having a start generation and an end generation, each generation in the generation list consisting of a Distribution Map (DM) and an Allocation Strategy (AS);j) a storage nodegroup, when initially created, has a generational data structure that is a start generation;k) a new generation with an empty DM that dispatches no rows is added at any point in the associated generation list;and l) storing a subject row of data on the storage node in a storage nodegroup associated with a table identified by searching through the generational data structure to identify an Allocation Strategy (AS) associated with a first generation for which inspection of the distribution map (DM) alone cannot determine that the Distribution Vector (DV) of the subject row has not been seen before, or by using an Allocation Strategy (AS) associated with a current generation in the generation list.