Claims Analysis
Total Claims: 4
Claim 1
Independent Claim
340 words
A method of merging two databases of records, each record having a plurality of fields, comprising the steps of: (a) computing a first key for each record in each database by extracting at least a portion of a first field: (b) parallel merge sorting the records in each database using the first key; (c) comparing to each other, on a first group of at least one processor, a predetermined number of sequential records sorted according to the first key to determine if one or more of the records match; (d) storing identifiers for any matching records; (e) computing a second key for each record in each database by extracting at least a portion of a second field; (f) parallel merge sorting the records in each database using the second key; (g) comparing to each other, on a second group of at least one processor, a predetermined number of sequential records sorted according to the second key to determine if one or more of the records match; (h) storing identifiers for any matching records; (i) creating a union of said stored identifiers; (j) subjecting said union to transitive closure; (k) wherein, in each group of processors for each database: (i) N is a number of records; (ii) P is a number of processors, each processor p, 1≦p≦P, being able to store M+w records; (a) w is a size of a merge phase window; and (b) M is a blocking factor; (ii) P is less than N; (iii) MP is less than N; and (iv) r i represents record i in a cluster. 0≦i≦MP-1; and (1) each said comparing step comprises the steps of: (i) dividing the sorted database into N/MP clusters; (ii) processing each of the N/MP clusters in turn by providing each processor p with records r.sub.(p-1)M, . . . , r pM-1 , . . . , r pM+w-2 , for 1≦p≦P; (iii) searching matching records independently at each processor using a window of the size w; and (iv) repeating the processing step for a next cluster of records.
Claim 2
Independent Claim
340 words
A method of merging two databases of records, each record having a plurality of fields, comprising the steps of: (a) computing a first key for each record in each database by extracting at least a portion of a first field: (b) parallel merge sorting the records in each database using the first key; (c) comparing to each other, on a first group of at least one processor, a predetermined number of sequential records sorted according to the first key to determine if one or more of the records match; (d) storing identifiers for any matching records; (e) computing a second key for each record in each database by extracting at least a portion of a second field; (f) parallel merge sorting the records in each database using the second key; (g) comparing to each other, on a second group of at least one processor, a predetermined number of sequential records sorted according to the second key to determine if one or more of the records match; (h) storing identifiers for any matching records; (i) creating a union of said stored identifiers; (j) subjecting said union to transitive closure; (k) wherein, in each group of processors for each database: (i) N is a number of records; (ii) P is a number of processors, each processor p, 1≦p≦P, being able to store M+w records; (a) w is a size of a merge phase window; and (b) M is a blocking factor; (ii) P is less than N; (iii) MP is less than N; and (iv) r i represents record i in a cluster. 0≦i≦MP-1; and (1) each said comparing step comprises the steps of: (i) dividing the sorted database into N/MP clusters; (ii) processing each of the N/MP clusters in turn by providing each processor p with records r.sub.(p-1)M, . . . , r pM-1 , . . . , r pM+w-2 , for 1≦p≦P; (iii) searching matching records independently at each processor using a window of the size w; and (iv) repeating the processing step for a next cluster of records.
Claim 3
Dependent Claim
142 words
The method according to claim 1, wherein: (a) in each group of processors for each database: (i) N is a number of records in the database; (ii) P is a number of processors p; and (iii) C is a number of clusters to be formed per processor p; and (b) each said comparing step comprises the steps of: (i) dividing the N records into CP subranges; (ii) assigning to each processor C clusters of the subranges; (iii) providing a coordinator processor which reads the database and sends each record to an appropriate processor where each record is received; (iv) saving each received record at each processor where it is received in a proper local cluster; (v) after the coordinator finishes reading and clustering the data among the processors, sorting and applying a window scanning method to the local clusters of each processor.
Claim 4
Dependent Claim
23 words
The method according to claim 2, wherein the coordinator processor load balances the various processors using a simple longest processing time first strategy.