DSaaS - A Cloud Service for Persistent Data Structures

Pierre Bernard le Roux, Steve Kroon, Willem Bester


In an attempt to tackle shortcomings of current approaches to collaborating on the development of structured data sets, we present a prototype platform that allows users to share and collaborate on the development of data structures via a web application, or by using language bindings or an API. Using techniques from the theory of persistent linked data structures, the resulting platform delivers automatically version-controlled map and graph abstract data types as a web service. The core of the system is provided by a Hash Array Mapped Trie (HAMT) which is made confluently persistent by path-copying. The system aims to make efficient use of storage, and to have consistent access and update times regardless of the version being accessed or modified.


  1. Bagwell, P. (2001). Ideal hash trees. Technical report. http://infoscience.epfl.ch/record/64398/files/idealhas htrees.pdf [Accessed: 2015-11-07].
  2. Bhattacherjee, S., Chavan, A., Huang, S., Deshpande, A., and Parameswaran, A. (2015). Principles of dataset versioning: Exploring the recreation/storage tradeoff. In 41st International Conference on Very Large Data Bases, volume 8, pages 1346-1357, Kohala Coast, Hawaii.
  3. Bitbucket (2015). Git and mercurial code management for your team. https://bitbucket.org/ [Accessed: 2015-08- 29].
  4. Driscoll, J. R., Sarnak, N., Sleator, D. D., and Tarjan, R. E. (1986). Making data structures persistent. In Proceedings of the Eighteenth Annual ACM Symposium on Theory of Computing, pages 109-121. ACM.
  5. Facebook (2015). Flux. https://facebook.github .io/flux/docs/overview.html [Accessed: 2015-05-19].
  6. Fette, I. and Melnikov, A. (2011). The WebSocket Protocol. RFC 6455 (The WebSocket Protocol). http://tools.ietf.org/html/rfc6455 [Accessed: 2015- 08-01].
  7. Fielding, R. T. (2000). Architectural Styles and the Design of Network-based Software Architectures. PhD thesis, University of California, Irvine.
  8. GitHub (2015). Github - where software is built. https://github.com/ [Accessed: 2015-08-29].
  9. Google (2015). Google drive - cloud storage and file backup for photos, docs and more. https:// www.google.com/drive/ [Accessed: 2015-08-29].
  10. Google (2015). LevelDB. http://leveldb.org/ [Accessed: 2015-05-20].
  11. Kantor, I. (2015). Objects JavaScript Tutorial. http://java script.info/tutorial/objects [Accessed: 2015-08-30].
  12. Kaplan, H. (1995). Persistent data structures. In Mehta, D. and Sahni, S., editors, Handbook of Data Structures and Applications. CRC Press.
  13. le Roux, P. B. (2015). DSaaS: A Cloud Service for Persistent Data Structures. Honours project report, Stellenbosch University Computer Science Division. http://cs.sun.ac.za/~kroon/dsaas/docs/dsaas report.pdf [Accessed: 2016-02-15].
  14. Marsland, T. A. (1986). A review of game-tree pruning. ICCA Journal, 9(1):3-19.
  15. Membrey, P., Plugge, E., and Hawkins, D. (2010). The Definitive Guide to MongoDB: the NoSQL Database for Cloud and Desktop Computing. Apress.
  16. Ogden, M. (2015a). maxogden/dat-core. https://github .com/maxogden/dat-core [Accessed: 2015-08-13].
  17. Ogden, M. (2015b). Versioned Data, Collaborated. http://dat-data.com/ [Accessed: 2015-08-13].
  18. PĂ©rez, F. and Granger, B. E. (2007). IPython: A system for interactive scientific computing. Computing in Science and Engineering, 9(3):21-29.
  19. Pollock, R. (2015). Git and GitHub for data. http://blog.okfn.org/2013/07/02/git-and-githubfor-data/ [Accessed: 2015-08-30].
  20. Python (2015). Built-in Types - Python 2.7.10 documentation. https://docs.python.org/2/library/std types.html?mapping-types-dict [Accessed: 2015-08- 30].
  21. Santos, P. (2013). Three-Way Merge. http://www.drdobbs.com/tools/three-way-merginga-look-under-the-hood/240164902 [Accessed: 2016-02-11].
  22. Straka, M. (2013). Functional Data Structures and Algorithms. PhD thesis, Computer Science Institute of Charles University, Prague.
  23. Twigg, A., Byde, A., Milos, G., Moreton, T., Wilkes, J., and Wilkie, T. (2011). Stratified B-trees and Versioned Dictionaries. In Proceedings of the 3rd USENIX Conference on Hot Topics in Storage and File Systems, HotStorage, volume 11, pages 10-10.
  24. Watt, D. A. and Brown, D. (2001). Java Collections: an Introduction to Abstract Data Types, Data Structures and Algorithms. John Wiley & Sons, Inc.
  25. Zobrist, A. L. (1970). A new hashing method with application for game playing. ICCA Journal, 13(2):69-73.

Paper Citation

in Harvard Style

le Roux P., Kroon S. and Bester W. (2016). DSaaS - A Cloud Service for Persistent Data Structures . In Proceedings of the 6th International Conference on Cloud Computing and Services Science - Volume 1: CLOSER, ISBN 978-989-758-182-3, pages 37-48. DOI: 10.5220/0005763600370048

in Bibtex Style

author={Pierre Bernard le Roux and Steve Kroon and Willem Bester},
title={DSaaS - A Cloud Service for Persistent Data Structures},
booktitle={Proceedings of the 6th International Conference on Cloud Computing and Services Science - Volume 1: CLOSER,},

in EndNote Style

JO - Proceedings of the 6th International Conference on Cloud Computing and Services Science - Volume 1: CLOSER,
TI - DSaaS - A Cloud Service for Persistent Data Structures
SN - 978-989-758-182-3
AU - le Roux P.
AU - Kroon S.
AU - Bester W.
PY - 2016
SP - 37
EP - 48
DO - 10.5220/0005763600370048