## 2 Related Work  
The advantages of DCS have become well known through some studies [1,8]. In [3] a DIM index, which is a distributed index for multi-dimensional data was proposed. Usually, a sensor network has multi-dimensional data such as humidity, temperature, illumination and so on. A DIM indexes the multi-dimensional data in a K-D tree structure by the data values to speed up the multi-dimension range queries, and routes the data to the exact sub-tree using the GPSR routing protocol. Each sensor node in DIM determines its node address by uniformly splitting the sensor network area in a round robin fashion. A sensor node splits the area horizontally, then vertically, and shifts its bit code to the left with every split by 0 b (or 1 b) when it falls above (or below) the horizontal split line. It also shifts its bit code to the left by a 0 bit if falling on the left of the vertical split line, or 1 bit otherwise. This process ends when every sensor lies by itself in a zone. Then the bit code becomes the address of the sensor node. Thus, the length of the binary address of each sensor (in bits) represents its depth in the underlying K-D tree. Figure 1 shows the K-D tree that the DIM forms for a simple network. In case any orphan zones exist (zones physically containing no sensors in their geographic area), the ownership of each of these zones is delegated to one of its neighbour sensors. In Figure 1, the orphan zone 01b is delegated to the sensor node N. When a sensor node detects an event, it generates an event  
Figure 1: An example of DIM. bit-code as follows. The bit-code generation proceeds in rounds. There is a range \(R_{j}\) associated with each attribute \(j\) of the event. Initially, the range \(R_{j}\) is the full range of possible values for attribute \(j\). Round \(i\), determines the \((i+1)^{th}\) high order bit in the code. Round \(i\) depends on attribute \(j=i\bmod k\) of the event, where \(k\) is the number of attributes in the event. Assume that the current value of \(R_{j}\) is [a, c], and let \(b=(a+c)/2\) be the midpoint of the range \(R_{j}\). If the value of attribute \(j\) is in the lower half of the range \(R_{j}\), that is in [a, b], then the \(i^{th}\) bit is \(0\) b, and \(R_{j}\) is set to be the lower half of \(R_{j}\). If the value of attribute \(j\) is in the upper half of the range \(R_{j}\), that is in [b, c], then the \(i^{th}\) bit is \(1\), and \(R_{j}\) is set to be the upper half of \(R_{j}\). For example, in Figure 1, events are composed of two attributes which are X and Y, with ranges (30, 70) and (0, 2), respectively. If N3 detects an event (55, 0.6), it generates a bit-code for the event as follows. X is in the top half of the range [30, 70] so the first bit is \(1\), Y is in the bottom half of the range [0, 2] so the second bit is \(0\)b, then X is in the bottom half of the range [50, 70] so the third bit is \(0\) b, and finally, Y is in the top half of the range [0, 1] so the fourth bit is \(1\)b. Then, the event will be routed toward the geometric location specified by code \(1001b\) through GPSR. A major problem of DIM is the lack of handing of hot-spots. The presence of a hot-spot leads to an increased energy consumption rate due to overloaded sensors. More critically, the sensors in and near the hot-spot may quickly run out of energy, due to the high query load imposed on them (in addition to event insertions). These results in a loss of the events generated at these sensors, the events stored at these sensors, and possibly a decrease in network connectivity. Increased death of sensors results in decreasing coverage area and causes the formation of coverage gaps within such an area. Several techniques [4,5,9] have been proposed to address load balance problems on DIM. In [9], a Zone Sharing scheme is proposed to locally detect hot-spots and try to evenly distribute their loads among the sensor nodes in the network. In [5], Zone Partitioning (ZP) and Zone Partial Replication (ZPR) are proposed.