Efficient Large-scale Trace Checking Using MapReduce
This work addresses a memory bottleneck in large-scale trace checking for applications like system monitoring, though it is incremental as it builds on prior distributed methods.
The authors tackled the memory scalability issue in checking event traces against Metric Temporal Logic (MTL) specifications by proposing a new lazy semantics, which enables bounded time intervals and reduces memory usage. They extended a previous distributed algorithm and evaluated it, showing improvements in memory scalability and time/memory tradeoffs.
The problem of checking a logged event trace against a temporal logic specification arises in many practical cases. Unfortunately, known algorithms for an expressive logic like MTL (Metric Temporal Logic) do not scale with respect to two crucial dimensions: the length of the trace and the size of the time interval for which logged events must be buffered to check satisfaction of the specification. The former issue can be addressed by distributed and parallel trace checking algorithms that can take advantage of modern cloud computing and programming frameworks like MapReduce. Still, the latter issue remains open with current state-of-the-art approaches. In this paper we address this memory scalability issue by proposing a new semantics for MTL, called lazy semantics. This semantics can evaluate temporal formulae and boolean combinations of temporal-only formulae at any arbitrary time instant. We prove that lazy semantics is more expressive than standard point-based semantics and that it can be used as a basis for a correct parametric decomposition of any MTL formula into an equivalent one with smaller, bounded time intervals. We use lazy semantics to extend our previous distributed trace checking algorithm for MTL. We evaluate the proposed algorithm in terms of memory scalability and time/memory tradeoffs.