TreeSLS: A Whole-system Persistent Microkernel with Tree-structured State Checkpoint on NVM

文章目录

  • Terminology
  • Brief Introduction
    • Importance
    • Problem Area
    • Literature Review
    • This Paper
  • Reference

  • TreeSLS: A Whole-system Persistent Microkernel with Tree-structured State Checkpoint on NVM_第1张图片
  • 基本信息:
    • 上海交通大学IPADS(陈海波教授团队)出品
    • SOSP 2023最佳论文

Terminology

  • Whole System Persistence: 一种基于易失性内存(non-volatile memory)快速应用状态复原以及错误修正方案
    • “This can be implemented using single-level store(SLS) through periodic checkpointing of ephemeral state to persistant devices."
  • Single-Level Store(SLS)[1]
    • 是计算机存储领域的一个技术概念
    • 两层含义
        1. memory的页既可能存储在RAM中也可能保存在disk中
        1. 对进程而言,页所在的物理位置(physical location)并不重要面向虚拟内存编码
    • 去掉了文件的概念,同时保留持久化存储的能力——直接映射到程序的地址空间中
    • 在此框架下,整个计算机系统的存储可以被看作是一个简单的二维平面(segment, address in segment)
    • 发展
        1. 早期的single process machine:计算机为一个应用程序服务,应用程序可以申请使用完整的物理内存;在需要进行持久化数据的情况下,程序需要通过显示的文件系统操作来将数据写入到下级存储设备中(disk)
        1. 多任务设备需求:即出现了使用一台计算机同时运行多个应用程序的需求,在这种情况下,多个应用程序需要共享物理内存,这对内存申请以及使用带来了挑战
        1. Virtual Memory技术方案:该方案将内存划分为固定大小的page,每个应用程序面向的都是完整的virtual memory;一般来说,virtual memory的远大于真是的物理内存;通过OS的帮助,应用程序无视所有的下层调度细节;页调度问题,页缓存问题;应用程序还是需要显示地通过文件系统将数据持久化到disk中
        1. SLS:将memory的概念扩展到disk,即认为disk本身也是memory的一部分,数据持久化同样发生的memory中;在该架构下,文件系统的概念被移除;OS来进行数据持久化辅助的工作;该框架下,应用程序无需通过繁杂的文件系统操作来进行数据持久化工作;既有助于提升应用程序的运行效率,同时也有利于数据恢复以及系统容错
  • Microkernel[2]
    • 即精简化的内核,移除所有外围功能,仅保留最本质的服务以构成操作系统
    • 例如设备驱动、协议栈、文件系统等功能都将被移除操作系统内核,转而作为外围服务存在
    • TreeSLS: A Whole-system Persistent Microkernel with Tree-structured State Checkpoint on NVM_第2张图片
  • Non-volatile Memory(NVM)[3]
    • 即与易失性内存相对应的,即使断电后依然能够支持数据持久化的计算机内存
    • 常见的NVM:flash memory,SSD,ROM,FRAM,RRAM等

Brief Introduction

Importance

  • SLS是一种新型的计算机存储架构设计,对于缓解甚至解决应用程序在使用传统的,复杂易错的存储系统时容易出现的错误以及效率低下等问题具有重要意义

Problem Area

  • SLS的high performance overhead以及external synchrony问题

Literature Review

  • 由于SLS隐藏了runtime memory与storage之间的差别(主要是在访问速度以及访问粒度上的差别(byte, block),这反而可能增大数据写入的消耗以及产生数据丢失(这与存档频率高度相关checkpoint frequency)等问题
  • 同步问题:原来很多应用程序通过显示的持久化操作来进行同步操作,虽然SLS提供了多种该框架下的数据同步机制,为在SLS框架运行,应用程序仍然需要显示地对程序进行修改
  • NVM的出现提供了可能的解决方案:速度快,具备非易失特性
    • “Unfortunately, even with a single-level storage device, implementing an efficient SLS still faces challenges since running on persistent memory does not make the whole system persistent naturally.”
  • Intel的eADR[4]方案虽然提出了一种Cache-Memory的同步机制,但存储在register中的数据仍然会因为断电等原因丢失
  • Checkpointing技术方案:周期性的保存系统状态
    • 传统的checkpointing技术通过在内存中进行状态缓存并最终持久化到disk中来实现
    • 对于NVM来说,由于起本身囊括了disk功能,因此更有助于checkpointing技术方案的实现
  • external synchrony在现代应用中非常留下,如何不为应用程序所感知的提供该服务非常重要(否则应用程序需要更具SLS架构进行重新编码),及transparent external synchrony

This Paper

  • TreeSLS:一个(SLS架构下的、基于NVM的、具有全系统持久化能力的)微内核
    • TreeLS将整个系统状态组织在一个功能树(capability tree)中,以实现高效的增量状态检查点
      • 该capability tree提供了在NVM上进行的checkpoint能力——减少了stop-the-world的时间
      • 超高频率checkpointng(每毫秒一次)
    • 设计了一种in-kernel的错误恢复管理器,以管理NVM的使用
      • 管理器本身通过日志来防止自身出错
    • hybird copy
      • 功能:跟踪热点页;执行cross-DRAM/NVM迁移;预页拷贝(speculative page copy)
      • 作用:减少由页错误带来的以及内存拷贝的时间消耗
    • application-transparent external synchrony
      • 将external synchrony交给系统服务来完成——降低了应用程序本身的编码复杂度
    • 两个视角view
      • runtime view::运行时视角——用于支持程序运行
      • consistent view:一致性视角——防止断电等以外错误的发生
  • Evaluation
    • 实验一
      • 实验对象:多个常用应用服务
      • 实验目标:TreeSLS能够在多种场景下提供毫秒级的checkpointing
    • 实验二
      • 实验对象:内存服务组件(Redis、Memcached)
      • 实验目标:现实应用能够从TreeSLS的持久化模型以及高效的checkpointing服务中收益
  • 源码:https://ipads.se.sjtu.edu.cn/projects/treesls.html

Reference

  • [1] https://en.wikipedia.org/wiki/Single-level_store
  • [2] https://en.wikipedia.org/wiki/Microkernel
  • [3] https://en.wikipedia.org/wiki/Non-volatile_memory
  • [4] 2021. eADR: New Opportunities for Persistent Memory Applications. https://www.intel.com/content/www/us/en/developer/ articles/technical/eadr-new-opportunities-for-persistent-memoryapplications.html

你可能感兴趣的:(论文解读与学习,论文阅读,SLS,microkernel,NVM,SOSP)