Reactive software calls for instrumentation methods that uphold the reactive attributes of systems. Runtime verification imposes another demand on the instrumentation, namely that the trace event sequences it reports to monitors are sound -- that is, they reflect actual executions of the system under scrutiny. This paper presents RIARC, a novel decentralised instrumentation algorithm for outline monitors meeting these two demands. The asynchronous setting of reactive software complicates the instrumentation due to potential trace event loss or reordering. RIARC overcomes these challenges using a next-hop IP routing approach to rearrange and report events soundly to monitors. RIARC is validated in two ways. We subject its corresponding implementation to rigorous systematic testing to confirm its correctness. In addition, we assess this implementation via extensive empirical experiments, subjecting it to large realistic workloads to ascertain its reactiveness. Our results show that RIARC optimises its memory and scheduler usage to maintain latency feasible for soft real-time applications. We also compare RIARC to inline and centralised monitoring, revealing that it induces comparable latency to inline monitoring in moderate concurrency settings, where software performs long-running, computationally-intensive tasks, such as in Big Data stream processing.
翻译:反应式软件需要能够维护系统反应式属性的监测方法。运行时验证对监测工具提出了另一项要求,即其向监控器报告的轨迹事件序列必须是可靠的——也就是说,这些序列应准确反映被监测系统的实际执行情况。本文提出RIARC,一种满足这两项要求的新型分布式轮廓监控监测算法。反应式软件的异步环境因潜在的轨迹事件丢失或重排序问题而使监测变得复杂。RIARC采用下一跳IP路由方法克服这些挑战,将事件可靠地重组并报告给监控器。RIARC通过两种方式得到验证:我们对其对应实现进行严格的系统化测试以确认其正确性;同时通过大量实证实验评估该实现,使其承受大规模实际工作负载以确定其反应性。结果表明,RIARC通过优化内存和调度器使用,将延迟维持在适用于软实时应用的水平。与内联和集中式监控的对比显示,在中等并发环境下(例如大数据流处理等执行长时间计算密集型任务的场景),RIARC产生的延迟与内联监控相当。