Small Logs for Transactional Services: Distinction is Much More Accurate than (Positive) Discrimination

  • Authors:
  • Debmalya Biswas;Thomas Gazagnaire;Blaise Genest

  • Affiliations:
  • -;-;-

  • Venue:
  • HASE '08 Proceedings of the 2008 11th IEEE High Assurance Systems Engineering Symposium
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

For complex services, logging is an integral part of many middleware aspects, especially, transactions and monitoring. In the event of a failure, the log allows us to deduce the cause of failure (diagnosis), recover by compensating the logged actions (atomicity), etc. However, for heterogeneous services, logging all the actions is often impracticable due to privacy/security constraints. Also, logging is expensive in terms of both time and space. Thus, we are interested in determining a small number of actions that needs to be logged, to know with certainty the actual sequence of executed actions from any given partial log. We propose two heuristics to determine such a small set of transitions, with services modeled as Finite State Machines. The first one is based on {\em (Positive) Discrimination} of transitions, using every observation to know (discriminate) that a maximal number of transitions occurred. We characterize it algebraically, giving a very fast algorithm. The second algorithm, the {\em distinguishing} algorithm, uses every observation to maximize the number of transitions which are ensured {\em not to} have occurred. We show experimentally that the second algorithm gives much more accurate results than the first one, although it is also slower (but still fast enough).