Field monitoring techniques can collect data about the behavior of software applications while running in the field, with real users and real data. Developers can exploit the information extracted from the field to timely improve, tune, and fix their systems, anticipating feedback by users. It is, however, challenging to extract a relevant amount of information from field executions without introducing significant overhead. This paper addresses this challenge by studying how to inexpensively trace data in-memory while postponing save operations to idle time, so that the operations requested by users are exposed to a negligible overhead only. In particular, this paper presents delayed saving, a technique that efficiently traces references to objects, opportunistically saving information only when the monitored application is not serving any user request. Storing references and postponing save operations may introduce inaccuracy in the collected data, that is, a lately saved object might be in a different state compared to the state of the object at the time it was traced. Our evaluation shows that the level of inaccuracy introduced by delayed saving is limited compared to its efficiency and low intrusiveness.
Field Monitoring with Delayed Saving
Briola D.;Mariani L.
2019-01-01
Abstract
Field monitoring techniques can collect data about the behavior of software applications while running in the field, with real users and real data. Developers can exploit the information extracted from the field to timely improve, tune, and fix their systems, anticipating feedback by users. It is, however, challenging to extract a relevant amount of information from field executions without introducing significant overhead. This paper addresses this challenge by studying how to inexpensively trace data in-memory while postponing save operations to idle time, so that the operations requested by users are exposed to a negligible overhead only. In particular, this paper presents delayed saving, a technique that efficiently traces references to objects, opportunistically saving information only when the monitored application is not serving any user request. Storing references and postponing save operations may introduce inaccuracy in the collected data, that is, a lately saved object might be in a different state compared to the state of the object at the time it was traced. Our evaluation shows that the level of inaccuracy introduced by delayed saving is limited compared to its efficiency and low intrusiveness.I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.