WO2014177201A1 - Method and system for storing geometrical objects in a database - Google Patents
Method and system for storing geometrical objects in a database Download PDFInfo
- Publication number
- WO2014177201A1 WO2014177201A1 PCT/EP2013/059038 EP2013059038W WO2014177201A1 WO 2014177201 A1 WO2014177201 A1 WO 2014177201A1 EP 2013059038 W EP2013059038 W EP 2013059038W WO 2014177201 A1 WO2014177201 A1 WO 2014177201A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- geometrical
- key
- tree
- node
- area
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
Definitions
- the invention relates to a method for storing geometrical objects in a database.
- the invention further relates to methods for querying geometrical objects stored according to the method according to one of the claims 1 - 1 1.
- the invention even further relates to a system for storing geometrical objects in a database, comprising at least one server for storing geometrical objects and at least one user equipment for interacting with the servers.
- Geographic locations of objects and subjects of interest are in particular interesting for logistics, car rental services, public safety or targeted advertisement.
- targeted advertisement a shop can leverage a location to issue relevant discounts to prospective customers currently passing next to the shop.
- GPS-enabled devices like smart phones, etc.
- location- based services are becoming a commodity and the scale of such services is rapidly increasing.
- a typical scenario for a large scale geographical information of entities involves in particular determining what objects are within a predefined region. For example in geo-fencing information on which people are within a defined radius of a retail store is provided, where the people are the objects being tracked and the area is for example defined by the radius and the store's location in the desired geo- fence.
- the associated user geo-fence moves every time that the user moves. Therefore all geo-fences move at each time interval for each user and the location has to be checked for each of the other users.
- each node represents a geometric area where the root node represents the space of interest and the child nodes of any node form a partition of the space represented by their parent node.
- Objects are stored in the lowest possible node whose space they fit.
- the method is characterized by the steps of
- a key value store as database, wherein each node of the fixed space partitioning tree is assigned to a key of the key value store, e) Associating each tree node with an area of the fixed space partitioning tree, wherein the area is overlapping with a geometrical object to be stored and wherein for each point in the geometrical object one node of the fixed space partitioning tree is associated for storing the geometrical object and wherein the associated area of the tree node includes the point,
- a method for querying objects stored according to the method according to one of the claims 1 - 1 1 is each defined.
- the method is characterized in that for a query of a point as geometrical object all tree nodes with their area having the point included are iterated and it is tested for each object associated with the tree node if the queried point is included in the area associated with the tree node and if yes, it is added to the result set.
- the method is characterized in that for a query of a window as geometrical object all tree nodes with their area intersecting with the window are iterated and it is tested for each geometrical object associated with the tree node if the queried window intersects with the area associated with the tree node.
- a system for storing geometrical objects in a database comprising at least one server for storing geometrical objects and at least one user equipment for interacting with the servers is defined.
- the system is characterized in that the user equipment is operable to define geometrical objects comprising points, and to define an interest area comprising the geometrical objects, and that at least one of the servers is operable to define a fixed space partitioning tree wherein the root node is associated with the interest area, to define a key value store as database, wherein each node of the fixed pace partitioning tree is assigned to a key of the key value store, to associate each tree node with an area of the fixed space partitioning tree, wherein the area is overlapping with a geometrical object to be stored and wherein for each point in the geometrical object one node of the fixed space partitioning tree is associated storing the geometrical object and wherein the associated area of the tree node includes the point and to store the geometrical object in the key value store by using the key of the key value store associated with the geometrical object and a geometrical object identifier representing the geometrical object as value.
- the type or structure of the key value store is not limited to any specific implementation.
- the term “geometrical object” is preferably to be understood in a general sense, respectively as object in general in the description, in particular in the claims.
- the term “geometrical object” is to be understood to include in particular not only points as objects respectively geometrical objects, but also objects with extent in the description, in particular in the claims.
- the present invention uses in particular a fixed recursive space- partitioning scheme defining a fixed space-partitioning tree and is in particular useful respectively suited for underlying non-relational databases for the key- value-store
- the fixed space-partitioning tree is used as a key generator for the geometrical objects and the geometrical objects are stored in the key value store.
- the fixed space-partitioning tree is represented in a key value store by associating a unique node key with each tree node.
- the operation of storing a geometrical object in a node is realized by storing the geometrical object in the key value store using this node key.
- An extraction of points associated to an area is achieved by encoding the area into matching keys and querying the key value store.
- a representation of the set of all geometrical objects is stored under the same key. This enables efficient storage of a plurality of objects under the same key. If a digital representation of the object set under a key is stored for example a new geometrical object is inserted by first retrieving the geometrical object set stored under the key and then the geometrical object is added to the object set and then the modified object set is reinserted under the corresponding key. When deleting a geometrical object the object set stored under the key is retrieved and then the geometrical object is deleted from the object set and then the object set is reinserted into the key value store under the corresponding key. This enables a more efficient insertion and deletion of geometrical objects under one key in particular if the key value store has neither support for object sets nor supports range queries
- geometrical objects are stored by using a concatenation of the key and the geometrical object identifier.
- Geometrical objects may be added to the object set of a tree node by inserting them into the key value store under the concatenated key comprising the key of a tree node concatenated with an object identifier separated by a separation character.
- Geometrical objects are deleted from a tree node analogously. For retrieving all geometrical objects of a tree node a range query is used to retrieve all values whose key has the prefix of the key of the tree node.
- each tree node included in the subtree of a higher tree node the corresponding tree associated with the higher tree node is a prefix or suffix of the key associated with the tree node. This enables and increased efficiency when querying the geometrical objects, in particular windows queries are sped up to a great extent.
- geometrical object is stored under a first concatenation of the key as prefix and the geometrical object identifier and that the value of the first concatenation is stored under a key comprising a second concatenation of the geometrical object identifier as prefix and the key.
- This provides storing of an inverted index and enables a fast deletion of the geometrical objects from the database in form of the key value store. For example when an geometrical object O is stored in the node N the geometrical object O is stored under the key with "key(N)#id(0)" in the key value store.
- queries for different key nodes are executed in parallel. If geometrical objects are evaluated and installed in more than one tree node the time required for navigating in the trees is dominated by the time required for the evaluation itself. Therefore searches on different tree nodes can be performed more efficiently if executed in parallel, preferably also on different underlying hardware. The results can then easily be merged.
- a unique tree identifier for each fixed space-partitioning tree is used as prefix to the keys in the corresponding fixed space-partitioning tree. This also increases the efficiency when querying and/or storing geometrical objects in the database. For example this enables the same key value store to be used to represent multiple fixed space-partitioning trees logically separated from each other. By defining the unique tree identifier for each individual fixed space- partitioning tree any operation on the tree is then realized by operating on the key value store using the tree identifier as additional prefix to the normal key.
- storing a geometrical object O in a node N of a plurality of trees results in storing the geometrical object O under the key "id(T)$key(N)#id(0)" and all geometrical objects O from the node N of the tree T may be retrieved by a range query using the key "id(T)$key(N)#*".
- an individual tree T may be maintained for each geometrical object type.
- suffixes instead of prefixes may also be used.
- the geometrical object identifier comprises object type information, preferably when the geoemetrical object identifier is a prefix of the object type information. This even further enhances the efficiency when storing or querying geometrical objects in the database. Further, flexibility is enhanced since geometrical objects can be associated with certain types and type information may be additionally used when querying objects. For example, to provide object types object type information is added as a prefix of the used object identifier. The object identifier id(O) may then be concatenated with the corresponding type (type(O), for example according to "type(0)@id(0)" when interacting with the key value store as database.
- the type of the second geometrical object would be "green area: park”.
- all geometrical objects of the type "green area” may be retrieved from a given tree node N by a range query using the key "key(N)#greenarea:*”.
- the separation characters like "@” and ":” may be selected arbitrarily. However, they must be different from the character set used for the object type and object identifier definitions.
- a tree node for storing a geometrical object is selected based on a minimum bounding box for the geometrical object. This speeds up a navigation in the corresponding tree: If a geometrical object is stored, first a minimum bounding box of the geometrical object is determined and it is considered the shape of the geometrical object when inserting it into the fixed space-partitioning tree, i.e. the geometrical object is inserted correctly with respect to its minimum bounding box.
- a tree node for storing a geometrical object is selected based on a threshold for a minimal depth of the tree node, a maximum depth of the tree node and/or for a maximum ratio between the area of the minimum bounding box for the geometrical object and the interest area.
- Fig. 1 shows a method according to a first embodiment of the present invention
- Fig. 2 shows a system according to a second embodiment of the present invention.
- Fig. 1 shows a method according to a first embodiment of the present invention.
- a geometrical area of interest IA is shown with geometrical objects denoted with A,B,C and D.
- a fixed space partitioning tree FSPT for the area of interest IA is shown wherein each tree node N of the fixed space partitioning tree FSPT is associated with a subset of the area of interest IA.
- the root node RN is associated with the area of interest IA. If X is the area associated with some tree node N and Xi ...,Xk are the areas associated to the k child nodes of N then ⁇ Xi ...,Xk ⁇ forms a partition of the area X. This means that the areas Xi ...., Xk are pairwise disjoint and their union is exactly X.
- the geometrical objects A, B, C, D are correctly stored in the fixed space partitioning tree FSPT if each tree node N storing one of the objects A, B, C, D is associated with an area overlapping with the geometrical object A, B, C, D respectively and for each point P in the respective geometrical object A, B, C, D there is exactly one tree node N storing the geometrical object A, B, C, D respectively and whose area contains the point.
- any geometrical object O can be simply stored in the root node RN or it can be stored in all leaves that overlap with the geometrical object O.
- Another option is to store a geometrical object A, B, C, D in the lowest possible tree node N whose area includes the geometrical object A, B, C, D.
- a area of interest IA is provided in form of a square.
- a first vertical line I divides the square horizontally in to equal rectangles.
- a second line, a horizontal line II divides the square into an upper half and a lower half, equal in size.
- Two further vertical lines III divide each rectangle left and right of the first vertical line in two smaller rectangles equal in size.
- the geometrical object A overlaps with regions left of the vertical line, denoted with reference sign I and is above the horizontal line, denoted with reference sign I I. Therefore the geometrical object A is stored in the root node RN of the fixed point partitioning tree FSPT.
- the geometrical object B is on the right side of the vertical line I but intersects with the horizontal line II. Therefore the geometrical object B is stored in the right child node of the root node RN.
- the geometrical object C is on the left side of the vertical line I and on the right side of the left vertical line of the two lines denoted with reference signs III. Further, the geometrical object C is below the horizontal line I I. Therefore, beginning from the root node RN the geometrical object C is stored in the node with the node path root node, left child node of the root node, right child node of the left child node of the root node and left node of the right child node of the left child node of the root node.
- the child node of the root node indicates that the geometrical object C is on the left side of the vertical line I.
- the right child node of the child node mentioned before indicates that the geometrical object C is in the lower half of the interest area, i.e. below the horizontal line II.
- the left child node of the child node mentioned before indicates that the geometrical object C is on the left side of the horizontal line I and on the right of the left line of the vertical line I II.
- the geometrical object D is located on the left side of the vertical line I and in the upper half, i.e. above the horizontal line II and intersects with the vertical line of the left line of the vertical lines III. Therefore the geometrical object D is stored on a level above the geometrical object C since it intersects with the horizontal line III. Beginning from the root node RN the geometrical object D is stored in the left child node of the left child node of the root node RN.
- geometrical objects A, B, C, D are geometrical objects in form of rectangles. If for example a point query is issued, i.e. a point p in the area of interest IA is given, then a set of all geometrical objects containing the point p is returned as result. In particular point queries are realized by iterating over all tree nodes N whose corresponding area contains the point p.
- the fixed space partitioning tree FSPT enables that the set of these nodes constitutes a path from the root node RN to a leaf of the tree. For each geometrical object stored in one of these tree nodes it is tested whether it contains the point p and if yes, the corresponding geometrical object is added to the result set. If for example a window is queried, i.e.
- a window object is given, then the set of all geometrical objects intersecting with the window object is returned as the result.
- Window queries are performed by iterating over all tree nodes N whose corresponding area intersects with the window object. For each geometrical object stored in one of these nodes N it is tested whether it intersects with the window object and if yes, it is added to the result set. For inserting the geometrical object the geometrical object is stored correctly in some set of the tree nodes. Deleting an object requires removing the geometrical object from all tree nodes where it is stored.
- a minimum bounding box MBB of the geometrical object may be determined and it may be considered the shape of the geometrical object when inserting into the fixed space partitioning tree FSPT.
- the following steps are used for insertion a geometrical object wherein N is denoted as the root node of the fixed space partitioning tree FSPT and U(N) is defined as the area associated with node N. store (object O, box MBB, node N)
- the predicate split-condition (MBB, N) is satisfied if one of the following two conditions hold: (a) the depth of tree node N is below some fixed threshold mindepth, or (b) the ratio between the area of the minimum bounding box MBB and the area U(N) is below a fixed threshold maxratio.
- the rationale for condition (a) is to minimize the number of objects stored in nodes close to the root node. Objects stored close to the root node are evaluated in queries much more often, making unnecessary evaluation of these objects likely.
- the rationale for condition (b) is that this ratio is an indicator of the probability that a geometrical object O is evaluated against a point or window query with a negative result.
- the thresholds mindepth, maxdepth and maxratio are tuning parameters for finding the best tradeoff between query time, insert time, and space requirements.
- Window queries as described above maybe implemented by checking the window object against the area of any geometrical objects stored in some tree node N whose area intersects with the window object. Whenever for some node N the area U(N) is completely included in the window object then also the area associated to any descendant node of the node N is contained in the window object and so subtree queries can be made use of. The following steps systematically query all relevant tree nodes and at the beginning N set to be the root node.
- Fig. 2 shows a system according to a second embodiment of the present invention.
- a distributed key value store is shown for obtaining a scalable distributed geographic index.
- the distributed key value store KVS is distributed over several servers Server 1 ,..., Server n.
- Each server Server 1 , ..., Server n comprises a stateless indexer on one hand interacting with the distributed key value store KVS by put and get operations and on the other side with a user equipment (not shown) to perform insertion, updating, and/or querying of geometrical objects with each server.
- This enables scalability of the distributed key value store querying over the geographic index.
- the present invention provides a fixed space partitioning tree using a key value store.
- the present invention exploits a special structure of the node key function in combination with range queries to enable a query of whole subtrees by a single operation on the key value store.
- the present invention further enables representing logically separated fixed space partitioning trees in the same key value store by introducing an additional type prefix.
- the present invention enables a representation of type hierarchies by exploiting prefixes and range queries makes use of a subtree query functionality in window queries. Bounding boxes of objects may be split based on the ratio between their size and the size of the area represented by the current tree node. The present invention enables the use the same key value store to store an inverted index used for fast deleting operation of geometrical objects.
- indexing servers are made stateless. All operations like point queries, window queries, inserting and deleting operations are efficient and further robust, reliable and parallel executable.
- the present invention enables to keep the system state completely inside the key value store wherein this enables in particular parallelization of request handlers to be simple and straightforward.
- the present invention enables storing of multiple object types logically separated from each other by using the same key value store significantly easing deployment, in particular in mobile geo-fencing. Even further the present invention has in particular the following advantages:
- the present invention supports geometrical objects with extent, enables keeping any state information inside the key value store and is flexible for the underlying key value store, i.e. does not make any assumption about the key value store.
- the present invention enables fast deletions and provides support of object type hierarchies.
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Remote Sensing (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
The present invention relates to a method comprising by the steps of a) Defining geometrical objects comprising points, b) Defining a interest area comprising the geometrical objects, c) Defining a fixed space partitioning tree wherein the root node is associated with the interest area, d) Defining a key value store, wherein each node of the fixed space partitioning tree is assigned to a key of the key value store e) Associating each tree node with an area of the fixed space partitioning tree, wherein the area is overlapping with a geometrical object to be stored and wherein for each point in the geometrical object one node of the fixed space partitioning tree is associated for storing the geometrical object and wherein the associated area of the tree node includes the point. f) Storing the geometrical object in the key value store.
Description
METHOD AND SYSTEM FOR STORING GEOMETRICAL
OBJECTS IN A DATABASE
The invention relates to a method for storing geometrical objects in a database.
The invention further relates to methods for querying geometrical objects stored according to the method according to one of the claims 1 - 1 1.
The invention even further relates to a system for storing geometrical objects in a database, comprising at least one server for storing geometrical objects and at least one user equipment for interacting with the servers.
Although applicable to geometrical objects in general the present invention will be described with regard to geometrical objects for location based services.
Geographic locations of objects and subjects of interest are in particular interesting for logistics, car rental services, public safety or targeted advertisement. For example in targeted advertisement a shop can leverage a location to issue relevant discounts to prospective customers currently passing next to the shop. Through the proliferation of GPS-enabled devices like smart phones, etc. location- based services are becoming a commodity and the scale of such services is rapidly increasing.
A typical scenario for a large scale geographical information of entities involves in particular determining what objects are within a predefined region. For example in geo-fencing information on which people are within a defined radius of a retail store is provided, where the people are the objects being tracked and the area is for example defined by the radius and the store's location in the desired geo- fence.
Conventional storing methods use for example R-trees or similar data structures to store the regions respectively geo-fences. When geo-fences are added or removed a complete restructuring of the R-tree is required, and this is an expensive operation in terms of memory and computing time.
However, in numerous scenarios the shape and position of the geo-fences might change. For example in case of proximity social services this leads to a very high number of operations, not only checking if a certain point belongs to a geo-fence or not, but also updating the geo-fences as users move. In case of proximity social services neighboring users have to be determined which are located around a given user. If the proximity social services are then used by all users and because the proximity area is defined around the current location of each user, the associated user geo-fence moves every time that the user moves. Therefore all geo-fences move at each time interval for each user and the location has to be checked for each of the other users.
Conventional methods however have the problem that the performance of R-trees quickly degrades, since the corresponding data structures are not suitable for such high refresh rates: In particular one of the drawbacks is that it is expensive to write into the R-tree and additionally a large part of the R-tree needs to be locked in order to conduct this write-operation, thus, preventing concurrent write- or read- operations.
In the non-patent literature of Nishimura, Shoji, et al. "MD-HBase: A scalable multi- dimensional data infrastructure for location aware services", Mobile Data Management (MDM), 201 1 12th IEEE International Conference on. Vol. 1. IEEE, 201 1 a data base for multi-dimensional point data using a key value store is described. In addition to the key value store described a stateful index layer is used for storing the multi-dimensional point data. One of the drawbacks is that the database described is specifically designed for HBase. Another disadvantage is that only objects without extent, i.e. points, can be stored.
In the non-patent literature of Sevcik, K., and Nick Koudas, "Filter trees for managing spatial data over a range of size granularities", PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON VERY LARGE DATA BASES. INSTITUTE OF ELECTRICAL & ELECTRONICS ENGINEERS (IEEE), 1996 a special kind of fixed space-partitioning tree for storing objects with extent is defined. Further in the non-patent literature of Yusi and Tanaka, "Performance Improvement of MX-CIF Quadtree by Reducing the Query Results", International
Journal of Computer Theory and Engineering. 2012 a MX-CIF quadtree is described. In MX-CIF quadtrees each node represents a geometric area where the root node represents the space of interest and the child nodes of any node form a partition of the space represented by their parent node. Objects are stored in the lowest possible node whose space they fit. One of the drawbacks of the two methods described above is that due to the non-uniform node size this storage is inefficient for on-disk storage and only efficient for a single computer respectively storage node. In the non-patent literature of Tanin, Egemen, Aaron Harwood, and Hanan Samet, "Using a distributed quadtree index in peer-to-peer networks", The VLDB Journal— The International Journal on Very Large Data Bases 16.2 (2007): 165- 178 a splitting method in MX-CIF trees is described wherein the nodes are distributed among servers in a peer-to-peer network.
It is therefore an objective of the present invention to provide a method and a system for storing geometrical objects enabling fast insertions and fast deletions of geometrical objects. It is a further objective of the present invention to provide a method and a system for storing geometrical objects enabling fast point queries and fast window queries, wherein in a point query all objects containing a given point are returned, and wherein in a window query all geometrical objects overlapping with the given window object are returned.
It is an even further objective of the present invention to provide a method and a system for storing geometrical objects enabling concurrent read- and write operations, i.e. providing no need for locking and no risk of obtaining inconsistencies when storing the geometrical object.
It is an even further objective of the present invention to provide a method and a system for storing geometrical objects which are flexible in terms of the underlying storage substrate.
It is an even further objective of the present invention to provide a method and a system for storing geometrical objects enabling an efficient support of type systems of geometrical objects.
It is an even further objective of the present invention to provide a method and a system for storing geometrical objects which are easy-to-implement respectively having a low adoption barrier to existing databases.
According to the invention the aforementioned objectives are accomplished by a method of claim 1 , a method of claim 12, a method of claim 13 and a system of claim 14.
In claim 1 a method for storing geometrical objects in a database is defined.
According to claim 1 the method is characterized by the steps of
a) Defining geometrical objects comprising points,
b) Defining a interest area comprising the geometrical objects,
c) Defining a fixed space partitioning tree wherein the root node is associated with the interest area,
d) Defining a key value store as database, wherein each node of the fixed space partitioning tree is assigned to a key of the key value store, e) Associating each tree node with an area of the fixed space partitioning tree, wherein the area is overlapping with a geometrical object to be stored and wherein for each point in the geometrical object one node of the fixed space partitioning tree is associated for storing the geometrical object and wherein the associated area of the tree node includes the point,
f) Storing the geometrical object in the key value store by using the key of the key value store associated with the geometrical object and a geometrical object identifier representing the geometrical object as value.
In claims 12 and 13 a method for querying objects stored according to the method according to one of the claims 1 - 1 1 is each defined.
According to claim 12 the method is characterized in that for a query of a point as geometrical object all tree nodes with their area having the point included are iterated and it is tested for each object associated with the tree node if the queried point is included in the area associated with the tree node and if yes, it is added to the result set.
According to claim 13 the method is characterized in that for a query of a window as geometrical object all tree nodes with their area intersecting with the window are iterated and it is tested for each geometrical object associated with the tree node if the queried window intersects with the area associated with the tree node.
In claim 14 a system for storing geometrical objects in a database, comprising at least one server for storing geometrical objects and at least one user equipment for interacting with the servers is defined.
According to claim 14 the system is characterized in that the user equipment is operable to define geometrical objects comprising points, and to define an interest area comprising the geometrical objects, and that at least one of the servers is operable to define a fixed space partitioning tree wherein the root node is associated with the interest area, to define a key value store as database, wherein each node of the fixed pace partitioning tree is assigned to a key of the key value store, to associate each tree node with an area of the fixed space partitioning tree, wherein the area is overlapping with a geometrical object to be stored and wherein for each point in the geometrical object one node of the fixed space partitioning tree is associated storing the geometrical object and wherein the associated area of the tree node includes the point and to store the geometrical object in the key value store by using the key of the key value store associated with the geometrical object and a geometrical object identifier representing the geometrical object as value.
In claim 15 the use of a method according to one of the claims 1 - 1 1 , 12 and/or 13 and/or a system according to claim 14 for providing geo-fencing preferably with mobile geo-fences is defined.
According to the invention it has been recognized that all operations, in particular point queries, windows queries, inserting and/or deleting operations are very efficient due to the key value storage of the geometrical objects. According to the invention it has been further recognized that parallel execution, reliability and robustness in particular due to the underlying key value store is enabled.
According to the invention it has been further recognized that multiple geometrical object types can be stored logically and separated from each other while using the same key value store significantly easing deployment, in particular in the application of mobile geo-fencing.
According to the invention it has been further recognized that geometrical objects are supported with extent and object type hierarchies are enabled.
According to the invention it has been further recognized that the type or structure of the key value store is not limited to any specific implementation. The term "geometrical object" is preferably to be understood in a general sense, respectively as object in general in the description, in particular in the claims. The term "geometrical object" is to be understood to include in particular not only points as objects respectively geometrical objects, but also objects with extent in the description, in particular in the claims.
In other words, the present invention uses in particular a fixed recursive space- partitioning scheme defining a fixed space-partitioning tree and is in particular useful respectively suited for underlying non-relational databases for the key- value-store The fixed space-partitioning tree is used as a key generator for the geometrical objects and the geometrical objects are stored in the key value store. The fixed space-partitioning tree is represented in a key value store by associating a unique node key with each tree node. The operation of storing a geometrical object in a node is realized by storing the geometrical object in the key value store
using this node key. An extraction of points associated to an area is achieved by encoding the area into matching keys and querying the key value store.
Further features, advantages and preferred embodiments are described in the following subclaims.
According to a preferred embodiment for storing a plurality of geometrical objects under the same key in the key value store a representation of the set of all geometrical objects is stored under the same key. This enables efficient storage of a plurality of objects under the same key. If a digital representation of the object set under a key is stored for example a new geometrical object is inserted by first retrieving the geometrical object set stored under the key and then the geometrical object is added to the object set and then the modified object set is reinserted under the corresponding key. When deleting a geometrical object the object set stored under the key is retrieved and then the geometrical object is deleted from the object set and then the object set is reinserted into the key value store under the corresponding key. This enables a more efficient insertion and deletion of geometrical objects under one key in particular if the key value store has neither support for object sets nor supports range queries
According to a further preferred embodiment for storing a plurality of geometrical objects under the same logical key in the key-value-store geometrical objects are stored by using a concatenation of the key and the geometrical object identifier. This enables for example in an easy way range queries of geometrical objects. Geometrical objects may be added to the object set of a tree node by inserting them into the key value store under the concatenated key comprising the key of a tree node concatenated with an object identifier separated by a separation character. Geometrical objects are deleted from a tree node analogously. For retrieving all geometrical objects of a tree node a range query is used to retrieve all values whose key has the prefix of the key of the tree node. This enables in a flexible and efficient way to store a plurality of geometrical objects under the same key. Of course suffixes instead of prefixes may also be used.
According to a further preferred embodiment for each tree node included in the subtree of a higher tree node the corresponding tree associated with the higher tree node is a prefix or suffix of the key associated with the tree node. This enables and increased efficiency when querying the geometrical objects, in particular windows queries are sped up to a great extent.
According to a further preferred embodiment geometrical object is stored under a first concatenation of the key as prefix and the geometrical object identifier and that the value of the first concatenation is stored under a key comprising a second concatenation of the geometrical object identifier as prefix and the key. This provides storing of an inverted index and enables a fast deletion of the geometrical objects from the database in form of the key value store. For example when an geometrical object O is stored in the node N the geometrical object O is stored under the key with "key(N)#id(0)" in the key value store. If in addition the value "key(N)#id(0)" is stored under the key "id(0)#key(N)" then a range query for "id(0)#" will result in the set of all keys under which the geometrical object O is stored. Deletion then simply needs to delete the value stored under the key in the corresponding set of all keys in order to remove the geometrical object from the index. Thus fast and efficient deletion of geometrical objects is enabled.
According to a further preferred embodiment queries for different key nodes are executed in parallel. If geometrical objects are evaluated and installed in more than one tree node the time required for navigating in the trees is dominated by the time required for the evaluation itself. Therefore searches on different tree nodes can be performed more efficiently if executed in parallel, preferably also on different underlying hardware. The results can then easily be merged.
According to a further preferred embodiment for representing a plurality of fixed space-partitioning trees a unique tree identifier for each fixed space-partitioning tree is used as prefix to the keys in the corresponding fixed space-partitioning tree. This also increases the efficiency when querying and/or storing geometrical objects in the database. For example this enables the same key value store to be used to represent multiple fixed space-partitioning trees logically separated from each other. By defining the unique tree identifier for each individual fixed space-
partitioning tree any operation on the tree is then realized by operating on the key value store using the tree identifier as additional prefix to the normal key. For example storing a geometrical object O in a node N of a plurality of trees results in storing the geometrical object O under the key "id(T)$key(N)#id(0)" and all geometrical objects O from the node N of the tree T may be retrieved by a range query using the key "id(T)$key(N)#*". If multiple object types are to be stored logically separated from each other then an individual tree T may be maintained for each geometrical object type. Of course suffixes instead of prefixes may also be used.
According to a further preferred embodiment the geometrical object identifier comprises object type information, preferably when the geoemetrical object identifier is a prefix of the object type information. This even further enhances the efficiency when storing or querying geometrical objects in the database. Further, flexibility is enhanced since geometrical objects can be associated with certain types and type information may be additionally used when querying objects. For example, to provide object types object type information is added as a prefix of the used object identifier. The object identifier id(O) may then be concatenated with the corresponding type (type(O), for example according to "type(0)@id(0)" when interacting with the key value store as database. When storing a geometrical object O in a node N this is realized by storing the geometrical object O in the key value store under the key "key(N)#type(0)@id(0)". This enables retrieving either only geometrical objects O of a single type by a range query with key "key(N)#type(0)@*" or all geometrical objects stored in the given node N by a range query with key "key(N)#*". Even further whole type hierarchies can be represented with the type information so that for example a first type type(01) is a prefix of a second type type(02) whenever the type of a geometrical object 01 is a supertype of a further geometrical object 02. For example if the type of the first geometrical object 01 is type(01 )="green area" and the type of the second geometrical object 02 is type(02)="park" then the type of the second geometrical object would be "green area: park". In particular all geometrical objects of the type "green area" may be retrieved from a given tree node N by a range query using the key "key(N)#greenarea:*". The separation characters like "@" and ":" may be
selected arbitrarily. However, they must be different from the character set used for the object type and object identifier definitions.
According to a further preferred embodiment a tree node for storing a geometrical object is selected based on a minimum bounding box for the geometrical object. This speeds up a navigation in the corresponding tree: If a geometrical object is stored, first a minimum bounding box of the geometrical object is determined and it is considered the shape of the geometrical object when inserting it into the fixed space-partitioning tree, i.e. the geometrical object is inserted correctly with respect to its minimum bounding box.
According to a further preferred embodiment a tree node for storing a geometrical object is selected based on a threshold for a minimal depth of the tree node, a maximum depth of the tree node and/or for a maximum ratio between the area of the minimum bounding box for the geometrical object and the interest area. This enables in a flexible way to "tune" the storing and querying of the geometrical objects in terms of query time, insert time and space requirements.
There are several ways how to design and further develop the teaching of the present invention in an advantageous way. To this end it is to be referred to the patent claims subordinate to patent claim 1 on the one hand and to the following explanation of preferred embodiments of the invention by way of example, illustrated by the figure on the other hand. In connection with the explanation of the preferred embodiments of the invention by the aid of the figure, generally preferred embodiments and further developments of the teaching will be explained. In the drawings
Fig. 1 shows a method according to a first embodiment of the present invention; and
Fig. 2 shows a system according to a second embodiment of the present invention.
Fig. 1 shows a method according to a first embodiment of the present invention.
In Fig. 1 on the left side a geometrical area of interest IA is shown with geometrical objects denoted with A,B,C and D. On the right side a fixed space partitioning tree FSPT for the area of interest IA is shown wherein each tree node N of the fixed space partitioning tree FSPT is associated with a subset of the area of interest IA. The root node RN is associated with the area of interest IA. If X is the area associated with some tree node N and Xi ...,Xk are the areas associated to the k child nodes of N then {Xi ...,Xk} forms a partition of the area X. This means that the areas Xi ...., Xk are pairwise disjoint and their union is exactly X.
In the following storing of the geometrical objects A, B, C and D in the nodes of the fixed space partitioning tree FSPT on the right side of Fig. 1 is described. The geometrical objects A, B, C, D are correctly stored in the fixed space partitioning tree FSPT if each tree node N storing one of the objects A, B, C, D is associated with an area overlapping with the geometrical object A, B, C, D respectively and for each point P in the respective geometrical object A, B, C, D there is exactly one tree node N storing the geometrical object A, B, C, D respectively and whose area contains the point.
For example any geometrical object O can be simply stored in the root node RN or it can be stored in all leaves that overlap with the geometrical object O. Another option is to store a geometrical object A, B, C, D in the lowest possible tree node N whose area includes the geometrical object A, B, C, D. This is shown in Fig. 1 : A area of interest IA is provided in form of a square. A first vertical line I divides the square horizontally in to equal rectangles. A second line, a horizontal line II, divides the square into an upper half and a lower half, equal in size. Two further vertical lines III divide each rectangle left and right of the first vertical line in two smaller rectangles equal in size.
The geometrical object A overlaps with regions left of the vertical line, denoted with reference sign I and is above the horizontal line, denoted with reference sign I I. Therefore the geometrical object A is stored in the root node RN of the fixed point partitioning tree FSPT.
The geometrical object B is on the right side of the vertical line I but intersects with the horizontal line II. Therefore the geometrical object B is stored in the right child node of the root node RN.
The geometrical object C is on the left side of the vertical line I and on the right side of the left vertical line of the two lines denoted with reference signs III. Further, the geometrical object C is below the horizontal line I I. Therefore, beginning from the root node RN the geometrical object C is stored in the node with the node path root node, left child node of the root node, right child node of the left child node of the root node and left node of the right child node of the left child node of the root node. The child node of the root node indicates that the geometrical object C is on the left side of the vertical line I. The right child node of the child node mentioned before indicates that the geometrical object C is in the lower half of the interest area, i.e. below the horizontal line II. The left child node of the child node mentioned before indicates that the geometrical object C is on the left side of the horizontal line I and on the right of the left line of the vertical line I II.
The geometrical object D is located on the left side of the vertical line I and in the upper half, i.e. above the horizontal line II and intersects with the vertical line of the left line of the vertical lines III. Therefore the geometrical object D is stored on a level above the geometrical object C since it intersects with the horizontal line III. Beginning from the root node RN the geometrical object D is stored in the left child node of the left child node of the root node RN.
These geometrical objects A, B, C, D are geometrical objects in form of rectangles. If for example a point query is issued, i.e. a point p in the area of interest IA is given, then a set of all geometrical objects containing the point p is returned as result. In particular point queries are realized by iterating over all tree nodes N whose corresponding area contains the point p. The fixed space partitioning tree FSPT enables that the set of these nodes constitutes a path from the root node RN to a leaf of the tree. For each geometrical object stored in one of these tree nodes it is tested whether it contains the point p and if yes, the corresponding geometrical object is added to the result set.
If for example a window is queried, i.e. a window object is given, then the set of all geometrical objects intersecting with the window object is returned as the result. Window queries are performed by iterating over all tree nodes N whose corresponding area intersects with the window object. For each geometrical object stored in one of these nodes N it is tested whether it intersects with the window object and if yes, it is added to the result set. For inserting the geometrical object the geometrical object is stored correctly in some set of the tree nodes. Deleting an object requires removing the geometrical object from all tree nodes where it is stored.
To store a geometrical object first a minimum bounding box MBB of the geometrical object may be determined and it may be considered the shape of the geometrical object when inserting into the fixed space partitioning tree FSPT. The following steps are used for insertion a geometrical object wherein N is denoted as the root node of the fixed space partitioning tree FSPT and U(N) is defined as the area associated with node N. store (object O, box MBB, node N)
if (depth of N = maxdepth) store O in N
else if (MBB fits into U(C) of some child node C of N)
store (0,MBB,C)
else if (split-condition(MBB,N)is satisfied)
for each(child with U(C) intersecting with MBB)
store (O, MBB 11 U(C), C)
else store O in N
The predicate split-condition (MBB, N) is satisfied if one of the following two conditions hold: (a) the depth of tree node N is below some fixed threshold mindepth, or (b) the ratio between the area of the minimum bounding box MBB and the area U(N) is below a fixed threshold maxratio.
The rationale for condition (a) is to minimize the number of objects stored in nodes close to the root node. Objects stored close to the root node are evaluated in queries much more often, making unnecessary evaluation of these objects likely. The rationale for condition (b) is that this ratio is an indicator of the probability that a geometrical object O is evaluated against a point or window query with a negative result.
The thresholds mindepth, maxdepth and maxratio are tuning parameters for finding the best tradeoff between query time, insert time, and space requirements.
Window queries as described above maybe implemented by checking the window object against the area of any geometrical objects stored in some tree node N whose area intersects with the window object. Whenever for some node N the area U(N) is completely included in the window object then also the area associated to any descendant node of the node N is contained in the window object and so subtree queries can be made use of. The following steps systematically query all relevant tree nodes and at the beginning N set to be the root node.
WindowQuery (window W, node N)
if (N is a leaf) retrieve all objects stored in N and evaluate them against W else if (U(N) is completely contained in W)
retrieve all objects stored in the subtree under N and evaluate them against W
else
retrieve all objects stored in N and evaluate them against W for each (child C of N whose area intersects with W)
WindowQuery (W,C)
Fig. 2 shows a system according to a second embodiment of the present invention.
ln Fig. 2 a distributed key value store is shown for obtaining a scalable distributed geographic index. The distributed key value store KVS is distributed over several servers Server 1 ,..., Server n. Each server Server 1 , ..., Server n comprises a stateless indexer on one hand interacting with the distributed key value store KVS by put and get operations and on the other side with a user equipment (not shown) to perform insertion, updating, and/or querying of geometrical objects with each server. This enables scalability of the distributed key value store querying over the geographic index. In summary the present invention provides a fixed space partitioning tree using a key value store. The present invention exploits a special structure of the node key function in combination with range queries to enable a query of whole subtrees by a single operation on the key value store. The present invention further enables representing logically separated fixed space partitioning trees in the same key value store by introducing an additional type prefix.
Even further the present invention enables a representation of type hierarchies by exploiting prefixes and range queries makes use of a subtree query functionality in window queries. Bounding boxes of objects may be split based on the ratio between their size and the size of the area represented by the current tree node. The present invention enables the use the same key value store to store an inverted index used for fast deleting operation of geometrical objects.
The present invention provides inter alia the following advantages: indexing servers are made stateless. All operations like point queries, window queries, inserting and deleting operations are efficient and further robust, reliable and parallel executable. The present invention enables to keep the system state completely inside the key value store wherein this enables in particular parallelization of request handlers to be simple and straightforward. The present invention enables storing of multiple object types logically separated from each other by using the same key value store significantly easing deployment, in particular in mobile geo-fencing.
Even further the present invention has in particular the following advantages: The present invention supports geometrical objects with extent, enables keeping any state information inside the key value store and is flexible for the underlying key value store, i.e. does not make any assumption about the key value store. The present invention enables fast deletions and provides support of object type hierarchies.
Many modifications and other embodiments of the invention set forth herein will come to mind the one skilled in the art to which the invention pertains having the benefit of the teachings presented in the foregoing description and the associated drawings. Therefore, it is to be understood that the invention is not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.
Claims
C l a i m s
A method for storing geometrical objects (A, B, C, D, O) in a database, characterized by the steps of
a) Defining geometrical objects (A, B, C, D, O) comprising points, b) Defining a interest area (IA) comprising the geometrical objects (A, B, C, D, O),
c) Defining a fixed space partitioning tree (FSPT) wherein the root node (RN) is associated with the interest area (IA)
d) Defining a key value store as database, wherein each node (N) of the fixed space partitioning tree (FSPT) is assigned to a key (key(N)) of the key value store (KVS)
e) Associating each tree node (N) with an area (I, II, III) of the fixed space partitioning tree (FSPT), wherein the area (I, II, III) is overlapping with a geometrical object (A, B, C, D, O) to be stored and wherein for each point in the geometrical object one node (N) of the fixed space partitioning tree (FSPT) is associated for storing the geometrical object (A, B, C, D, O) and wherein the associated area (I, I I, III) of the tree node (N) includes the point.
f) Storing the geometrical object (A, B, C, D, O) in the key value store (KVS) by using the key (key(N)) of the key value store (KVS) associated with the geometrical object (A, B, C, D, O) and a geometrical object identifier (id()) representing the geometrical object (A, B, C, D, O) as value.
The method according to claim 1 , characterized in that for storing a plurality of geometrical objects (A, B, C, D, O) under the same key (key(N)) in the key-value-store (KVS) a representation of the set of all geometrical objects (A, B, C, D, O) is stored under the same key (key(N))
The method according to claim 1 , characterized in that for storing a plurality of geometrical objects (A, B, C, D, O) under the same logical
key (key(N)) in the key-value-store (KVS) geometrical objects (A, B, C, D, O) are stored by using a concatenation of the key (key(N)) and the geometrical object identifier (id(O))
4. The method according to one of the claims 1 -3, characterized in that for each tree node (N1 ) included in the subtree of a higher tree node (N2) the corresponding key (key(N2)) associated with the higher tree node (N2) is a prefix of the key (key(N1 )) associated with the tree node (N1 ).
5. The method according to one of the claims 1 -4, characterized in that the geometrical object (A, B, C, D, O) is stored under a first concatenation of the key (key(N)) as prefix and the geometrical object identifier (id(O)) and that the value of the first concatenation is stored under a key comprising a second concatenation of the geometrical object identifier (id(O)) as prefix and the key (key(N).
6. The method according to one of the claims 1 -5, characterized in that queries for different tree nodes (N1 , N2) are executed in parallel.
7. The method according to one of the claims 1 -6, characterized in that for representing a plurality of fixed space partitioning trees a unique tree identifier (id(T)) for each fixed space partitioning tree (FSPT) is used as prefix to the keys in the corresponding fixed space partitioning tree (FSPT).
8. The method according to one of the claims 1 -7, characterized in that the geometrical object identifier (id(O)) comprises object type information (type(O)), preferably when the geometrical object identifier(id(0)) is a prefix of the object type information (type(O)).
9. The method according to claim 8, characterized in that a geometrical object (A, B, C, D, O) is assigned to have different object types (type(O))
by concatenating object types (type(01 ), type(02)), preferably hierarchically, as prefixes for the object identifier (id(O)).
10. The method according to one of the claims 3-9 characterized in that a tree node (N) for storing a geometrical object (O) is selected based on a minimum bounding box (MBB) for the geometrical object (O).
1 1. The method according to claim 10, characterized in that a tree node (N) for storing a geometrical object (O) is selected based on a threshold for a minimal depth (mindepth) of the tree node (N), a maximum depth
(maxdepth) of the tree node (N) and/or for a maximum ratio (maxratio) between the area of the minimum bounding box (MBB) for the geometrical object (O) and the interest area (IA). 12. A method for querying geometrical objects stored according to the method according to one of the claims 1 -1 1 , characterized in that for a query of a point as geometrical object (O) all tree nodes (N) with their area having the point included are iterated and it is tested for each object (O) associated with the tree node (N) if the queried point is included in the area associated with the tree node (N) and if yes, it is added to the result set.
13. A method for querying geometrical objects stored according to the method according to one of the claims 1 -1 1 , characterized in that for a query of a window as geometrical object (O) all tree nodes (N) with their area intersecting with the window are iterated and it is tested for each geometrical object (O) associated with the tree node (N) if the queried window intersects with the area associated with the tree node (N). 14. A system for storing geometrical objects in a database, comprising at least one server for storing geometrical objects and at least one user equipment for interacting with the server,
characterized in that
the user equipment is operable to define geometrical objects (A, B, C, D. O) comprising points, and to define an interest area (IA) comprising the geometrical objects (A, B, C, D, O), and that
the at least one server is operable to define a fixed space partitioning tree (FSPT) wherein the root node (RN) is associated with the interest area (IA), to define a key value store (KVS) as database, wherein each node (N) of the fixed space partitioning tree (FSPT) is assigned to a key (key(N)) of the key value store (KVS), to associate each tree node (N) with an area of the fixed space partitioning tree (FSPT), wherein the area (I, II, I II) is overlapping with a geometrical object (A, B, C, D, O) to be stored and wherein for each point in the geometrical object (A, B, C, D, O) one node (N) of the fixed space partitioning tree (FSPT) is associated storing the geometrical object (A, B, C, D, O) and wherein the associated area (I, II, III) of the tree node (N) includes the point and to store the geometrical object (A, B, C, D, O) in the key value store (KVS) by using the key (key(N)) of the key value store (KVS) associated with the geometrical object (A, B, C, D, O) and a geometrical object identifier (id()) representing the geometrical object (A, B, C, D, O) as value.
15. Use of a method according to one of the claims 1 -1 1 , 12, and/or 13 and/or of a system according to claim 14 for providing geo-fencing, preferably with mobile geo-fences.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2013/059038 WO2014177201A1 (en) | 2013-04-30 | 2013-04-30 | Method and system for storing geometrical objects in a database |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2013/059038 WO2014177201A1 (en) | 2013-04-30 | 2013-04-30 | Method and system for storing geometrical objects in a database |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2014177201A1 true WO2014177201A1 (en) | 2014-11-06 |
Family
ID=48236948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2013/059038 WO2014177201A1 (en) | 2013-04-30 | 2013-04-30 | Method and system for storing geometrical objects in a database |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2014177201A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115510292A (en) * | 2022-11-18 | 2022-12-23 | 四川汉唐云分布式存储技术有限公司 | Distributed storage system tree search management method, device, equipment and medium |
WO2023165374A1 (en) * | 2022-03-04 | 2023-09-07 | 阿里云计算有限公司 | Database operation method and apparatus, and device and storage medium |
-
2013
- 2013-04-30 WO PCT/EP2013/059038 patent/WO2014177201A1/en active Application Filing
Non-Patent Citations (4)
Title |
---|
DOMINIC HEUTELBECK: "Distributed Space Partitioning Trees and their Application in Mobile Computing", 1 May 2005 (2005-05-01), Hagen, XP055096486, Retrieved from the Internet <URL:http://www.fernuni-hagen.de/imperia/md/content/fakultaetfuermathematikundinformatik/forschung/berichte/bericht_327.pdf> [retrieved on 20140115] * |
MARTIN BAUER ET AL: "Scalable Processing of Geo-tagged Data in the Cloud", NEC TECHNICAL JOURNAL, vol. 7, no. 2, 2012, pages 97 - 101, XP055096479 * |
SHOJI NISHIMURA: "Key-value store "mD-HBase" enables multi-dimensional range queries", NEC TECHNICAL JOURNAL, 1 September 2012 (2012-09-01), pages 76 - 80, XP055096476, Retrieved from the Internet <URL:http://www.nec.com/en/global/techrep/journal/g12/n02/pdf/120216.pdf> [retrieved on 20140115] * |
WEI YUSI ET AL: "Performance Improvement of MX-CIF Quadtree by Reducing the Query Results", INTERNATIONAL JOURNAL OF COMPUTER THEORY AND ENGINEERING, vol. 4, no. 6, 1 December 2012 (2012-12-01), pages 902 - 906, XP055096475 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023165374A1 (en) * | 2022-03-04 | 2023-09-07 | 阿里云计算有限公司 | Database operation method and apparatus, and device and storage medium |
CN115510292A (en) * | 2022-11-18 | 2022-12-23 | 四川汉唐云分布式存储技术有限公司 | Distributed storage system tree search management method, device, equipment and medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sankaranarayanan et al. | Path oracles for spatial networks | |
US10754853B2 (en) | Virtual edge of a graph database | |
Deng et al. | Best keyword cover search | |
Garg et al. | Comparing the performance of frequent pattern mining algorithms | |
Guan et al. | ST-hash: An efficient spatiotemporal index for massive trajectory data in a NoSQL database | |
Raghuvira et al. | An efficient density based improved k-medoids clustering algorithm | |
Demiryurek et al. | Indexing network voronoi diagrams | |
KR20190079354A (en) | Partitioned space based spatial data object query processing apparatus and method, storage media storing the same | |
Du et al. | Spatio-temporal data index model of moving objects on fixed networks using hbase | |
Zhang et al. | Effectively indexing the uncertain space | |
CN111813778A (en) | Approximate keyword storage and query method for large-scale road network data | |
Cao et al. | A new method to construct the KD tree based on presorted results | |
Shaham et al. | Machine learning aided anonymization of spatiotemporal trajectory datasets | |
Van Le et al. | A scalable spatio-temporal data storage for intelligent transportation systems based on HBase | |
WO2014177201A1 (en) | Method and system for storing geometrical objects in a database | |
Chang et al. | Sub-trajectory similarity join with obfuscation | |
Sun et al. | A spatially-pruned vertex expansion operator in the Neo4j graph database system | |
CN111597185A (en) | Real-time state number rapid statistical method based on tree structure resource distribution | |
Zhang et al. | Gridvoronoi: An efficient spatial index for nearest neighbor query processing | |
Francis et al. | A scalable constraint-based Q-hash indexing for moving objects | |
Liao et al. | Beyond Millisecond Latency $ k $ NN Search on Commodity Machine | |
Ganti et al. | MP-trie: Fast spatial queries on moving objects | |
Choi et al. | Adaptive cell-based index for moving objects | |
Nitnaware et al. | A multidimensional data storage model for location based application on Hbase | |
Ayeelyan et al. | DTNH Indexing Method: Past Present and Future Data Prediction for Spatio-Temporal Data. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 13719848 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 13719848 Country of ref document: EP Kind code of ref document: A1 |