Skip to main content
QUICK REVIEW

[论文解读] Enabling Failure-resilient Intermittent Systems Without Runtime Checkpointing

Wei-Ming Chen, Tei-Wei-Kuo|arXiv (Cornell University)|Oct 11, 2019
Parallel Computing and Optimization Techniques参考文献 29被引用 4
一句话总结

本文提出了一种针对间歇性嵌入式系统的容错设计,可在无需运行时检查点或系统挂起的情况下实现即时恢复和一致的进度累积。通过利用非易失性内存中的持久化数据版本以及可重执行未完成任务的恢复处理程序,该方法相比基于检查点的方法,最高可提升43%的前向进度,并将恢复时间减少至少90%。

ABSTRACT

Self-powered intermittent systems typically adopt runtime checkpointing as a means to accumulate computation progress across power cycles and recover system status from power failures. However, existing approaches based on the checkpointing paradigm normally require system suspension and/or logging at runtime. This paper presents a design which overcomes the drawbacks of checkpointing-based approaches, to enable failure-resilient intermittent systems. Our design allows accumulative execution and instant system recovery under frequent power failures while enforcing the serializability of concurrent task execution to improve computation progress and ensuring data consistency without system suspension during runtime, by leveraging the characteristics of data accessed in hybrid memory. We integrated the design into FreeRTOS running on a Texas Instruments device. Experimental results show that our design can still accumulate progress when the power source is too weak for checkpointing-based approaches to make progress, and improves the computation progress by up to 43% under a relatively strong power source, while reducing the recovery time by at least 90%.

研究动机与目标

  • 解决间歇性、能量采集系统中频繁检查点导致的高运行时开销和性能下降问题。
  • 在运行时消除系统挂起的同时,确保断电情况下的数据一致性。
  • 在电源不稳定条件下,实现自供电设备的连续进度累积。
  • 通过在非易失性内存中维护持久的任务状态和数据版本,实现系统的即时恢复。
  • 在不依赖运行时检查点的前提下,支持并发任务执行,并保证可串行化和正确性。

提出的方法

  • 数据管理器控制数据访问,以确保可串行化,并原子性地将易失性内存中的修改数据副本提交到非易失性内存中的持久化版本。
  • 非易失性内存中的恢复处理程序维护任务属性和状态信息,使系统在断电恢复后能即时重新启动未完成的任务。
  • 长时间任务被分配到非易失性内存中,以保留上下文,并在故障后立即恢复执行。
  • 通过扩展FreeRTOS的内存管理和任务调度器,将系统与FreeRTOS集成,以支持持久化数据和恢复逻辑。
  • 通过以序列化、原子化方式仅提交已完成任务的修改,来维护数据一致性。
  • 通过避免检查点机制,彻底消除运行时挂起;相反,通过从最后一致状态重新执行未完成任务来恢复进度。

实验结果

研究问题

  • RQ1能否在无需运行时检查点或系统挂起的情况下,实现容错间歇性系统的稳定进度累积?
  • RQ2当易失性内存丢失时,如何确保跨电源周期的数据一致性?
  • RQ3在频繁断电条件下,能否在1毫秒内完成系统恢复,同时保持前向进度?
  • RQ4与检查点机制相比,消除检查点开销在计算进度和恢复时间方面能带来多大性能提升?
  • RQ5该设计在不同断电频率和任务长度下的可扩展性如何?

主要发现

  • 在相对较强的电源条件下,与系统级检查点和日志记录方法相比,所提出的设计可将前向进度最高提升43%。
  • 恢复时间缩短至0.6毫秒,相比基于检查点的方法(恢复时间分别为7.6毫秒和7毫秒)至少减少90%。
  • 运行时挂起被完全消除,因为系统在执行过程中不再需要检查点或日志记录。
  • 由于减少了数据状态的回滚,恢复后的数据新鲜度显著提高,尤其在检查点周期较长时更为明显。
  • 该设计在不修改编程模型或应用代码的前提下,保持了并发任务执行下的数据一致性和可串行化。
  • 在德州仪器设备上运行于FreeRTOS的原型实现,验证了该方法在真实间歇性计算场景中的有效性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。