A continuous query refers to a query that runs continuously over a specified period of time, and it is usually based on a dynamic scenario in which the query point and/or the queried objects are moving. In the following, we review continuous static queries over moving objects and moving queries over static objects. First, we assume that the queries are fixed while the
queried objects are moving. For example, a shopping mall wants to send e-coupons to all the potential customers who are nearby and it can issue a continuous range of queries during weekends. This kind of query assumes that the queries are known in advance, and tries to minimize the update cost of moving objects. In [23], the authors use a continuous window (CW) algorithm to monitor moving objects with updates, and the works presented in [29, 53]
adopt incremental evaluation and shared execution strategies to improve the performance.
Moreover, some other works have investigated this problem based on the concept of monitoring range, including CPM [30], SEA-CNN [52] and YPK-CNN [57].
Second, we assume that the queried objects are static, while the queries are not fixed. For example, a user who is shopping on Fifth Avenue submits a query to look for a nearby ATM until she reaches one. In this case, the queried objects (i.e., ATM) are static, while the user keeps moving and hence the query point is changing continuously. A typical continuous query in this context is continuous Nearest Neighbor Search (CNN). It looks for the nearest object to the user when the user is moving. Many solutions have been proposed to support CNN search, and some representatives are reviewed in the following. In [39], a sampling technique is employed to perform normal NN searches at some pre-defined sampling points and then an approximated range is derived to bound all the possible answers. However, its accuracy depends largely on the pre-defined sampling points. In order to enable an exact search, Tao et al. devised two search algorithms for CNN queries based on an R-tree. The first algorithm is based on the concept of time-parameterized (TP) queries, which treat a query line segment as the moving trajectory of a query point [45]. The second algorithm, proposed later in [44], navigates the R-tree based on certain heuristics. The whole answer set is obtained within one single navigation of the R-tree. We would like to highlight that the above works assume the moving trajectories of mobile users are known in advance. In addition to Euclidean spaces, CNN searching in road networks (i.e., network spaces) has been studied as well. The first solution to CNN queries in road networks is proposed in [14]. Other solutions include the work presented in [9], CNN retrieval via a continuous windowing algorithm, and the beach-line algorithm [26].
In addition to CNN queries, the problem of continuous range queries is also widely inves-tigated. A continuous range query refers to a range query continuously updating the results within a certain period of time. Typically, continuous range queries consist of at least a
database server, and a large number of objects [59]. Some of them have static query ranges and dynamic moving objects, objects update their information such as locations to the server, then the server returns the information to the users who made the queries. The most common approach is making objects report their initial positions and velocity information, from which the server could estimate their future locations within a period of time. As a result, objects do not need to report their locations until the deviation between their actual locations and estimated locations exceed a threshold [50, 51, 56]. Some others have dynamic query ranges and static objects [54, 5, 58], users request their desired query region to the server, then the server responds with the information accordingly. [54] assumes the query client’s future tra-jectory is given apriori, and attempts to precompute query results in advance. [5] reports a safe region to the client in addition to the query result, so the client does not need to query again since the query results would remain the same inside the safe region. [58] employs the safe region idea, and further introduces the safe exits on road networks, where clients do not need to query again within the exits on the road network. Nevertheless, it is not a requirement for continuous range queries. For instance, [29, 17, 40] support moving queries over moving objects in server-based processing. [29] proposes the SINA that incrementally evaluates a set of concurrently executing queries. [17] introduces the concept of motion-sensitive bounding boxes(MSBs) to model moving objects and moving queries in order to decrease the number of updates to the indices. [40] focuses on server processing time optimization, and adopts a point-based update policy. Mobile clients update their new locations whenever they deviate from last reported locations. Apart from the central server architecture, the MobiEyes [16]
and MQM [4] let mobile devices answer continuous range queries, leaving the central server as a mediator. In MQM, the resident domain is introduced as a subspace surrounding the moving object to process continuous queries. Queries are partitioned into monitor regions, where the monitor regions covered by the resident domain will be sent to the moving object.
Compared to the existing continuous queries, our framework CQ-DFS is unique and dif-ferent from them because it dynamically changes the query shape according to the user’s different moving behaviors to maximize the usefulness of the range query while preserving the system performance. Being an instance of continuous range queries, CQ-DFS applies the central server architecture, and requests continuous range queries from mobile users, i.e., users request queries from their handsets when driving. The reason that CQ-DFS uses dynamic
query ranges instead of static ones is because it captures the complex moving behaviors of objects, and further adapts them on-the-fly. Fixed ranges could perform well in terms of usefulness in certain cases, but it would be impossible to achieve higher usefulness as well as CQ-DFS does. We leave further study between CQ-DFS and fixed ranges to Sections 5.1, 5.2, and 5.3.