0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

针对X-SSD体系结构的Villars器件的参考设计

SSDFans 来源:SSDFans 2023-05-29 09:15 次阅读

f0d48b64-fdb7-11ed-90ce-dac502259ad0.png背景 数据库复制是在事务(transaction)的更改提交到本地存储之前将其复制到辅助站点来执行。如果主数据库站点宕机,辅助站点可作为热备份。事务日志记录和日志传输是在数据管理系统中提供可恢复性和高可用性的标准技术。它们需要在每个事务中更新一个本地日志文件(写入存储)和一个远程站点(通过网络交换数据),这两者都是相对昂贵的操作。现代数据库已经利用了诸如持久性内存(PM)和支持RDMA的网络等技术来尽可能快地执行这些更新。 图1描述了一个典型的系统,使用PM和RDMA执行日志写入和交付。数据库系统负责协调几个不同的步骤,有时是针对本地PM,有时是通过启用RDMA的NIC的远程PM或内存,最后是快速SSD设备。例如,图1的流程为:(1)该数据库会将日志数据写入到PM中。(2)通过RDMA将数据传输到远端PM。(3)使用第二个RDMA操作来将日志所描述的更改转换到远端主机的内存中。(4a/b)两个主机都需要在PM上腾出空间,通过将其部分内容复制到SSD中来实现。 f11e4498-fdb7-11ed-90ce-dac502259ad0.png 图1 使用PM和RDMA执行日志记录和复制路径 问题 现有技术的组合存在几个缺点:缺乏可移植性、数据路径的复杂性和互操作性。具体包括: • RDMA和PM的相互作用很复杂且难以理解。例如,使用RDMA更新远端机器上的PM支持的地址可能会使更新可见,但不能保证该更新是持久的。如果机器崩溃,复制操作的正确性可能会受到影响。 • 虽然可以通过简单的load/store内存访问PM指令、编程正确、持久的数据结构是一项艰巨的工作。软件崩溃可以使结构处于任意状态,然后数据库需要从中恢复。 • 用于PM的每个DIMM插槽都不用于DRAM,这迫使系统设计人员在DRAM或PM容量之间进行选择。 • Optane和配有后备电池的DRAM需要特定的服务器支持,并且不能在没有某些特性的情况下跨服务器移植。特别是Optane在AMD平台上不受支持。 方法 为了解决这些问题,本文设计了一个新的存储体系结构X-SSD,实现数据库日志记录和复制从PM和快速网络中获益。通过将PM从CPU路径移到SSD中,并允许SSD代表数据库管理本地或远程对PM的访问。X-SSD包含基于PM和NAND闪存的本地联网存储。该体系结构提供了一个独立的、快速的数据路径和接口,完全专门用于事务日志写入,并提供了数据传播服务,包括跨服务器,可以在这些服务上构建数据库复制。图2显示了如何使用X-SSD设备来简化日志记录和复制数据路径。步骤顺序和传统系统相同,但X-SSD设备负责在步骤 (2) 和 (4a/b) 中传播数据,而远程内存的更新由远程数据库(3)完成。 f14b998e-fdb7-11ed-90ce-dac502259ad0.png 图2 使用X-SSD设备的日志记录和复制路径   X-SSD架构 图3为X-SSD的逻辑架构,该架构在同一设备中包含常规端和快速端。常规端是一个独立的以Flash为介质的SSD设备,而快速端是仅附加工作负载的高性能暂存区域,为PM设备。保存来自循环缓冲区上的字节寻址接口的数据,最终会将数据转移到常规端的指定循环缓冲区中(也可以选择对等X-SSD)。快速端由电容器提供支持,即使在突然断电的情况下也可以转移数据。因此,可以在到达常规端之前向应用程序确认快速端写入。 X-SSD的设计原理是让应用程序在两个IO配置文件之间进行选择,但使用单个设备并确保配置文件无缝集成。 f1889bae-fdb7-11ed-90ce-dac502259ad0.png 图3 X-SSD逻辑架构   X-SSD功能如下: 仅附加工作负载的字节寻址接口:X-SSD不仅仅提供传统的块接口,还提供了可字节寻址接口。块设备操作通常由块接口处理。字节级操作由基于CMB的接口处理。CMB接口由应用程序通过load和store指令访问的MMIO区域组成。某种形式的PM支持CMB领域。本文通过假设电池后备使其持久化,来评估SRAM和DRAM的可行性。 数据传播服务:快速端写入的语义与传统端不同。针对CMB的快速写入最终将按照发出的顺序降级到设备的常规端。降级发生时无需来自发出写入的应用程序的任何干预。快速端在概念上是应用程序写入的环。在后台,该设备不断地将数据从这个环移动到常规端。X-SSD设备的常规端还保留了一个环形的转储区域,但比快速端的要大得多。该快速写入也可以发送到配置为副本的Villars设备。本文评估使用 PCIe NTB 作为互连的远程连接,但其他网络技术(如RDMA)也是可能的。 崩溃一致性:后备电池允许设备完成对快速端上存在的任何数据的降级,来应对电源突然中断的情况。重新启动后,应用程序将在设备常规端看到崩溃期间传输中的数据。 记录状态监视器:X-SSD提供了一个控制接口,应用程序使用它来查询上述数据移动的进度。例如,应用程序可以检查给定的写入是否已持久保存在远程X-SSD设备上。 设备设置界面:一个额外的控制接口允许应用程序配置设备(例如,PM区域的大小或用于长期存储的常规侧的区域),并识别并连接到对等X-SSD设备。本文还讨论了如何支持允许X-SSD设备的多线程或多客户端使用X-SSD设备的高级设置。 Villars设备:X-SSD体系结构的参考设计 Villars是一个成熟的NVMe设备,是直接连接的PCIe SSD的标准。Villars设备可以从现代数据库中吸收事务日志工作负载,与直接操作数据库相比,它具有更简单的接口、可比较的延迟和更清晰的崩溃行为语义。 Villars设备大致由三个模块组成,如图4所示:CMB模块、Transport模块和Destage模块。 CMB模块是顶级模块,它处理应用程序所使用的字节可寻址接口。将CMB备份内存公开给数据库。 Transport模块负责连接到远程对等的Villars设备,并通过它们复制CMB写入流。 Destage模块连接Villars设备的两端,将CMB的PM后备存储器中的数据降级到传统端的 Flash。 f1aaf334-fdb7-11ed-90ce-dac502259ad0.png 图4:X-SSD物理架构   总结 X-SSD是针对事务日志工作负载而设计的SSD架构。快速端用于服务低延迟的字节可寻址请求,用于事务日志记录;常规端是一个传统的SSD块接口来服务常规工作负载。双方紧密集成,允许数据无缝地从快速端移动到常规端。此外,不同设备实例的快速端也可以进行通信,允许在X-SSD设备之间以低延迟远程发送日志工作负载。数据库可以使用这些数据传播特性来构建不同的事务日志记录和基于日志传送的复制方案。本文还介绍了一种针对X-SSD体系结构的Villars器件的参考设计。提供更简单的接口、可比较的延迟和更清晰的崩溃行为语义。

审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    7616

    浏览量

    148377
  • 监视器
    +关注

    关注

    0

    文章

    763

    浏览量

    32832
  • SSD
    SSD
    +关注

    关注

    20

    文章

    2684

    浏览量

    115418

原文标题:X-SSD:原生支持数据库日志记录和复制的存储系统

文章出处:【微信号:SSDFans,微信公众号:SSDFans】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ARM体系结构和编程

    本帖最后由 eehome 于 2013-1-5 09:47 编辑 ARM体系结构和编程
    发表于 12-04 03:35

    ARM嵌入式体系结构与接口技术.ARM SoC体系结构(中文版)

    ARM嵌入式体系结构与接口技术.pdf{:1:}{:1:}{:1:}ARM SoC体系结构(中文版).pd
    发表于 03-23 16:04

    ARM SoC体系结构

    介绍ARM 的片上系统体系结构
    发表于 03-31 23:03

    ARM SOC体系结构

    ARMSOC 体系结构
    发表于 11-22 10:54

    ARM体系结构是怎样的?

    ARM体系结构是怎样的?
    发表于 11-05 06:40

    Microarchitecture指令集体系结构

    第二章 ARM微处理器概述与编程模型ARM体系结构及其发展历史处理器的体系结构处理器微架构 Microarchitecture指令集体系结构 Architecture几种常见的指令集X
    发表于 12-14 07:13

    了解体系结构 - 介绍 Arm 体系结构

    。该体系结构为软件开发人员公开了一个通用的指令集和工作流程,也称为程序员模型。这有助于确保架构的不同实现之间的互操作性,以便软件可以在不同的 Arm 设备上运行。本指南为任何对此感兴趣的人介绍了 Arm
    发表于 08-01 14:35

    Armv9-A体系结构参考手册

    本增补件是Armv9-A体系结构的Arm®体系结构参考手册增补件轮廓本书介绍了Armv9-A体系结构扩展,因此必须与Arm®体系结构参考手册一起阅读A型架构。
    发表于 08-08 07:07

    ARMv8-M体系结构及其程序员模型简介

    Armv8体系结构有几个不同的配置文件。这些配置文件是体系结构的变体针对不同的市场和用例。Armv8-M体系结构就是其中之一配置文件。 Arm定义了三个
    发表于 08-08 06:18

    Arm的DRTM体系结构规范

    本规范定义了基于Arm A配置文件体系结构的处理器的动态测量信任根(DRTM)体系结构。本规范基于TCG D-RTM体系结构[4]的概念,但作为一个独立的独立文档发挥作用。它使用了TCG体系结
    发表于 08-08 07:45

    针对PLL体系结构的频率合成及规划,Frequency Sy

    针对PLL体系结构的频率合成及规划:In many applications, it is desired to generate a set of frequencies from
    发表于 08-17 09:52 8次下载

    ARM体系结构与编程

    ARM体系结构与编程
    发表于 02-11 09:35 160次下载
    ARM<b class='flag-5'>体系结构</b>与编程

    LTE体系结构

    LTE体系结构 LTE体系结构可以借助SAE 体系结构来做详细描述。在SAE 体系结构中,RNC部分功能、GGSN、SGSN 节点将被融合为一个新的节点,
    发表于 06-16 13:09 9579次阅读

    网络体系结构,什么是网络体系结构

    网络体系结构,什么是网络体系结构 通过通信信道和设备互连起来的多个不同地理位置的计算机系统,要使其能协同工作实现信息交换和资源共享
    发表于 04-06 16:30 1621次阅读

    基于DoDAF的卫星应用信息链体系结构

    针对侦察卫星应用信息链体系结构建模问题,提出了基于DoDAF (department of defense architect framework)的体系结构描述方法和基于ABM (activity
    发表于 01-10 16:58 1次下载