, Volume 21, Issue 2, pp 293–322 | Cite as

High performance location-based services in a main-memory database

  • Suprio RayEmail author
  • Rolando Blanco
  • Anil K. Goel


With the widespread adoption of mobile devices and explosive growth of spatio-temporal data, Location-Based Services (LBS) have become an indispensable technology in our daily lives. The key characteristics of the LBS applications include a high rate of time-stamped location updates, and many concurrent historical, present and predictive queries. The commercial providers of LBS must support all three kinds of queries and address the high update rates. While they employ relational databases for this purpose, traditional databases are unable to cope with the growing demands of many LBS systems. Support for spatio-temporal indexes within these databases are limited to R-tree based approaches. Although a number of advanced spatiotemporal indexes have been proposed by the research community, only a few of them support historical queries. These indexing techniques, with support for historical queries, are unable to sustain high update and query throughput typical in LBS. Technological trends involving increasingly large main memory and growing processing core count offer opportunities to address some of these issues. We present several key ideas to support high performance commercial LBS by exploiting in-memory database techniques. Taking advantage of very large memory available in modern machines, our system maintains the location data and index for the past N days in memory. Older data and index are kept in disk. We propose an in-memory storage organization for high insert performance. We also introduce a novel spatio-temporal index that maintains partial temporal indexes in a versioned grid structure. The partial temporal indexes are organized as compressed bitmaps. With extensive evaluation, we demonstrate that our system supports high insert and query throughputs and it outperforms the leading LBS system by a significant margin.


Location-based services LBS Main-memory database Spatio-temporal index 


  1. 1.
    Sidlauskas D, Šaltenis S, Jensen CS (2012) Parallel main-memory indexing for moving-object query and update workloads. In: SIGMODGoogle Scholar
  2. 2.
    Sikka V, Farber F, Lehner W, Cha SK, Peh T, Bornhovd C (2012) Efficient transaction processing in SAP HANA database: the end of a column store myth. In: SIGMODGoogle Scholar
  3. 3.
    VoltDB. [Online]. Available:
  4. 4.
    Nguyen-Dinh L-V, Aref WG, Mokbel MF (2010) Spatio-temporal access methods: part 2 (2003 - 2010). IEEE Data(base) Engineering BulletinGoogle Scholar
  5. 5.
    Jiang J, Bao H, Chang EY, Li Y (2012) MOIST: a scalable and parallel moving object indexer with school tracking. In: PVLDBGoogle Scholar
  6. 6.
    Ray S, Blanco R, Goel AK (2013) Enhanced database support for location-based services. In: IWGSGoogle Scholar
  7. 7.
    Ray S, Blanco R, Goel AK (2014) Supporting location-based services in a main-memory database. In: MDMGoogle Scholar
  8. 8.
    Wu K, Otoo EJ, Shoshani A (2002) Compressing bitmap indexes for faster search operations. In: SSDBMGoogle Scholar
  9. 9.
    Diaconu C, Freedman C, Ismert E, Larson P-A, Mittal P, Stonecipher R, Verma N, Zwilling M, (2013) Hekaton: Sql server’s memoryoptimized oltp engine. In: SIGMODGoogle Scholar
  10. 10.
    Raman V, Swart G, Qiao L, Reiss F, Dialani V, Kossmann D, Narang I, Sidle R (2008) Constant-time query processing. In: ICDEGoogle Scholar
  11. 11.
    Idreos S, Groffen F, Nes N, Manegold S, Mullender SK, Kersten ML (2012) MonetDB: two decades of research in column-oriented database architectures. IEEE Data Engineering BulletinGoogle Scholar
  12. 12.
    Stonebraker M, Abadi DJ, Batkin A, Chen X, Cherniack M, Ferreira M, Lau E, Lin A, Madden S, O’Neil EJ, O’Neil PE, Rasin A, Tran N (2005) C-Store: a column-oriented DBMS. In: VLDBGoogle Scholar
  13. 13.
    Chen S, Lin S, Jensen CS (2008) A benchmark for evaluating moving object indexes. In: PVLDBGoogle Scholar
  14. 14.
    Jensen CS, Lin D, Ooi BC (2004) Query and update efficient B+-tree based indexing of moving objects. In: VLDBGoogle Scholar
  15. 15.
    Yiu ML, Tao Y, Mamoulis N (2008) The bdual-tree: indexing moving objects by space filling curves in the dual space. VLDB J 17(3):379–400CrossRefGoogle Scholar
  16. 16.
    Xiong X, Aref WG (2006) R-trees with update memos. In: ICDEGoogle Scholar
  17. 17.
    Šaltenis S, Jensen CS, Leutenegger ST, Lopez MA (2000) Indexing the positions of continuously moving objects. Sigmod RecordGoogle Scholar
  18. 18.
    Tao Y, Papadias D, Sun J (2003) The TPR*-tree: an optimized spatio-temporal access method for predictive queries. In: VLDBGoogle Scholar
  19. 19.
    Patel JM, Chen Y, Chakka VP (2004) STRIPES: an efficient index for predicted trajectories. In: SIGMODGoogle Scholar
  20. 20.
    Lin D, Jensen CS, Ooi BC, Šaltenis S (2005) Efficient indexing of the historical, present, and future positions of moving objects. In: MDMGoogle Scholar
  21. 21.
    Nascimento MA, Silva JRO (1998) Towards historical R-trees. In: SACGoogle Scholar
  22. 22.
    Pfoser D, Jensen CS, Theodoridis Y (2000) Novel approaches in query processing for moving object trajectories. In: VLDBGoogle Scholar
  23. 23.
    Tao Y, Papadias D (2001) MV3R-Tree: a spatio-temporal access method for timestamp and interval queries. In: VLDBGoogle Scholar
  24. 24.
    Pelanis M, Saltenis S, Jensen CS (2006) Indexing the past, present, and anticipated future positions of moving objects. ACM Trans Database Syst (TODS) 31:255–298CrossRefGoogle Scholar
  25. 25.
    Lomet D, Salzberg B (1989) Access methods for multiversion data. In: SIGMODGoogle Scholar
  26. 26.
    Becker B, Gschwind S, Ohler T, Seeger B, Widmayer P (1996) An asymptotically optimal multiversion B-tree. VLDB J 5:264–275CrossRefGoogle Scholar
  27. 27.
    Zhang R, Stradling M (2010) The HV-tree: a memory hierarchy aware version index. Proc VLDB Endow 3:397–408CrossRefGoogle Scholar
  28. 28.
    Dittrich J, Blunschi L, Salles MAV (2009) Indexing moving objects using short-lived throwaway indexes. In: SSTDGoogle Scholar
  29. 29.
    Nishimura S, Das S, Agrawal D, Abbadi AE (2011) MD-HBase: a scalable multi-dimensional Data infrastructure for location aware services. In: MDMGoogle Scholar
  30. 30.
    MOTO (Moving Objects Trace generatOr). [Online]. Available:
  31. 31.
    TIGER. [Online]. Available:
  32. 32.
    Callgrind. [Online]. Available:
  33. 33.
    Hellerstein JM, Naughton JF, Pfeffer A (1995) Generalized search trees for database system. In: VLDBGoogle Scholar
  34. 34.
    Wu E, Madden S (2011) Partitioning techniques for fine-grained indexing. In: ICDEGoogle Scholar
  35. 35.
    Hendawi AM, Mokbel MF (2012) Panda: a predictive spatio-temporal query processor. In: SIGSPATIAL GISGoogle Scholar
  36. 36.
    Zhang R, Jagadish HV, Dai BT, Ramamohanarao K (2010) Optimized algorithms for predictive range and KNN queries on moving objects. Inf Syst 35(8):911–932CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media New York 2016

Authors and Affiliations

  1. 1.Faculty of Computer ScienceUniversity of New BrunswickFrederictonCanada
  2. 2.SAP CanadaWaterlooCanada

Personalised recommendations