With Gremlin, the integrated query language provided
by TinkerPop, we can also provide a powerful query
mechanism to client developers, completely hiding
the key-value store in the background. With Chrono-
Graph, it will be possible for the first time in any Tin-
kerPop implementation to analyze the history of any
given graph element (vertex or edge), as well as run-
ning a given Gremlin query on any past graph state.
Further research on ChronoDB will include how
caching with temporal aspects can be implemented.
We are also investigating potential opportunities for
taking advantage of our versioning concept in order
to distribute the content of our store over several ma-
chines. Secondary indexing in a versioned environ-
ment is also a subject of our ongoing research, as well
as lightweight branching (as seen in traditional ver-
sion control systems, e.g. Git or SVN).
7 SUMMARY & CONCLUSION
In this paper we presented a concept for scalable ver-
sioning in key-value stores. We motivated the prob-
lem at hand by pointing out concrete use cases found
in literature such as road planning in Global Informa-
tion Systems and wildlife tracking, as well as describ-
ing the advantages to be gained from versioned data
stores in general software engineering. Our first con-
tribution is the formalization of the transaction time
versioning problem in the form of a Temporal Data
Matrix, which provides precise semantics of all oper-
ations and an intuitive way of visualizing even com-
plex temporal scenarios. We also provided a map-
ping to the three kinds of temporal queries found
in (Salzberg and Tsotras, 1999), demonstrating that
our set of operations is comprehensive. The sec-
ond contribution of this paper is the in-depth discus-
sion on the practical aspects of the presented the-
ory, in particular with respect to an implementation,
index structures and transaction management. The
third and final contribution is the open-source project
ChronoDB which implements the presented concepts,
serving as a proof-of-concept prototype. We also used
ChronoDB to evaluate the practical feasibility of the
presented concepts through experiments.
REFERENCES
Codd, E. F., Codd, S. B., and Salley, C. T. (1993). Providing
olap (on-line analytical processing) to user-analysts:
An it mandate. Codd and Date, 32.
DeCandia, G., Hastorun, D., Jampani, M., Kakulapati,
G., Lakshman, A., Pilchin, A., Sivasubramanian,
S., Vosshall, P., and Vogels, W. (2007). Dynamo:
amazon’s highly available key-value store. In ACM
SIGOPS Operating Systems Review, volume 41, pages
205–220. ACM.
Easton, M. C. (1986). Key-sequence data sets on indelible
storage. IBM Journal of Research and Development,
30(3):230–241.
Felber, P., Pasin, M., Riviere, E., Schiavoni, V., Sutra, P.,
Coelho, F., et al. (2014). On the Support of Versioning
in Distributed Key-Value Stores. In 33rd IEEE SRDS
2014, Nara, Japan, October 6-9, 2014, pages 95–104.
ISO (2011). SQL Standard 2011 (ISO/IEC 9075:2011).
Jensen, C. S., Dyreson, C. E., B
¨
ohlen, M., Clifford, J.,
Elmasri, R., Gadia, S. K., et al. (1998). Tempo-
ral Databases: Research and Practice, chapter The
consensus glossary of temporal database concepts —
February 1998 version, pages 367–405. Springer
Berlin Heidelberg, Berlin, Heidelberg.
Lakshman, A. and Malik, P. (2010). Cassandra: a decen-
tralized structured storage system. ACM SIGOPS Op-
erating Systems Review, 44(2):35–40.
Lomet, D., Barga, R., Mokbel, M., and Shegalov, G. (2006).
Transaction time support inside a database engine. In
Proceedings of the 22nd ICDE, pages 35–35.
Lomet, D. and Salzberg, B. (1989). Access Methods for
Multiversion Data. SIGMOD Rec., 18(2):315–324.
Nascimento, M., Dunham, M., and Elmasri, R. (1996). M-
IVTT: An index for bitemporal databases. In Wag-
ner, R. and Thoma, H., editors, Database and Expert
Systems Applications, volume 1134 of Lecture Notes
in Computer Science, pages 779–790. Springer Berlin
Heidelberg.
Ramaswamy, S. (1997). Efficient indexing for con-
straint and temporal databases. In Database Theory-
ICDT’97, pages 419–431. Springer.
Salzberg, B. (1988). File Structures: An Analytic Approach.
Prentice-Hall, Inc., Upper Saddle River, NJ, USA.
Salzberg, B. and Tsotras, V. J. (1999). Comparison of ac-
cess methods for time-evolving data. ACM Computing
Surveys (CSUR), 31(2):158–221.
Saracco, C., Nicola, M., and Gandhi, L. (2012). A matter
of time: Temporal data management in DB2 10. IBM
developerWorks.
Shi, Z. and Shibasaki, R. (2000). GIS Database Revision–
The Problems and Solutions. International Archives of
Photogrammetry and Remote Sensing, 33(B2; PART
2):494–501.
Snodgrass, R. T. (1986). Temporal databases. IEEE Com-
puter, 19:35–42.
Urbano, F. and Cagnacci, F. (2014). Spatial Database
for GPS Wildlife Tracking Data: A Practical Guide
to Creating a Data Management System with Post-
greSQL/PostGIS and R. Springer Science & Business
Media.
DATA 2016 - 5th International Conference on Data Management Technologies and Applications
86