Dynamic data organization
First Claim
1. A method of organizing data in a data container including a plurality of records, each of said plurality of records including a plurality of fields, said method comprising the computer-implemented steps of:
- determining codes for corresponding records of said plurality records based on bit-interleaving values from at least two of said plurality of fields belonging to said corresponding records;
creating a first database object having a plurality of rows corresponding to said plurality of records and a first column for holding said codes for said corresponding records and a second column for holding a reference to said corresponding records;
creating a second database object containing prefixes of said codes based on said first database object; and
subdividing the data container into a plurality of subsets based on said second database object.
2 Assignments
0 Petitions
Accused Products
Abstract
A binary hyperspatial code (BH code) is generated for each row in a table to be partitioned. An intermediate table containing the BH codes and rowids of the original table is created within the database. The intermediate table allows for efficient database operations to be performed to determine how to partition the table without causing the data in the table to go off-line. After the desired partitions have been identified from accessing the intermediate table, the table is subdivided into the desired partitions. In one embodiment, the partitions are stored as index-organized tables index on the BH codes so that rows that are close together (as defined by the BH codes) are likely to be located in the same disk block.
196 Citations
18 Claims
-
1. A method of organizing data in a data container including a plurality of records, each of said plurality of records including a plurality of fields, said method comprising the computer-implemented steps of:
-
determining codes for corresponding records of said plurality records based on bit-interleaving values from at least two of said plurality of fields belonging to said corresponding records;
creating a first database object having a plurality of rows corresponding to said plurality of records and a first column for holding said codes for said corresponding records and a second column for holding a reference to said corresponding records;
creating a second database object containing prefixes of said codes based on said first database object; and
subdividing the data container into a plurality of subsets based on said second database object. - View Dependent Claims (2, 3, 4, 5, 6)
grouping entries of the second database objects into ‘
p’
groups, wherein p is a square root of a number of the entries of the second database; and
separately joining each of the groups with the data container to form the subsets.
-
-
7. A method of organizing data in a data container including a plurality of records, each of said plurality of records including a plurality of fields, said method comprising the computer-implemented steps of:
-
determining codes for corresponding records of said plurality records based on bit-interleaving values from at least two of said plurality of fields belonging to said corresponding records;
subdividing the data container into a plurality of subsets based on said codes; and
storing said plurality of subsets as a tree data structure having a plurality of entries corresponding to said plurality of records arranged in an order dictated by said codes for said corresponding records. - View Dependent Claims (8, 9)
-
-
10. A computer-readable medium bearing instruction for organizing data in a data container including a plurality of records, each of said plurality of records including a plurality of fields, said instructions arranged for causing one or more processors to perform the steps of:
-
determining codes for corresponding records of said plurality records based on bit-interleaving values from at least two said plurality of fields belonging to said corresponding records;
creating a first database object having a plurality of rows corresponding to said plurality of records and a first column for holding said codes for said corresponding records and a second column for holding a reference to said corresponding records;
creating a second database object containing prefixes of said codes based on said first database object; and
subdividing the data container into a plurality of subsets based on said second database object. - View Dependent Claims (11, 12, 13, 14, 15)
grouping entries of the second database objects into ‘
p’
groups, wherein p is a square root of a number of the entries of the second database; and
separately joining each of the groups with the data container to form the subsets.
-
-
16. A computer-readable medium bearing instruction for organizing data in a data container including a plurality of records, each of said plurality of records including a plurality of fields, said instructions arranged for causing one or more processors to perform the steps of:
-
determining codes for corresponding records of said plurality records based on bit-interleaving values from at least two of said plurality of fields belonging to said corresponding records;
subdividing the data container into a plurality of subsets based on said codes;
storing said plurality of subsets as a tree data structure having a plurality of entries corresponding to said plurality of records arranged in an order dictated by said codes for said corresponding records. - View Dependent Claims (17, 18)
-
Specification