Data partitioning for high-efficiency data retrieval
AssigneeInternational Business Machines Corporation
InventorsYongli An, Mohammad Khatibi
Life of this patent
Estimating the term…
Abstract
Systematically enforcing generation of partition key values for records in a data management system such that for any given partitioned table, all records relating to a common business object share a common partitioning key. Partitioning and/or clustering of these records can then be done based on these specially generated partitioning key values, with entities dependent on the same first-class entity being placed in the same partition and/or cluster. This may provide considerable performance gains in at least some circumstances.
Claims20
A method for organizing data in a data management system, the method comprising:
- receiving a first plurality of records relating to a first business object, with the first plurality of records including all records in the data management system that relate to the first business object;
- for each record of the first plurality of records, generating a primary key value;
- for each record of the first plurality of records, determining a partitioning key value based on the primary key value for that record;
- and
- for each record of the first plurality of records to be stored in a partitioned table, storing the record in the partitioned table in volatile or non-volatile storage based on the partitioning key value of that record;
- wherein:
- the determination of partitioning key values of the first plurality of records is performed so that the partitioning key values result in all records of the first plurality of records to be stored in a partitioned table being stored in a first table partition of that partitioned table.
A computer program product for organizing data in a data management system, the computer program product comprising a computer readable storage medium having stored thereon:
- first program instructions programmed to receive a first plurality of records relating to a first business object, with the first plurality of records including all records in the data management system that relate to the first business object;
- second program instructions programmed to generate a primary key value for each record of the first plurality of records;
- third program instructions programmed to determine a partitioning key value for each record of the first plurality of records based on the primary key value for that record;
- and
- fourth program instructions programmed to, for each record of the first plurality of records to be stored in a partitioned table, store the record in the partitioned table in volatile or non-volatile storage based on the partitioning key value of that record;
- wherein:
- the determination of partitioning key values of the first plurality of records is performed so that the partitioning key values result in all records of the first plurality of records to be stored in a partitioned table being stored in a first table partition of that partitioned table.
A computer system for organizing data in a data management system, the computer system comprising:
- a processor(s) set;
- and
- a computer readable storage medium;
- wherein:
- the processor set is structured, located, connected and/or programmed to run program instructions stored on the computer readable storage medium;
- and
- the program instructions include:
- first program instructions programmed to receive a first plurality of records relating to a first business object, with the first plurality of records including all records in the data management system that relate to the first business object;
- second program instructions programmed to generate a primary key value for each record of the first plurality of records;
- third program instructions programmed to determine a partitioning key value for each record of the first plurality of records based on the primary key value for that record;
- and
- fourth program instructions programmed to, for each record of the first plurality of records to be stored in a partitioned table, store the record in the partitioned table in volatile or non-volatile storage based on the partitioning key value of that record;
- wherein:
- the determination of partitioning key values of the first plurality of records is performed so that the partitioning key values result in all records of the first plurality of records to be stored in a partitioned table being stored in a first table partition of that partitioned table.
Dependencies are inferred from the claim text.