Database system with improved methods for radix sorting
First Claim
1. In a computer system storing a database comprising a plurality of data records, an improved method for sorting data records, the method comprising:
- specifying a sort order which the data records are to be sorted according to, said sort order indicating at least one field of the data records which the data records are to be sorted by, wherein said at least one field is capable of storing a data type having an arbitrary bit ordering;
setting a radix value indicating how contiguous bits from said at least one field are to be grouped into bit sets regardless of data types which comprise said at least one field, each bit set serving as a unit for comparison during the sort;
creating sort plan information specifying a particular sequence of bit sets from said at least one field which are to be compared during the sort and specifying a comparison type for each particular bit set, said sort plan information being capable of specifying an arbitrary sequence of said bit sets to be compared during the sort, said comparison type indicating how each bit set is to be interpreted upon comparison; and
sorting the data records by performing at least a radixsort on the data records based on said sort plan information.
2 Assignments
0 Petitions
Accused Products
Abstract
System and methods are described for improved sorting of information records. The system provides radix sorting on native data types--that is, without the resource-expensive approach of converting data types into character representations. A correct interpretation of a group of bits under examination is provided by the system at the point of examination by a radixsort engine. "Sort plan" information is provided to the radixsort engine instructing it how a particular set of bits should be interpreted for purposes of comparison. The knowledge includes a "comparison type" for a set of bits under exam. This is employed by the engine to determine an appropriate "weighting" of each group of bits--how each group should be treated at the point of comparison. The engine itself operates generically: it simply operates on the set of bits as specified by the sort plan entries, regardless of the particular data types which comprise the bits or the one or more keys from which the bits are derived. In this manner, the system can enable the radixsort engine to properly interpret groups of bits, for undertaking a comparison operation for different types, thereby avoiding the undesirable task of converting data types into character representations.
-
Citations
42 Claims
-
1. In a computer system storing a database comprising a plurality of data records, an improved method for sorting data records, the method comprising:
-
specifying a sort order which the data records are to be sorted according to, said sort order indicating at least one field of the data records which the data records are to be sorted by, wherein said at least one field is capable of storing a data type having an arbitrary bit ordering; setting a radix value indicating how contiguous bits from said at least one field are to be grouped into bit sets regardless of data types which comprise said at least one field, each bit set serving as a unit for comparison during the sort; creating sort plan information specifying a particular sequence of bit sets from said at least one field which are to be compared during the sort and specifying a comparison type for each particular bit set, said sort plan information being capable of specifying an arbitrary sequence of said bit sets to be compared during the sort, said comparison type indicating how each bit set is to be interpreted upon comparison; and sorting the data records by performing at least a radixsort on the data records based on said sort plan information. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. In a data processing system, an improved method for sorting data records according to at least one sort key, each sort key comprising key values derived from a particular field of the data records, said particular field comprising a data type capable of having an arbitrary bit ordering, the method comprising:
-
based on said at least one sort key, constructing a sort plan specifying sets of bits from said at least one sort key which are to undergo comparison as a group and specifying how each set of bits is to be interpreted at the point of comparison, based on underlying data types which comprise said at least one sort key, said sort plan being capable of specifying an arbitrary sequence of said bit sets to be compared during the sort; and performing a sort by examining successive sets of bits and ordering each data record according to how the bits which the bit sets each comprise are interpreted at the point of comparison. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. In a computer-implemented radixsort process, an improved method for performing comparisons during radix sorting of data records, said data records storing at least one data field to sort on that comprises a data type capable of having an arbitrary bit ordering, the method comprising:
-
determining a comparison type and weighting for indicating how each particular set of bits is to be interpreted during comparison operations of the radixsort, said step specifying a particular sequence for comparing sets of bits for a data type capable of having an arbitrary bit ordering; and performing comparison operations on original bits taken from the data records, each comparison operation interpreting the original bits according to said specified particular sequence and said determined comparison type and weighting which indicates how each particular set of bits is to be sorted. - View Dependent Claims (32, 33, 34, 35)
-
-
36. A system for sorting data records comprising:
-
a computer storing a database of data records; means for sorting data records by at least one field, said means comprising; means for selecting original bit sets from said at least one field, said bit sets having a fixed length and an arbitrary ordering, means for indicating how each original bit set is to be interpreted upon comparison during the sort, including indicating a particular sequence in which the original bit sets are to be compared, and means for ordering the data records according to interpretation of individual bit sets at the point of comparison. - View Dependent Claims (37, 38, 39, 40, 41, 42)
-
Specification