| Literature DB >> 25051028 |
Shengnan Ke1, Jun Gong2, Songnian Li3, Qing Zhu4, Xintao Liu5, Yeting Zhang6.
Abstract
In recent years, there has been tremendous growth in the field of indoor and outdoor positioning sensors continuously producing huge volumes of trajectory data that has been used in many fields such as location-based services or location intelligence. Trajectory data is massively increased and semantically complicated, which poses a great challenge on spatio-temporal data indexing. This paper proposes a spatio-temporal data indexing method, named HBSTR-tree, which is a hybrid index structure comprising spatio-temporal R-tree, B*-tree and Hash table. To improve the index generation efficiency, rather than directly inserting trajectory points, we group consecutive trajectory points as nodes according to their spatio-temporal semantics and then insert them into spatio-temporal R-tree as leaf nodes. Hash table is used to manage the latest leaf nodes to reduce the frequency of insertion. A new spatio-temporal interval criterion and a new node-choosing sub-algorithm are also proposed to optimize spatio-temporal R-tree structures. In addition, a B*-tree sub-index of leaf nodes is built to query the trajectories of targeted objects efficiently. Furthermore, a database storage scheme based on a NoSQL-type DBMS is also proposed for the purpose of cloud storage. Experimental results prove that HBSTR-tree outperforms TB*-tree in some aspects such as generation efficiency, query performance and query type.Entities:
Mesh:
Year: 2014 PMID: 25051028 PMCID: PMC4168421 DOI: 10.3390/s140712990
Source DB: PubMed Journal: Sensors (Basel) ISSN: 1424-8220 Impact factor: 3.576
Figure 1.Framework of HBSTR-tree.
Figure 2.Flowchart of HBSTR-tree insertion algorithm.
Structure of index metadata document.
| _id | ROWID | Identity of metadata document (999999999999) |
| MetaInfoData | BinData | Includes a series of metadata |
Description of MetaInfoData element.
| DBName | string | Name of DB which includes original dataset(for example, DBNAME.DATASETNAME) |
| DatasetName | string | Name of original dataset corresponding to Index(for example, DBNAME.DATASETNAME) |
| IndexDatasetName | string | Name of index dataset |
| SpatioDimensions | Int | Spatial dimensions |
| MaxNodesNum | Int | Maximum of fanout parameters in non-leaf node |
| MinNodesNum | Int | Minimum of fanout parameters in non-leaf node |
| MaxTuplesNum | Int | Maximum of fanout parameters in leaf node |
| MinTuplesNum | Int | Minimum of fanout parameters in leaf node |
| TotalNodesNum | Int | Number of the total nodes |
| RidTreeRootNode | ROWID | ROWID of root node |
Description of document structure for R-tree node.
| _id | ROWID | Unique ROWID of node |
| NodeBufData | BinData | Node data in BinData type |
Description of element structure for NodeBufData.
| LevelID | Int | Level number(leaf node belongs to Level 0) |
| Interval | SpatioTemporalInterval | MBR of this node |
| ridParentNode | ROWID | ROWID of father node |
| NumChildren | Int | Number of child entries |
| RidChildren | Array(ROWID) | If leaf node, here are ROWIDs of trajectory points; if non-leaf node, here are ROWIDs of child nodes |
|
| ||
|
| ||
| ObjectID | ||
| ChildPoints | ||
|
| ||
|
| ||
| ChildIntervals | ||
Description of experimental datasets.
| O5000K | 1000 | 281, 3935, 23854, 30851 | 14000 | 5271991 |
| O10000K | 1000 | 281, 3935, 23854, 30851 | 26000 | 10579838 |
| O20000K | 1000 | 281, 3935, 23854, 30851 | 48000 | 20845388 |
| O40000K | 1000 | 281, 3935, 23854, 30851 | 90000 | 40819855 |
Experimental results of index generation (Dataset O5000K).
| TB*-tree | 439 | 76652 | 73734 | 2918 | 217 |
| HBSTR-tree | 454 | 76814 | 73734 | 3080 | 221 (216 + 5) |
Figure 3.Spatio-temporal range queries (left) Q1(1%); (middle) Q2(2%); (right) Q3(4%).
Node accesses in trajectory queries.
|
| ||||
|---|---|---|---|---|
| O5000K | O10000K | O20000K | O40000K | |
| 52 | 77 | 122 | 178 | |
| 5(2+3) | 5(2+3) | 5(2+3) | 5(2+3) | |