Log-Based Model to Enforce Data Consistency on Agnostic Fault-Tolerant Systems

  • Óscar Mortágua PereiraEmail author
  • David Apolinário Simões
  • Rui L. Aguiar
Conference paper
Part of the Communications in Computer and Information Science book series (CCIS, volume 737)


Agnostic fault-tolerant systems cannot recover to a consistent state if a failure/crash occurs during a transaction. By their nature, inconsistent states are very difficult to be treated and recovered into the previous consistent state. One of the most common fault tolerance mechanisms consists in logging the system state whenever a modification takes place, and recovering the system to the system previous consistent state in the event of a failure. This principle was used to design a general recovering log-based model capable of providing data consistency on agnostic fault-tolerant systems. Our proposal describes how a logging mechanism can recover a system to a consistent state, even if a set of actions of a transaction were interrupted mid-way, due to a server crash. Two approaches of implementing the logging system are presented: on local files and on memory in a remote fault-tolerant cluster. The implementation of a proof of concept resorted to a previous proposed framework, which provides common relational features to NoSQL database management systems. Among the missing features, the previous proposed framework used in the proof of concept, was not fault-tolerant.


Fault tolerance Logging mechanism Software architecture Transactional system 



This work is funded by National Funds through FCT – Fundação para a Ciência e a Tecnologia under the project UID/EEA/50008/2013.


  1. 1.
    Randell, B., Lee, P., Treleaven, P.C.: Reliability issues in computing system design. ACM Comput. Surv. 10, 123–165 (1978). doi: 10.1145/356725.356729 CrossRefzbMATHGoogle Scholar
  2. 2.
    Sumathi, S., Esakkirajan, S.: Fundamentals of Relational Database Management Systems. Springer, Heidelberg (2007). doi: 10.1007/978-3-540-48399-1
  3. 3.
    Gray, J.: The transaction concept: virtues and limitations. In: Proceedings of 7th International Conference on Very Large Data Bases, pp. 144–154 (1981). doi:
  4. 4.
    Pereira, Ó.M., Simões, D., Aguiar, R.L.: Endowing NoSQL DBMS with SQL features through standard call level interfaces. In: SEKE 2015 - International Conference on Software Engineering Knowledge Engineering, pp. 201–207 (2015)Google Scholar
  5. 5.
  6. 6.
    Parsian, M.: JDBC Recipes: A Problem-Solution Approach. Apress, New York (2005)Google Scholar
  7. 7.
    Microsoft RecordSet (ODBC): Microsoft. Accessed 16 Nov 2016
  8. 8.
    Pereira, Ó.M., Aguiar, R.L., Santos, M.Y.: CRUD-DOM: a model for bridging the gap between the object-oriented and the relational paradigms. In: ICSEA 2010 - International Conference on Software Engineering Applications, Nice, France, pp. 114–122 (2010)Google Scholar
  9. 9.
    Pereira, Ó.M., Aguiar, R.L., Santos, M.Y.: An adaptable business component based on pre-defined business interfaces. In: 6th ENASE Evaluation of Novel Approaches to Software Engineering, Beijing, China, pp. 92–103 (2011)Google Scholar
  10. 10.
    Pereira, O.M., Aguiar, R.L., Santos, M.Y.: ABC architecture: a new approach to build reusable and adaptable business tier components based on static business interfaces. In: Maciaszek, L.A., Zhang, K. (eds.) ENASE 2011. CCIS, vol. 275, pp. 114–129. Springer, Heidelberg (2013). doi: 10.1007/978-3-642-32341-6_8 CrossRefGoogle Scholar
  11. 11.
    Pereira, Ó.M., Regateiro, D.D., Aguiar, R.L.: Secure, dynamic and distributed access control stack for database applications. In: SEKE 2015 - International Conference Software Engineering Knowledge Engineering, pp. 365–369 (2015)Google Scholar
  12. 12.
    Pereira, Ó.M., Regateiro, D.D., Aguiar, R.L.: Secure, dynamic and distributed access control stack for database applications. Int. J. Softw. Eng. Knowl. Eng. 25, 1703–1708 (2015). doi: 10.1142/S0218194015710035 CrossRefGoogle Scholar
  13. 13.
    Pereira, Ó.M., Simões, D.A., Aguiar, R.L.: Fault tolerance logging-based model for deterministic systems. In: DATA 2016 - 5th International Conference on Data Science Technology Application, Lisbon, Portugal, pp. 119–126. SCITEPRESS (2016)Google Scholar
  14. 14.
    Balaji, P., Buntinas, D., Kimpe, D.: Fault Tolerance Techniques for Scalable Computing. In: McsAnlGov, pp. 1–33 (2012)Google Scholar
  15. 15.
    Borges, A.R.: Introductory concepts. Lecture on Distributed Systems (2015)Google Scholar
  16. 16.
    Elnozahy, E.N.(M)., Alvisi, L., Wang, Y.-M., Johnson, D.B.: A survey of rollback-recovery protocols in message-passing systems. ACM Comput. Surv. 34, 375–408 (2002). doi: 10.1145/568522.568525
  17. 17.
    Bhargava, B., Lian, S.-R.: Independent checkpointing and concurrent rollback for recovery in distributed systems - an optimistic approach. In: Proceedings of Seventh Symposium Reliable Distributed Systems, pp. 3–12 (1988). doi: 10.1109/RELDIS.1988.25775
  18. 18.
    Chandy, K.M., Lamport, L.: Distributed snapshots: determining global states of distributed systems. ACM Trans. Comput. Syst. 3, 63–75 (1985). doi: 10.1145/214451.214456 CrossRefGoogle Scholar
  19. 19.
    Johnson, D.B.: Distributed system fault tolerance using message logging and checkpointing. Ph.D. Dissertation. Rice University, Houston, TX, USA. AAI9110983 (1990)Google Scholar
  20. 20.
    Brown, M.: Event logging system and method for logging events in a network system (1999)Google Scholar
  21. 21.
    Heemels, J.P., Carlson, G.M., Spinelli, J.C.: Data logging system for implantable cardiac device (1997)Google Scholar
  22. 22.
    Fraker, W.F., Storm, J.M.: Position and time-at-position logging system (1999)Google Scholar
  23. 23.
    Salmassy, O.E., Sullivan, R.E.: Statistical and environmental data logging system for data processing storage subsystem (1972)Google Scholar
  24. 24.
    Anderson, R.A.: Automatic process logging system (1959)Google Scholar
  25. 25.
    Mohan, C., Haderle, D., Lindsay, B., et al.: ARIES: a transaction recovery method supporting fine-granularity locking and partial rollbacks using write-ahead logging. ACM Trans. Database Syst. 17, 94–162 (1992). doi: 10.1145/128765.128770 CrossRefGoogle Scholar
  26. 26.
    Huang, K.H., Abraham, J.A.: Algorithm-based fault tolerance for matrix operations. IEEE Trans. Comput. 33, 518–528 (1984). doi: 10.1109/TC.1984.1676475
  27. 27.
    Rabin, M.O.: Efficient dispersal of information for security, load balancing, and fault tolerance. J. ACM 36, 335–348 (1989). doi: 10.1145/62044.62050 MathSciNetCrossRefzbMATHGoogle Scholar
  28. 28.
    Shvachko, K., Kuang, H., Radia, S., Chansler, R.: The Hadoop distributed file system. In: 2010 IEEE 26th Symposium on Mass Storage Systems and Technologies MSST2010 (2010). doi: 10.1109/MSST.2010.5496972
  29. 29.
    Ylönen, T.: Concurrent shadow paging: a new direction for database research (1992)Google Scholar
  30. 30.
    Oki, B.M., Liskov, B.H.: Viewstamped replication: a new primary copy method to support highly-available distributed systems. In: PODC 1988 Proceedings of Seventh Annual ACM Symposium on Principles of Distributed Computing, vol. 62, pp. 8–17 (1988). doi: 10.1145/62546.62549
  31. 31.
    Shih, K.-Y., Srinivasan, U.: Method and system for data replication (2003)Google Scholar
  32. 32.
    Wolfson, O., Jajodia, S., Huang, Y.: An adaptive data replication algorithm. ACM Trans. Database Syst. 22, 255 (1997)CrossRefGoogle Scholar
  33. 33.
    Castro, M., Liskov, B.: Practical Byzantine fault tolerance. In: Proceedings of Symposium on Operating Systems Design and Implementation, pp. 1–14 (1999). doi: 10.1145/571637.571640
  34. 34.
    Bershad, B., ACM Digital Library, ACM Special Interest Group in Operating Systems, et al.: HQ replication: a hybrid quorum protocol for Byzantine fault tolerance. In: Proceedings of 7th Symposium on Operating System Design and Implementation, p. 407 (2006)Google Scholar
  35. 35.
    Castro, M.: Practical Byzantine fault tolerance and proactive recovery. ToCS 20, 398–461 (2002). doi: 10.1145/571637.571640
  36. 36.
    Merideth, M.G., Iyengar, A., Mikalsen, T., et al.: Thema: Byzantine-fault-tolerant middleware for web-service applications. In: Proceedings of IEEE Symposium on Reliable Distributed Systems, pp. 131–140 (2005)Google Scholar
  37. 37.
    Chun, B., Maniatis, P., Shenker, S.: Diverse replication for single-machine Byzantine-fault tolerance. In: USENIX Annual Technical Conference, pp. 287–292 (2008)Google Scholar
  38. 38.
    Kotla, R., Dahlin, M.: High throughput Byzantine fault tolerance. In: Proceedings of 2004 International Conference on Dependable System Networks, p. 575 (2004). doi: 10.1109/DSN.2004.1311928
  39. 39.
    Nakamoto, S.: Bitcoin: a peer-to-peer electronic cash system, p. 9 (2008). doi: 10.1007/s10838-008-9062-0,
  40. 40.
    Pritchett, D.: Base: an acid alternative. Queue 6, 48–55 (2008)CrossRefGoogle Scholar
  41. 41.
    Gusella, R., Zatti, S.: An election algorithm for a distributed clock synchronization program (1985)Google Scholar

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  • Óscar Mortágua Pereira
    • 1
    Email author
  • David Apolinário Simões
    • 1
  • Rui L. Aguiar
    • 1
  1. 1.DETI, Instituto de TelecomunicaçõesUniversity of AveiroAveiroPortugal

Personalised recommendations