Research Article

Efficient Shared Execution Processing of k-Nearest Neighbor Joins in Road Networks

Algorithm 5

GNL .
Input: : number of inner objects retrieved for an outer object, : set of outer objects, : set of inner objects
Output: : set of ordered pairs of outer object and inner object
(1)              ⁡⁡⁡  // kNN join result set is initialized to the empty set
(2)// step 1: outer objects in a vertex sequence are grouped into an outer segment
(3)   ⁡⁡⁡⁡  // is explained in Algorithm 1
(4)// step 2: kNN join is evaluated for each outer segment
(5)for each outer segment do
(6)if then         ⁡⁡⁡  // see Figures 8(a) to 8(d)
(7)          // kNN query from is performed, and its result is saved to
(8)         ⁡ // a partial join result for is generated from
(9)  
(10)else if then          // it is assumed that belongs to and that () is close to
(11)  if and then   ⁡ // see Figure 9(a)
(12)          // result of kNN query at is reused for other outer segment(s)
(13)        ⁡⁡ // result of kNN query at is reused for other outer segment(s)
(14)     // refer to Algorithm 6
(15)   
(16)  else if and then ⁡ // see Figure 9(b)
(17)          // result of kNN query at is reused for other outer segment(s)
(18)       ⁡⁡⁡⁡  // result of kNN query at is not reused
(19)   ⁡⁡  // refer to Algorithm 6
(20)   
(21)  else if and then ⁡ // see Figure 9(c)
(22)          // result of kNN query at is not reused
(23)       ⁡  // result of kNN query at is reused for other outer segment(s)
(24)     // refer to Algorithm 6
(25)   
(26)  else if and then  // see Figure 9(d)
(27)          // result of kNN query at is not reused
(28)        ⁡⁡⁡⁡ // result of kNN query at is not reused
(29)    ⁡⁡⁡ // refer to Algorithm 6
(30)   
(31)return   // is returned after all outer segments have been processed