← Back to Patent Explorer
US5884320A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and system for performing proximity joins on high-dimensional data points in parallel

Assignee: International Business Machines Corp
•
Filing: 1997-08-20
•
Granted: 1999-03-16
•
Expires: 2017-08-20
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and system for performing spatial proximity joins on high-dimensional points representing data objects of a database in parallel in a multiprocessor system. The method comprises the steps of: partitioning the data points among the processors; creating index structures for the data points of the processors in parallel; assigning the join operations to the processors using the index structures; and simultaneously redistributing and joining the data points in the processors in parallel based on a predetermined joining condition. An efficient data structure, ε-K-D-B tree, is used to provide fast access to the high-dimensional points and to minimize system storage requirements. The invention achieves fast response time and requires minimum storage space by having structurally identical indices among the processors, assigning workload based on the join costs, and redistributing the data points among the processors while joining the data whenever possible.

Inventors

  • 👤 Rakesh Agrawal
  • 👤 John Christopher Shafer

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 11:48
CPC Classifications
G; G06; G06F; G06F16/00; G06F16/20; G06F16/28; G06F16/283; G06F16/24; G06F16/245; G06F16/2453; G06F16/24532; G06F16/2455; G06F16/24553; G06F16/24558; G06F16/2456; Y; Y10; Y10S; Y10S707/00; Y10S707/99931; Y10S707/99932; Y10S707/99941; Y10S707/99944; Y10S707/99945; Y10S707/99948

Claims Analysis

Total Claims: 52
Claim 1
Independent Claim 103 words
A method for performing proximity join operations on high-dimensional data points in parallel in a multiprocessor system, the join operations being based on a similarity distance between any two data points, the method comprising the steps of: partitioning the data points among the processors; creating an index structure for the data points of each processor, the index structure having a plurality of leaf nodes each corresponding to a subset of the data points; assigning the join operations to the processors using the index structures; and simultaneously redistributing and joining the data points in the processors in parallel based on a predetermined joining condition.
Claim 2
Independent Claim 103 words
A method for performing proximity join operations on high-dimensional data points in parallel in a multiprocessor system, the join operations being based on a similarity distance between any two data points, the method comprising the steps of: partitioning the data points among the processors; creating an index structure for the data points of each processor, the index structure having a plurality of leaf nodes each corresponding to a subset of the data points; assigning the join operations to the processors using the index structures; and simultaneously redistributing and joining the data points in the processors in parallel based on a predetermined joining condition.
Claim 3
Dependent Claim 43 words
The method as recited in claim 1, wherein the step of assigning the joint operations includes the steps of: determining a cost for each join operation; and assigning the join operations to the processors based on the determined costs of the join operations.
Claim 4
Dependent Claim 52 words
The method as recited in claim 2, wherein the step of determining a cost for each join operation includes the steps of: traversing the index structures to determine a global size for each leaf node; and estimating the cost from the global sizes of the leaf nodes involved in the join operation.
Claim 5
Dependent Claim 56 words
The method as recited in claim 1, wherein: the index structure is a multi-dimensional ε-K-D-B tree having a root node branching into a plurality of interior nodes, the tree terminating with the leaf nodes; and the joining condition is such that the similarity distance between any two data points to be joined is at most ε.
Claim 6
Dependent Claim 65 words
The method as recited in claim 4, wherein the step of creating an index structure includes the step of splitting each leaf node, in at least one dimension of the tree, into .left brkt-bot.1/ε.right brkt-bot. child nodes whenever the number of points in the leaf node exceeds a predetermined value, each child node having a width greater than ε in the dimension used for splitting.
Claim 7
Dependent Claim 51 words
The method as recited in claim 5, wherein: each leaf node of the ε-K-D-B tree has a depth equal to one plus the number of interior nodes between the root node and leaf node; and the step of splitting a leaf node is based on the depth of the leaf node.
Claim 8
Dependent Claim 48 words
The method as recited in claim 5, wherein the step of splitting a leaf node includes determining an order of the dimensions used for splitting based on any correlation among the dimensions such that a dimension selected for splitting next has the least correlation with previously selected dimensions.
Claim 9
Dependent Claim 35 words
The method as recited in claim 7, wherein: the multi-dimensional ε-K-D-B trees for all the processors are structurally identical; and the processors have the same order of the dimensions used for splitting the leaf nodes.
Claim 10
Dependent Claim 64 words
The method as recited in claim 5, further comprising the steps of: sorting the data points of each leaf node using a dimension not used for splitting the leaf nodes as a common sort dimension; and for each pair of leaf nodes from which data points are to be joined, sort-merging the data points associated with the pair based on the common sort dimension.
Claim 11
Dependent Claim 23 words
The method as recited in claim 1, further comprising the step of communicating the index structure by each processor to the other processors.
Claim 12
Dependent Claim 37 words
The method as recited in claim 1, further comprising the step of broadcasting asynchronously, by each processor to the other processors, as to which leaf nodes in the index structure of the processor have recently been split.
Claim 13
Dependent Claim 37 words
The method as recited in claim 1, further comprising the step of distributing the data points asynchronously among the processors so that each processor has all the data points for the joint operations assigned to the processor.
Claim 14
Dependent Claim 38 words
The method as recited in claim 12, wherein the step of distributing includes the step of sending the data points, by each processor to the other processors, in a depth-first order using the index structure of the processor.
Claim 15
Dependent Claim 35 words
The method as recited in claim 12, further comprising the step of deleting a leaf node in each processor if the leaf node is no longer needed for the join operations assigned to the processor.
Claim 16
Dependent Claim 63 words
The method as recited in claim 1, wherein the step of joining the data points includes the steps of: each processor first joining the leaf nodes for which the processor has received the data points needed for the joint operations assigned to the processor; and deleting those leaf nodes and data points from which the join operations have been performed by the processor.
Claim 17
Dependent Claim 39 words
The method as recited in claim 1, wherein the step of assigning the join operations includes the step of traversing the respective index structure for each processor to determine the join operations that will be performed by the processor.
Claim 18
Dependent Claim 225 words
The method as recited in claim 16, wherein: the index structure is a tree structure having a root node branching into a plurality of child nodes and terminating with the leaf nodes; and the method further includes the step of joining a first node and a second node, the step of joining a first node and a second node including the steps of: a) if the first and second nodes are both leaf nodes, then selecting the first and second nodes for joining; b) if the first node is a leaf node and the second node is not a leaf node, then joining the first node with each child node of the second node; and c) if neither the first nor the second node is a leaf node, then: i) joining each n-th child node of the first node with a corresponding n-th child node of the second node, n being from 1 to F, where F is the number of child nodes from each node of the tree except the leaf nodes; ii) joining each n-th child node of the first node with an (n+1)-th child is node of the second node, n being from 1 to F-1; and iii) joining each n-th child node of the second node with an (n+1)-th child node of the first node, n being from 1 to F-1.
Claim 19
Dependent Claim 146 words
A computer program product for use with a multiprocessor system for directing the system to perform proximity joins on high-dimensional data points in parallel in the processors, the computer program product comprising: a computer readable medium; means, provided on the computer-readable medium, for directing the system to partition the data points among the processors; means, provided on the computer-readable medium, for directing the system to create an index structure for the data points in each processor, the index structure having a plurality of leaf nodes each corresponding to a subset of the data points; means, provided on the computer-readable medium, for directing the system to assign the join operations to the processors using the index structures; and means, provided on the computer-readable medium, for directing the system to simultaneously redistribute and join the data points in the processors in parallel, based on a predetermined joining condition.
Claim 20
Dependent Claim 146 words
A computer program product for use with a multiprocessor system for directing the system to perform proximity joins on high-dimensional data points in parallel in the processors, the computer program product comprising: a computer readable medium; means, provided on the computer-readable medium, for directing the system to partition the data points among the processors; means, provided on the computer-readable medium, for directing the system to create an index structure for the data points in each processor, the index structure having a plurality of leaf nodes each corresponding to a subset of the data points; means, provided on the computer-readable medium, for directing the system to assign the join operations to the processors using the index structures; and means, provided on the computer-readable medium, for directing the system to simultaneously redistribute and join the data points in the processors in parallel, based on a predetermined joining condition.
Claim 21
Dependent Claim 66 words
The computer program product as recited in claim 18, wherein the means for directing to assign the joint operations includes: means, provided on the computer-readable medium, for directing the system to determine a cost for each join operation; and means, provided on the computer-readable medium, for directing the system to assign the join operations to the processors based on the determined costs of the join operations.
Claim 22
Dependent Claim 76 words
The computer program product as recited in claim 19, wherein the means for directing to determine a cost for each join operation includes: means, provided on the computer-readable medium, for directing each processor to traverse the respective index structure to determine a global size for each leaf node; and means, provided on the computer-readable medium, for directing the processor to estimate the cost from the global sizes of the leaf nodes involved in the join operation.
Claim 23
Dependent Claim 58 words
The computer program product as recited in claim 18, wherein: the index structure is a multi-dimensional ε-K-D-B tree having a root node branching into a plurality of interior nodes, the tree terminating with the leaf nodes; and the joining condition is such that the similarity distance between any two data points to be joined is at most ε.
Claim 24
Dependent Claim 81 words
The computer program product as recited in claim 21, wherein the means for directing to create an index structure includes means, provided on the computer-readable medium, for directing each processor to split each leaf node of the respective structure, in at least one dimension of the tree, into .left brkt-bot.1/ε.right brkt-bot. child nodes whenever the number of points in the leaf node exceeds a predetermined value, each child node having a width greater than ε in the dimension used for splitting.
Claim 25
Dependent Claim 52 words
The computer program product as recited in claim 22, wherein: each leaf node of the ε-K-D-B tree has a depth equal to one plus the number of interior nodes between the root node and leaf node; and the splitting of a leaf node is based on the depth of the leaf node.
Claim 26
Dependent Claim 63 words
The computer program product as recited in claim 22, wherein the means for directing to split a leaf node includes means, provided on the computer-readable medium, for directing the processor to determine an order of the dimensions used for splitting based on any correlation among the dimensions, such that a dimension selected for splitting next has the least correlation with previously selected dimensions.
Claim 27
Dependent Claim 37 words
The computer program product as recited in claim 24, wherein: the multi-dimensional ε-K-D-B trees for all the processors are structurally identical; and the processors have the same order of the dimensions used for splitting the leaf nodes.
Claim 28
Dependent Claim 86 words
The computer program product as recited in claim 22, further comprising: means, provided on the computer-readable medium, for directing each processor to sort the data points of each respective leaf node using a dimension not used for splitting the leaf nodes as a common sort dimension; and for each pair of leaf nodes from which data points are to be joined, means, provided on the computer-readable medium, for directing the processor to sort-merge the data points associated with the pair based on the common sort dimension.
Claim 29
Dependent Claim 34 words
The computer program product as recited in claim 18, further comprising means, provided on the computer-readable medium, for directing each processor to communicate the index structure created by the processor to the other processors.
Claim 30
Dependent Claim 40 words
The computer program product as recited in claim 18, further comprising means, provided on the computer-readable medium, for directing each processor to broadcast asynchronously to the other processors as to which leaf nodes of the processor have recently been split.
Claim 31
Dependent Claim 47 words
The computer program product as recited in claim 18, further comprising means, provided on the computer-readable medium, for directing the system to distribute the data points asynchronously among the processors so that each processor has all the data points for the joint operations assigned to the processor.
Claim 32
Dependent Claim 47 words
The computer program product as recited in claim 29, wherein the means for directing to distribute includes means, provided on the computer-readable medium, for directing each processor to send the data points to the other processors in a depth-first order using the index structure of the processor.
Claim 33
Dependent Claim 45 words
The computer program product as recited in claim 29, further comprising means, provided on the computer-readable medium, for directing each processor to delete a leaf node in the processor if the leaf node is no longer needed for the join operations assigned to the processor.
Claim 34
Dependent Claim 84 words
The computer program product as recited in claim 18, wherein the means for directing to join the data points includes: means, provided on the computer-readable medium, for directing each processor to first join the leaf nodes for which the processor has received the data points needed for the joint operations assigned to the processor; and means, provided on the computer-readable medium, for directing the processor to delete those leaf nodes and data points from which the join operations have been performed by the processor.
Claim 35
Dependent Claim 48 words
The computer program product as recited in claim 18, wherein the means for directing to assign the join operations includes means, provided on the computer-readable medium, for directing each processor to traverse the respective index structure to determine the join operations that will be performed by the processor.
Claim 36
Dependent Claim 288 words
The computer program product as recited in claim 33, wherein: the index structure is a tree structure having a root node branching into a plurality of child nodes and terminating with the leaf nodes; and the computer program product further comprises means, provided on the computer-readable medium, for directing each processor to join a first node and a second node, the means for directing to join a first node and a second node including: a) means, provided on the computer-readable medium, for directing the processor to select the first and second nodes for joining if the first and second nodes are both leaf nodes; b) means, provided on the computer-readable medium, for directing the processor to join the first node with each child node of the second node if the first node is a leaf node and the second node is not a leaf node; and c) if neither the first nor the second node is a leaf node, then: i) means, provided on the computer-readable medium, for directing the processor to join each n-th child node of the first node with a corresponding n-th child node of the second node, n being from 1 to F, where F is the number of child nodes from each node of the tree except the leaf nodes; ii) means, provided on the computer-readable medium, for directing the processor to join each n-th child node of the first node with an (n+1)-th child node of the second node, n being from 1 to F-1; and iii) means, provided on the computer-readable medium, for directing the processor to join each n-th child node of the second node with an (n+1)-th child node of the first node, n being from 1 to F-1.
Claim 37
Dependent Claim 97 words
A database system for performing proximity joins on high-dimensional points in parallel in a multiprocessor computer, comprising: means for partitioning the data points among the processors; means, in each processor, for creating an index structure for the data points of the processor, the index structure having a plurality of leaf nodes each corresponding to a subset of the data points; means for assigning the join operations to the processors using the index structures; and means, in each processor, for simultaneously redistributing and joining the data points in the processors in parallel based on a predetermined joining condition.
Claim 38
Dependent Claim 97 words
A database system for performing proximity joins on high-dimensional points in parallel in a multiprocessor computer, comprising: means for partitioning the data points among the processors; means, in each processor, for creating an index structure for the data points of the processor, the index structure having a plurality of leaf nodes each corresponding to a subset of the data points; means for assigning the join operations to the processors using the index structures; and means, in each processor, for simultaneously redistributing and joining the data points in the processors in parallel based on a predetermined joining condition.
Claim 39
Dependent Claim 44 words
The system as recited in claim 35, wherein the means for assigning the joint operations includes: means for determining a cost for each join operation; and means for assigning the join operations to the processors based on the determined cost of the join operations.
Claim 40
Dependent Claim 56 words
The system as recited in claim 36, wherein the means for determining a cost for each join operation includes: means for traversing the index structures in each processor to determine a global size for each leaf node; and means for estimating the cost from the global sizes of the leaf nodes involved in the join operation.
Claim 41
Dependent Claim 56 words
The system as recited in claim 35, wherein: the index structure is a multi-dimensional ε-K-D-B tree having a root node branching into a plurality of interior nodes, the tree terminating with the leaf nodes; and the joining condition is such that the similarity distance between any two data points to be joined is at most ε.
Claim 42
Dependent Claim 64 words
The system as recited in claim 38, wherein the means for creating an index structure includes means for splitting each leaf node, in at least one dimension of the tree, into .left brkt-bot.1/ε.right brkt-bot. child nodes whenever the number of points in the leaf node exceeds a predetermined value, each child node having a width greater than ε in the dimension used for splitting.
Claim 43
Dependent Claim 49 words
The system as recited in claim 39, wherein: each leaf node of the ε-K-D-B tree has a depth equal to one plus the number of interior nodes between the root node and leaf node; and the splitting a leaf node is based on the depth of the leaf node.
Claim 44
Dependent Claim 50 words
The system as recited in claim 39, wherein the means for splitting a leaf node includes means for determining an order of the dimensions used for splitting based on any correlation among the dimensions such that a dimension selected for splitting next has the least correlation with previously selected dimensions.
Claim 45
Dependent Claim 35 words
The system as recited in claim 41, wherein: the multi-dimensional ε-K-D-B trees for all the processors are structurally identical; and the processors have the same order of the dimensions used for splitting the leaf nodes.
Claim 46
Dependent Claim 71 words
The system as recited in claim 39, further comprising: means, in each processor, for sorting the data points of each leaf node using a dimension not used for splitting the leaf nodes as a common sort dimension; and for each pair of leaf nodes from which data points are to be joined, means in each processor for sort-merging the data points associated with the pair based on the common sort dimension.
Claim 47
Dependent Claim 26 words
The system as recited in claim 35, further comprising means for communicating, by each processor to the other processors, the index structure created by the processor.
Claim 48
Dependent Claim 32 words
The system as recited in claim 35, further comprising means for broadcasting asynchronously, by each processor to the other processors, as to which leaf nodes of the processor have recently been split.
Claim 49
Dependent Claim 36 words
The system as recited in claim 35, further comprising means for distributing the data points asynchronously among the processors so that each processor has all the data points for the joint operations assigned to the processor.
Claim 50
Dependent Claim 37 words
The system as recited in claim 46, wherein the means for distributing includes means for sending the data points, by each processor to the other processors, in a depth-first order using the index structure of the processor.
Claim 51
Dependent Claim 34 words
The system as recited in claim 46, further comprising means for deleting a leaf node in each processor if the leaf node is no longer needed for the join operations assigned to the processor.
Claim 52
Dependent Claim 62 words
The system as recited in claim 35, wherein the means for joining the data points includes: means for first joining the leaf nodes for which the processor has received the data points needed for the joint operations assigned to the processor; and means for deleting those leaf nodes and data points from which the join operations have been performed by the processor.

References Cited (Backward Citations)

US5121494A Cited
US5345585A Cited
US5404510A Cited
US5412806A Cited
US5423035A Cited
US5542073A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-03-15 2002-09-14 2003-03-16 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-03-15 2006-09-14 2007-03-16 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-03-15 2010-09-14 2011-03-16 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag