Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
teaching:projh402 [2020/10/03 18:14]
ezimanyi [VODKA Indexes for MobilityDB]
teaching:projh402 [2020/10/03 18:20]
ezimanyi [VODKA Indexes for MobilityDB]
Line 9: Line 9:
 Mobility databases (MOD) are database systems that can store and manage moving object geospatial trajectory data. A moving object is an object that changes its location over time (e.g., a car driving on the road network). Using a variety of sensors, the location tracks of moving objects can be recorded in digital formats. A MOD, then, helps storing and querying such data. A couple of prototype systems have been proposed by research groups. Yet, a mainstream system is by far still missing. By mainstream we mean that the development builds on widely accepted tools, that are actively being maintained and developed. A mainstream system would exploit the functionality of these tools, and would maximize the reuse of their ecosystems. As a result, it becomes more closer to end users, and easily adopted in the industry. Mobility databases (MOD) are database systems that can store and manage moving object geospatial trajectory data. A moving object is an object that changes its location over time (e.g., a car driving on the road network). Using a variety of sensors, the location tracks of moving objects can be recorded in digital formats. A MOD, then, helps storing and querying such data. A couple of prototype systems have been proposed by research groups. Yet, a mainstream system is by far still missing. By mainstream we mean that the development builds on widely accepted tools, that are actively being maintained and developed. A mainstream system would exploit the functionality of these tools, and would maximize the reuse of their ecosystems. As a result, it becomes more closer to end users, and easily adopted in the industry.
  
-Towards filling this gap, our group is building the [[https://​github.com/​MobilityDB/​MobilityDB|MobilityDB]] system. It builds on [[https://​postgis.net/​|PostGIS]],​ which is a spatial database extension of [[https://​www.postgresql.org/​|PostgreSQL]]. MobilityDB extends the type system of PostgreSQL and PostGIS with ADTs for representing moving object data. It defines, for instance, the tgeompoint type for representing a time dependant geometry point. MobilityDB types are well integrated into the platform, to achieve maximal reusability,​ hence a mainstream development. For instance, the tgeompoint type builds on the PostGIS geometry(point) type. Similarly MobilityDB builds on existing operations, indexing, and optimization framework.+Towards filling this gap, our group is building the [[https://​github.com/​MobilityDB/​MobilityDB|MobilityDB]] system. It builds on [[https://​postgis.net/​|PostGIS]],​ which is a spatial database extension of [[https://​www.postgresql.org/​|PostgreSQL]]. MobilityDB extends the type system of PostgreSQL and PostGIS with abstract data types (ADTsfor representing moving object data. It defines, for instance, the tgeompoint type for representing a time dependant geometry point. MobilityDB types are well integrated into the platform, to achieve maximal reusability,​ hence a mainstream development. For instance, the tgeompoint type builds on the PostGIS geometry(point) type. Similarly MobilityDB builds on existing operations, indexing, and optimization framework.
  
 MobilityDB supports SQL as query interface. Currently it is quite rich in terms of types and functions. It is incubated as community project in [[https://​www.osgeo.org/​projects/​mobilitydb/​|OSGeo]],​ which certifies high technical quality. ​ MobilityDB supports SQL as query interface. Currently it is quite rich in terms of types and functions. It is incubated as community project in [[https://​www.osgeo.org/​projects/​mobilitydb/​|OSGeo]],​ which certifies high technical quality. ​
Line 85: Line 85:
 MobilityDB provides [[https://​habr.com/​en/​company/​postgrespro/​blog/​444742/​|GiST]] and [[https://​habr.com/​ru/​company/​postgrespro/​blog/​446624/​|SP-GiST]] indexes for temporal types. These indexes are based on bounding boxes, that is, the nodes of the index tree store a bounding box that keeps the mininum and maximum values of each of the dimensions where X, Y, Z (if available) are for the spatial dimension and T for the temporal dimension. The reason for this is that a temporal type (for example, a moving point representing the movement of a vehicle) can have thousands of timestamped points and keeping all these points for each vehicle indexed in a table is very inefficient. By keeping the bounding box only it is possible to quickly filter the rows in a table and then a more detailed analysis can be made for those rows selected by the index. MobilityDB provides [[https://​habr.com/​en/​company/​postgrespro/​blog/​444742/​|GiST]] and [[https://​habr.com/​ru/​company/​postgrespro/​blog/​446624/​|SP-GiST]] indexes for temporal types. These indexes are based on bounding boxes, that is, the nodes of the index tree store a bounding box that keeps the mininum and maximum values of each of the dimensions where X, Y, Z (if available) are for the spatial dimension and T for the temporal dimension. The reason for this is that a temporal type (for example, a moving point representing the movement of a vehicle) can have thousands of timestamped points and keeping all these points for each vehicle indexed in a table is very inefficient. By keeping the bounding box only it is possible to quickly filter the rows in a table and then a more detailed analysis can be made for those rows selected by the index.
  
-However, the drawback of keeping a single bounding box for the whole trajectory makes that the index is not very selective as shown in the following figure (extracted from a presentation by Oleg Bartunov from ProstgresPro)+However, the drawback of keeping a single bounding box for the whole trajectory makes that the index is not very selective as shown in the following figure (extracted from a presentation by Oleg Bartunov from PostgresPro)
  
 {{:​teaching:​gist.png?​400|}} {{:​teaching:​gist.png?​400|}}
  
-The goal of the project is to define [[https://​www.pgcon.org/​2014/​schedule/​events/​696.en.html|VODKA indexes]] ​that enable us to store in the index multiple bounding boxes associated to each row in the table as shown in the following figure+The goal of the project is to define [[https://​www.pgcon.org/​2014/​schedule/​events/​696.en.html|VODKA indexes]] ​for MobilityDB, which  ​enable us to store in the index multiple bounding boxes (one per segment) ​associated to each row in the table as shown in the following figure
  
 {{:​teaching:​vodka.png?​400|}} {{:​teaching:​vodka.png?​400|}}
 
teaching/projh402.txt · Last modified: 2022/09/06 10:39 by ezimanyi