CN111858623A - 使用异构命名空间优化数据库性能 - Google Patents

使用异构命名空间优化数据库性能 Download PDF

Info

Publication number
CN111858623A
CN111858623A CN201910381151.9A CN201910381151A CN111858623A CN 111858623 A CN111858623 A CN 111858623A CN 201910381151 A CN201910381151 A CN 201910381151A CN 111858623 A CN111858623 A CN 111858623A
Authority
CN
China
Prior art keywords
storage device
data
double
write cache
database
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910381151.9A
Other languages
English (en)
Inventor
袁戎
朱磊
吴凤鸣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Memblaze Technology Co Ltd
Original Assignee
Beijing Memblaze Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Memblaze Technology Co Ltd filed Critical Beijing Memblaze Technology Co Ltd
Publication of CN111858623A publication Critical patent/CN111858623A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

提供了使用异构命名空间优化数据库性能的存储设备及其方法。所公开的存储设备,包括可被耦合到所述存储设备的主机分别访问的第一逻辑存储设备与第二逻辑存储设备,其中第一逻辑存储设备处理写命令的性能高于第二逻辑存储设备。

Description

使用异构命名空间优化数据库性能
技术领域
本申请涉及存储技术,尤其涉及使用具有异构命名空间的存储设备优化数据库性能。
背景技术
图1展示了存储设备的框图。存储设备100同主机相耦合,用于为主机提供存储能力。主机同存储设备100之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA(Serial Advanced Technology Attachment,串行高级技术附件)、SCSI(Small ComputerSystem Interface,小型计算机***接口)、SAS(Serial Attached SCSI,串行连接SCSI)、IDE(Integrated Drive Electronics,集成驱动器电子)、USB(Universal Serial Bus,通用串行总线)、PCIE(Peripheral Component Interconnect Express,PCIe,高速***组件互联)、NVMe(NVM Express,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与存储设备100。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备100包括接口110、控制部件120、一个或多个NVM芯片130以及DRAM(DynamicRandom Access Memory,动态随机访问存储器)140。
NAND闪存、相变存储器、FeRAM(Ferroelectric RAM,铁电存储器)、MRAM(MagneticRandom Access Memory,磁阻存储器)、RRAM(Resistive Random Access Memory,阻变存储器)等是常见的NVM。
接口110可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方式与主机交换数据。
控制部件120用于控制在接口110、NVM芯片130以及DRAM 140之间的数据传输,还用于存储管理、主机逻辑地址到NVM芯片的物理地址映射、擦除均衡、坏块管理等。控制部件120可通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件120可以是FPGA(Field-programmable gate array,现场可编程门阵列)、ASIC(Application SpecificIntegrated Circuit,应用专用集成电路)或者其组合的形式。控制部件120也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件120的硬件来处理IO(Input/Output)命令。控制部件120还可以耦合到DRAM 140,并可访问DRAM 140的数据。在DRAM存储FTL表和/或缓存的IO命令的数据。
控制部件120包括闪存接口控制器(或称为介质接口、介质接口控制器、闪存通道控制器),闪存接口控制器耦合到NVM芯片130,并以遵循NVM芯片130的接口协议的方式向NVM芯片130发出命令,以操作NVM芯片130,并接收从NVM芯片130输出的命令执行结果。已知的NVM芯片接口协议包括“Toggle”、“ONFI”等。
存储器目标(Target)是NAND闪存封装内的共享芯片使能(CE,Chip Enable)信号的一个或多个逻辑单元(LUN,Logic UNit)。NAND闪存封装内包括一个或多个管芯(Die)。典型地,逻辑单元对应于单一的管芯。逻辑单元可包括多个平面(Plane)。逻辑单元内的多个平面可以并行存取,而NAND闪存芯片内的多个逻辑单元可以彼此独立地执行命令和报告状态。在可从http://www.micron.com/~/media/Documents/Products/Other%20Documents/ONFI3_0Gold.ashx获得的“Open NAND Flash Interface Specification(Revision 3.0)”中,提供了关于目标(target)、逻辑单元(LUN)、平面(Plane)的含义,其为现有技术的一部分。
NVM存储介质上通常按页来存储和读取数据。而按块来擦除数据。NVM存储介质上的块(也称物理块)包含多个页。存储介质上的页(称为物理页)具有固定的尺寸,例如17664字节。物理页也可以具有其他的尺寸。
在存储设备中,利用FTL(Flash Translation Layer,闪存转换层)来维护从逻辑地址到物理地址的映射信息。逻辑地址构成了操作***等上层软件所感知到的存储设备的存储空间。物理地址是用于访问固态存储设备的物理存储单元的地址。在现有技术中还可利用中间地址形态实施地址映射。例如将逻辑地址映射为中间地址,进而将中间地址进一步映射为物理地址。可选地,访问存储设备的主机提供FTL。
存储了从逻辑地址到物理地址的映射信息的表结构被称为FTL表。通常FTL表的数据项记录了存储设备中以数据页为单位的地址映射关系。
一些存储设备向操作***等上层软件暴露物理地址空间,例如,开放通道固态存储设备(Open-Channel Solid State Drives),在http://lightnvm.io/docs/OCSSD-2_0-20180129.pdf可获得《开放通道固态存储设备规范(Open-Channel Solid StateDrivesSpecification)》,将其全文通过引用合并于此。开放通道固态存储设备规范在NVMe协议基础上提供了扩展。根据开放通道固态存储设备规范,主机使用物理地址访问存储设备,存储设备向主机提供的存储地址空间是由物理地址构成的地址空间。
数据库使用存储设备存储其管理的数据。通常存储设备的性能劣于运行数据库软件的主机内存。为获得更好的性能,数据库通常在内存中维护缓存,数据被写入内存以获得高性能,而将缓存的数据写入存储设备,以获得非易失的能力。
然而,一些情况下,内存中的缓存的页大小,不同于存储设备提供的IO命令的存储单元大小。例如,内存中的缓存页大小为例如4KB、8KB或16KB,而访问存储设备的IO命令所操作的最小存储单元的大小为例如512B、4KB或其他尺寸。在此情况下,为将缓存页写入存储设备,主机驱动程序或数据库,可能为将单一缓存页写入存储设备而生成多个IO命令。维护多个IO命令的原子性对存储设备而言是困难的,存储设备能确保单一IO命令的原子性(IO命令在所访问的完整地址空间上要么都生效,要么都不生效),而通常不保证多个IO作为整体的原子性。从而,数据库将单一缓存页写入存储设备时可能存在部分页写(PartialPageWrite)问题,即缓存页的部分内容被非易失地记录在存储设备中,而另一部分没有记录在存储设备中。这将导致数据库的错误。
一些数据库(例如,MySQL数据库)额外地在例如主机内存中维护双写缓存(DoubleWrite Buffer)。图2展示了数据库使用双写缓存的示意图。
数据库在运行数据库的主机内存中维护页缓存与双写缓存。页缓存的访问单元为缓存页,数据库要存储的数据被写入缓存页以提高性能。作为举例,双写缓存具有较大的页尺寸,例如1MB。运行数据库的主机耦合到存储设备。
为将缓存页的数据写入存储设备,数据库先将缓存页的数据复制到双写缓存(图2中,由(1)指示),再将双写缓存的数据非易失地写入存储设备上的双写缓存文件(例如,MySQL数据库管理的ibdata1文件)(图2中,由(2)指示),再将双写缓存的数据非易失地写入存储设备上的数据文件(例如,MySQL数据库管理的*.idb文件)(图2中,由(3)指示)。双写缓存文件中按双写缓存的结构组织数据,从而双写缓存中的数据被顺序写入双写缓存文件。数据文件中按数据库的数据表结构组织数据,从而写入数据文件的数据难以呈现顺序性。在将双写缓存的数据写入数据文件后,数据库提交同被写入数据相关的数据库更新操作。此时,即使在数据文件中的数据由于原子性问题而损坏,数据库也能从双写缓存文件中恢复正确的数据。
可以理解地,双写缓存文件与数据文件可由单一文件或更多文件提供。文件中的不同区域或结构存储数据库的不同数据。
一些情况下,数据库的多个实例共享双写缓存文件,从而双写缓存文件的不同区域被分配给不同的数据库实例。在此情况下,写入双写缓存文件的数据也呈现随机性。
发明内容
然而使用双写缓存的代价是增加了写入存储设备的数据量。通常存储设备的非易失存储介质能承载的数据写入量是有限的,并同存储设备的使用寿命直接相关。双写缓存文件的数据仅在数据库的错误恢复时被使用,因而其中大量的数据并不会被使用。
而且,向双写缓存文件写入数据也导致数据库事务处理的延迟增加,并影响数据库的性能。
根据本申请的实施例的存储设备提供高性能的存储装置以加快向双写缓存文件写入数据的过程,从而提供数据库在存储设备上的性能。根据本申请的实施例,还能降低写入存储设备的非易失存储介质的数据量,从而提升存储设备的使用寿命。
根据本申请的第一方面,提供了根据本申请第一方面的第一存储设备,包括可被耦合到所述存储设备的主机分别访问的第一逻辑存储设备与第二逻辑存储设备,其中第一逻辑存储设备处理写命令的性能高于第二逻辑存储设备。
根据本申请第一方面的第一存储设备,提供了根据本申请第一方面的第二存储设备,其中在所述存储设备正常工作状态下,被写入第一逻辑存储设备的数据,被存储在易失性存储介质中,并且不被写入非易失存储介质;被写入第二逻辑存储设备的数据,被存储在非易失存储介质中。
根据本申请第一方面的第二存储设备,提供了根据本申请第一方面的第三存储设备,其中响应于所述存储设备掉电或被指示,将存储在易失性存储介质中的被写入第一逻辑存储设备的数据,写入到非易失存储介质中。
根据本申请第一方面的第一至第三存储设备之一,提供了根据本申请第一方面的第四存储设备,其中所述第一逻辑存储设备的存储空间大小小于所述第二逻辑存储设备。
根据本申请第一方面的第一至第四存储设备之一,提供了根据本申请第一方面的第五存储设备,其中所述第一逻辑存储设备的存储空间大小用于容纳数据库的双写缓存文件,所述第二逻辑存储设备的存储空间大小用于容纳数据库的数据文件。
根据本申请第一方面的第一至第五存储设备之一,提供了根据本申请第一方面的第六存储设备,其中逻辑存储设备是命名空间。
根据本申请第一方面的第一至第六存储设备之一,提供了根据本申请第一方面的第七存储设备,其中第一逻辑存储设备采用同第二逻辑存储设备的地址映射机制不同的地址映射机制将第一逻辑地址设备的地址空间映射到存储介质。
根据本申请的第二方面,提供了根据本申请第二方面的第一将数据库的更新数据写入存储设备的方法,包括:将更新数据写入双写缓存;将双写缓存中的更新数据写入存储在第一逻辑存储设备的双写缓存文件;
以及双写缓存中的更新数据写入存储在第二逻辑存储设备的数据文件。
根据本申请第二方面的第一将数据库的更新数据写入存储设备的方法,提供了根据本申请第二方面的第二将数据库的更新数据写入存储设备的方法,其中在所述存储设备正常工作状态下,被写入第一逻辑存储设备的数据,被存储在易失性存储介质中,并且不被写入非易失存储介质;被写入第二逻辑存储设备的数据,被存储在非易失存储介质中。
根据本申请第二方面的第二将数据库的更新数据写入存储设备的方法,提供了根据本申请第三方面的第三将数据库的更新数据写入存储设备的方法,其中响应于所述存储设备掉电或被指示,所述存储设备将存储在易失性存储介质中的被写入第一逻辑存储设备的数据,写入到非易失存储介质中。
根据本申请第二方面的第一至第三将数据库的更新数据写入存储设备的方法之一,提供了根据本申请第二方面的第四将数据库的更新数据写入存储设备的方法,其中所述第一逻辑存储设备的存储空间大小小于所述第二逻辑存储设备。
根据本申请第二方面的第一至第四将数据库的更新数据写入存储设备的方法之一,提供了根据本申请第二方面的第五将数据库的更新数据写入存储设备的方法,其中所述第一逻辑存储设备的存储空间大小用于容纳数据库的双写缓存文件,所述第二逻辑存储设备的存储空间大小用于容纳数据库的数据文件。
根据本申请第二方面的第一至第五将数据库的更新数据写入存储设备的方法之一,提供了根据本申请第二方面的第六将数据库的更新数据写入存储设备的方法,其中逻辑存储设备是命名空间。
根据本申请第二方面的第一至第五将数据库的更新数据写入存储设备的方法之一,提供了根据本申请第二方面的第七将数据库的更新数据写入存储设备的方法,其中第一逻辑存储设备是NVRAM,第二逻辑存储设备是块设备。
根据本申请第二方面的第一至第七将数据库的更新数据写入存储设备的方法之一,提供了根据本申请第二方面的第八将数据库的更新数据写入存储设备的方法,其中第一逻辑存储设备采用同第二逻辑存储设备的地址映射机制不同的地址映射机制将第一逻辑地址设备的地址空间映射到存储介质。
根据本申请第二方面的第一至第八将数据库的更新数据写入存储设备的方法之一,提供了根据本申请第二方面的第九将数据库的更新数据写入存储设备的方法,还包括:将数据库的双写缓存文件设置为存储在第一逻辑存储设备提供的存储空间。
根据本申请第二方面的第九将数据库的更新数据写入存储设备的方法,提供了根据本申请第二方面的第十将数据库的更新数据写入存储设备的方法,还包括:将数据库的数据文件设置为存储在第二逻辑存储设备提供的存储空间。
根据本申请第二方面的第一至第十将数据库的更新数据写入存储设备的方法之一,提供了根据本申请第二方面的第十一将数据库的更新数据写入存储设备的方法,其中第一逻辑存储设备处理写命令的性能高于第二逻辑存储设备。
根据本申请第二方面的第一至第十一将数据库的更新数据写入存储设备的方法之一,提供了根据本申请第二方面的第十二将数据库的更新数据写入存储设备的方法,还包括:响应于写入所述数据文件的数据被破坏,从所述双写缓存文件获取数据以恢复被破坏的数据。
根据本申请的第三方面,提供了根据本申请第三方面的将数据库的更新数据写入存储设备的***,包括:用于将更新数据写入双写缓存的装置;用于将双写缓存中的更新数据写入存储在第一逻辑存储设备的双写缓存文件的装置;以及用于将双写缓存中的更新数据写入存储在第二逻辑存储设备的数据文件的装置。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域技术人员来讲,还可以根据这些附图获得其他的附图。
图1为存储设备的框图;
图2展示了数据库使用双写缓存的示意图;
图3是根据本申请实施例优化数据库双写缓存操作的示意图;
图4A与图4B展示了根据本申请实施例的主机与存储设备的示意图;
图5展示了根据本申请实施例的数据库更新数据的流程图;
图6展示了根据本申请又一实施例的主机与存储设备的示意图;以及
图7展示了根据本申请再一实施例的主机与存储设备的示意图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图3是根据本申请实施例优化数据库双写缓存操作的示意图。
根据本申请的实施例,耦合到运行数据库的主机的存储设备,提供至少两个逻辑存储设备,例如双写缓存存储装置与块设备存储装置。作为举例,双写缓存存储装置的性能,特别是处理写命令的性能,优于块设备存储装置。块设备存储装置,是例如遵循NVMe协议、OCSSD协议、SATA协议等的物理存储设备或虚拟存储设备(例如,遵循NVMe协议的命令空间(NameSpace,NS)),双写缓存存储装置,是例如遵循NVMe协议提供的CMB(ControllerMemoryBuffer,控制器内存缓冲区)、遵循NVMe协议提供的命名空间(NameSpace,NS)或PCIe设备提供的内存空间,还可以是由例如高性能非易失存储介质(例如,相变存储器、MRAM、FeRAM、RRAM、DRAM、SRAM等)提供的存储空间。
虽然图3中展示了由单一的存储设备提供双写缓存存储装置与块设备存储装置二者,可选地,使用两个存储设备分别提供双写缓存存储装置与块设备存储装置。
主机按块设备管理并操作块设备存储装置。主机按块设备或内存操作双写缓存存储装置。
数据库在主机内存中维护两种或多种缓存,例如,页缓存与双写缓存,将页缓存的存储单元称为缓存页,将双写缓存的缓存单元称为双写缓存页。
根据本申请的实施例,用于承载双写缓存页的数据的双写缓存文件被存储在双写缓存存储装置,而数据库的数据文件被存储在块设备存储装置。作为举例,双写缓存存储装置被挂载到操作***的第一分区,而块设备存储装置被挂载到操作***的第二分区,以及在第一分区创建双写缓存文件,在第二分区创建数据库的数据文件。从而无须修改数据库和/或主机的驱动程序,仅通过配置数据库的各文件(双写缓存文件与数据文件)就能使用根据本申请实施例的存储装置、实施根据本申请实施例的方法并获得高的数据库操作性能。
数据库要非易失存储的数据被写入页缓存的一个或多个缓存页。为将缓存页的数据写入存储设备,数据库先将缓存页的数据复制到双写缓存(图3中,由(1)指示),再将双写缓存的数据写入双写缓存存储装置上的双写缓存文件(图3中,由(2)指示),再将双写缓存的数据非易失地写入块设备存储装置上的数据文件(图3中,由(3)指示)。
由于双写缓存存储装置具有更高的性能或写性能,从而在将双写缓存的数据非易失地写入双写缓存存储装置上的双写缓存文件(图3中,由(2)指示)过程中,需要的延迟时间较低,从而降低了双写缓存对数据库操作的影响。
可选地,将双写缓存的数据写入双写缓存存储装置上的双写缓存文件(图3中,由(2)指示),与将双写缓存的数据写入块设备存储装置上的数据文件(图3中,由(3)指示)的操作可并发进行。数据库在识别出双写缓存的数据写入双写缓存存储装置上的双写缓存文件(图3中,由(2)指示)的操作完成后,才响应将双写缓存的数据写入块设备存储装置上的数据文件(图3中,由(3)指示)的操作完成并进行后续处理(例如,提交事务)。
可选地或进一步地,双写缓存存储装置具有较小的容量,例如同主机内存中的双写缓存相同或略大的尺寸。双写缓存文件被用作主机内存中的双写缓存的非易失的副本,数据库对双写缓存文件的存储空间覆盖写入,从而双写缓存存储装置的尺寸仅需容纳双写缓存文件。
由于双写缓存存储装置的容量较小,例如,1MB-10MB,从而即使使用昂贵的非易失存储介质(例如,DRAM、相变存储器、FeRAM、MRAM、RRAM)来提供双写缓存存储装置,也不会显著增加存储设备的成本。
在一个例子中,由DRAM提供双写缓存存储装置,以获得相对于例如闪存更高的性能。虽然,数据库认为,双写缓存文件是非易失的,但根据本申请的一种实施方式,存储设备正常工作时,写入由DRAM提供的双写缓存存储装置上存储的双写缓存文件的数据仅存储在DRAM中,而不将提供双写缓存装置的DRAM中的数据刷写到例如闪存的非易失存储介质。在数据库看来,数据被写入了双写缓存文件,并且能从双写缓存文件中读出,从而双写缓存文件工作正常。由于不将提供双写缓存存储装置的DRAM中的数据刷写到非易失存储介质,双写缓存存储装置得以获得更高的写性能,其复杂度也更低,从而降低了提供双写缓存存储装置的成本。
以及由于在大多数情况下不将提供双写缓存存储装置的DRAM中的数据刷写到非易失存储介质,减少了向非易失存储装置写入的数据量,进而提升了存储设备的寿命。写入双写缓存文件的数据量大体占数据库写入存储设备的数据量的40%,从而根据本申请的实施,实现了数据库写入存储设备的数据量减少40%,相应地,数据库更新操作的延迟缩短近40%,而存储设备的寿命提升近40%。
当存储掉电,DRAM中存储的数据会丢失。根据本申请的实施例,响应于掉电,存储设备将DRAM中存储的双写缓存存储装置的数据写入诸如NAND闪存的非易失存储介质。以及在存储设备后续上电后,从非易失存储介质中恢复存储在双写缓存存储装置的数据,并将这部分数据存储在DRAM,以响应数据库的访问请求。可选地,存储设备还包括备用电源,用于在掉电后为存储设备提供电力,以在掉电后将DRAM中存储的双写缓存存储装置的数据写入非易失存储介质。在一种实施方式中,仅响应于掉电而将DRAM中存储的双写缓存存储装置的数据写入非易失存储介质,而在存储设备被正常供电时,不将DRAM中存储的双写缓存存储装置的数据写入诸如易失存储介质。
在又一种实施方式中,存储设备包括NVRAM(Non-VolatileRAM,非易失内存),并用NVRAM提供双写缓存存储装置。双写缓存存储装置存储的双写缓存文件被存储在NVRAM中。
从而即使在将数据写入块设备存储装置上的数据文件的过程中发生掉电等意外书简,并导致数据文件中的数据被破坏(例如,同页缓存中的数据不一致),数据库可从双写缓存文件中恢复正确的数据。
图4A与图4B展示了根据本申请实施例的主机与存储设备的示意图。
参看图4A,例如主机的文件***向运行在主机中的数据库展示一个或多个ibdata1文件与*.idb文件。主机的驱动程序向数据库或其他应用展示块设备与内存设备(可选地,内存设备被展示为RAMDisk(内存盘,使用内存的块设备))。*.idb文件被存储在块设备提供的存储空间,而ibdata1文件被存储在内存设备提供的存储空间。从而ibdata1文件同*.idb文件相比,有更好的IO性能。
存储设备通过接口耦合到主机。存储设备向主机展示出例如NVMe存储设备与NVRAM设备。作为举例,NVRAM存储设备是根据申请号为2018100940602、发明名称为“非易失随机访问存储器及其提供方法”的中国专利申请提供的,将该中国专利申请的全文通过引用合并于此。依然作为举例,NVMe存储设备响应从接口获得的NVMe命令,而NVRAM设备响应从接口获得的访问设备的指定内存空间的命令。
图4B是根据本申请又实施例的主机与存储设备的示意图。
主机的文件***向运行在主机中的数据库展示一个或多个ibdata1文件与*.idb文件。存储设备包括两个或更多个命名空间。命名空间是例如NVMe规范定义的命名空间(逻辑存储设备)。命名空间0-命名空间31的一个或多个,被主机的驱动程序展示了块设备0,并为存储*.idb文件提供存储空间(例如,展示为文件***分区)。
根据图4B的存储设备还提供特殊命名空间(记为NSV),该特殊命名空间具有比命名空间0-命名空间31更高的性能。特殊命名空间被主机的驱动程序展示为块设备V,并为存储ibdata1提供存储空间(例如,展示为文件***分区)。
根据图4B的实施例,命名空间(NS(0-31))与命名空间(NSV)都是块设备,从而文件***以相同或基本项目的方式使用块设备0与块设备V。
主机通过接口耦合存储设备。主机以例如遵循NVMe协议的NVMe命令访问存储设备的命名空间(NS(0-31))与命名空间(NSV)。
在一个例子中,存储设备使用NVRAM设备处理访问命名空间(NSV)的IO命令。作为又一个例子,存储设备使用块存储设备处理访问命名空间(NSV)的IO命令。由例如高性能非易失存储介质(例如,相变存储器、MRAM、FeRAM、RRAM、DRAM、SRAM等)提供的存储空间来实现NVRAM或块存储设备。可选地,存储设备为命名空间(NSV)提供专用的地址映射机制。例如,将命名空间(NSV)的存储空间直接映射到高性能非易失存储介质,或者通过专用的FTL表将命名空间(NSV)的存储空间直接映射到高性能非易失存储介质。
在又一个例子中,存储设备将访问命名空间NSV与命名空间(NS 0-31)的IO命令要写入的数据标识为不同的流。将访问命名空间NSV的IO命令要写入的数据标识为顺序流,而将访问命名空间(NS 0-31)的IO命令要写入的数据标识为随机流。顺序流被连续地写入存储设备,从而具有更高的写入性能。
图5展示了根据本申请实施例的数据库更新数据的流程图。
根据本申请的实施例,运行数据库的主机耦合到(逻辑上的)至少两个存储设备——高性能存储设备与普通存储设备,其中高性能存储设备至少具有比普通存储设备更高的处理写命令的性能。例如,由单一的物理存储设备提供逻辑上的高性能存储设备与普通存储设备。
将数据库的双写缓存文件(例如,MySQL数据库管理的ibdata1文件)配置为存储在由高性能存储设备提供的存储空间(510)。而数据库的数据文件(例如,MySQL数据库管理的*.idb文件)被配置为存储在由普通存储设备提供的存储空间。
数据库在被更新时(例如,处理数据表的***或更新操作),生成待存储数据(520)。生成的待存储数据被写入数据库的页缓存的缓存页(530)。页缓存中的数据又被写入双写缓存的双写缓存页(540)。双写缓存页中的数据被写入高性能存储设备中存储的双写缓存文件(550),以及双写缓存页中的数据还被写入普通存储设备中存储的数据文件(560)。其中步骤550与步骤560可被同时处理,或先执行步骤550再执行步骤560。
可选地,在步骤550,存储设备将要双写缓存文件的数据存储在例如DRAM中,而不写入非易失存储器,从而处理步骤550的数据写入操作有更低的延迟和/或更大的带宽,以及也降低了写入非易失存储器的数据量,有助于延长存储设备的寿命。
图6展示了根据本申请又一实施例的主机与存储设备的示意图。
主机运行的数据库或应用程序可访问至少两类具有不同性能的存储空间。第一类存储空间以内存、内存盘(Ramdisk)或非易失块设备(图6中标记为块设备NV)形式被访问,具有相对高的写性能和/或能承载相对更大量的写入数据。第二类存储空间以块设备(图6中标记为块设备0)形式被访问,具有相对低的写性能。
同主机耦合的存储设备向主机提供高性能存储设备610与普通存储设备620。由高性能存储设备610提供第一类存储空间,由普通存储设备620提供第二类存储设备。
存储设备的控制部件600用NVM(非易失存储器)650响应访问普通存储设备620的IO命令。
存储设备的缓存630是例如DRAM(动态随机访问存储器)。控制部件600用缓存630响应访问高性能存储设备610的IO命令。例如,向高性能存储设备610写入的数据,被控制部件610存储在缓存630。由于缓存630是DRAM,其具有比NVM 650更优的写性能,并能承载更多的写入数据。
在一个例子中,存储设备正常工作时,控制部件650不将缓存630的数据搬移到NVM650。控制部件600维护高性能存储设备610的存储空间同缓存630的存储空间的映射关系。高性能存储设备610的存储空间同缓存630的存储空间是例如一一映射,从而对高性能存储设备610的存储空间的覆盖写,将引起对缓存630的存储空间的覆盖写。
存储设备还包括备用电源640,响应于存储设备掉电,备用电源640为缓存630、控制部件600与NVM 650提供电力,控制部件600将缓存630中记录的用于高性能存储设备610的存储空间的数据搬移到NVM 650。而当存储设备下次上电后,从NVM 650中恢复缓存630中记录的用于高性能存储设备610的存储空间的数据(搬移到缓存630),从而主机中的数据库访问高性能存储设备610提供的第一类存储空间时,能得到该数据库在掉电之前写入第一类存储空间的数据。
由于数据库的双写缓存文件通常体积不大,从而缓存630的容量无须很大(例如同双写缓存文件的提及相同或略大),以及备用电源640需提供将缓存630的数据搬移到NVM650的电力,而备用电源640的容量也无须很大。
即使对缓存630的存储空间实施覆盖写,也不将缓存630的数据写入NVM 650,从而被覆盖的数据丢失,而不能再被访问。这样的实施方式不影响数据库对双写缓存文件的使用。在数据库看来,双写缓存文件是非易失的,存储设备掉电并再次上电后,写入双写缓存文件的数据能被再次读出。
在又一个例子中,存储设备工作时,控制部件600持续地将缓存630的数据搬移到NVM 650,或者响应于对缓存630的更新将缓存630的数据搬移到NVM 650。从而在存储设备掉电时,仅需将缓存630的尚未被写入NVM 650的数据搬移到NVM 650,从而备用电源640存储的电力可以更少,以降低备用电源640的成本。
图7展示了根据本申请再一实施例的主机与存储设备的示意图。
主机运行的数据库或应用程序可访问至少两类具有不同性能的存储空间。第一类存储空间以内存、内存盘(Ramdisk)或非易失块设备(图7中标记为块设备NV)形式被访问,具有相对高的写性能。第二类存储空间以块设备(图7中标记为块设备0)形式被访问,具有相对低的写性能。
同主机耦合的存储设备向主机提供NVRAM710与存储设备的命名空间(NS 0-31)720。由NVRAM710提供第一类存储空间,由存储设备的命名空间(NS 0-31)720提供第二类存储设备。
存储设备的控制部件700用NVM(非易失存储器)750响应访问存储设备的命名空间(NS 0-31)720的IO命令。存储设备的控制部件700用缓存730、NVM 755以及备用电源740响应访问NVRAM 710的IO命令。
NVRAM 710提供的地址空间是连续的地址空间。NVRAM地址空间包括多个具有相同大小的区域,每个区域被称为小块。例如,每个小块对应的NVRAM地址空间的大小可以是例如512字节、1KB或4KB。根据NVRAM地址空间的地址,可计算该地址对应的小块。例如,用NVRAM地址空间的地址除以小块对应的NVRAM地址空间的大小,所得的商为小块的索引或小块编号(ID)。
控制部件700维护小块转换表。小块转换表包括多个条目,每个条目对应于小块之一,并由小块ID索引,条目的值记录了为小块提供数据的基础大块帧的地址或内存片的地址。后面将详细描述基础大块帧与内存片。
小块转换表被存储在例如DRAM或SRAM中。控制部件700根据访问的NVRAM地址空间地址,计算出对应的小块ID,并用小块ID查询小块转换表,以得到为小块提供数据的基础大块帧的地址或内存片的地址。
NVM 755的存储空间被组织为大块。大块是例如NVM芯片的单一物理块,NVM芯片的LUN中的各个平面(Plane)的具有相同物理块号的多个物理块,或者来自多个LUN的物理块。
大块的存储空间被组织为帧。大块包括多个帧。帧的大小同小块的大小相同,从而一个小块对应的NVRAM地址空间所存储的数据可被记录在大块的一个帧中。
大块包括至少两类,基础大块与日志大块。基础大块的帧,被称为基础大块帧。小块转换表的条目的值记录的基础大块帧的地址,指示了基础大块帧。根据基础大块帧的地址可访问基础大块帧。
缓存730的存储空间被组织为内存片。内存片是例如DRAM的一段存储空间。内存片的大小同小块的大小相同,从而一个小块对应的NVRAM地址空间所存储的数据可被记录在一个内存片中。小块转换表的条目的值记录的内存片的地址,指示了内存片。根据内存片的地址可访问内存片。
小块转换表的一些条目的值,指示了基础大块帧的地址,而另一些条目的值指示了内存片的地址。
日志大块用于记录对NVRAM地址空间的修改。例如,向NVRAM地址空间的地址NADDR写入数据D,则生成日志条目,记录<NADDR,D>。NVRAM管理模块将记录了<NADDR,D>的日志条目写入日志大块帧。控制部件700将日志大块帧组织为例如链表,以利于访问多个日志大块帧。
依然作为举例,同小块转换表的条目(小块1)对应的NVRAM地址空间被更新,向该NVRAM地址空间的地址NADDR写入数据D,将生成的记录了<NADDR,D>的日志条目写入日志大块的日志大块帧。由于日志大块是NVM芯片的存储空间,向日志大块写入的日志具有非易失特性,即使存储设备掉电,下次存储设备上电时,依然能读出日志大块中的记录了<NADDR,D>的日志条目。
响应于应用向该NVRAM地址空间的地址NADDR写入数据D,NVRAM管理模块还在同地址NADDR对应的内存片中记录数据D。由于内存片是DRAM提供的存储空间,其可被按字节寻址或随机访问,从而高效地完成在内存片中记录数据D的操作。
根据本申请的实施例,内存片为NVRAM地址空间提供了高效随机访问的能力,而日志大块帧记录了日志条目<NADDR,D>,为NVRAM地址空间的更新提供了非易失的能力。同时具备随机访问能力与非易失能力的NVRAM地址空间,向主机提供了NVRAM服务。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种存储设备,包括可被耦合到所述存储设备的主机分别访问的第一逻辑存储设备与第二逻辑存储设备,其中第一逻辑存储设备处理写命令的性能高于第二逻辑存储设备。
2.根据权利要求1所述的存储设备,其中
在所述存储设备正常工作状态下,被写入第一逻辑存储设备的数据,被存储在易失性存储介质中,并且不被写入非易失存储介质;被写入第二逻辑存储设备的数据,被存储在非易失存储介质中。
3.根据权利要求2所述的存储设备,其中
响应于所述存储设备掉电或被指示,将存储在易失性存储介质中的被写入第一逻辑存储设备的数据,写入到非易失存储介质中。
4.根据去那里要求1-3之一所述的方法,其中
所述第一逻辑存储设备的存储空间大小用于容纳数据库的双写缓存文件,所述第二逻辑存储设备的存储空间大小用于容纳数据库的数据文件。
5.根据权利要求1-4之一所述的方法,其中
第一逻辑存储设备采用同第二逻辑存储设备的地址映射机制不同的地址映射机制将第一逻辑地址设备的地址空间映射到存储介质。
6.一种将数据库的更新数据写入存储设备的方法,包括:
将更新数据写入双写缓存;
将双写缓存中的更新数据写入存储在第一逻辑存储设备的双写缓存文件;
将双写缓存中的更新数据写入存储在第二逻辑存储设备的数据文件。
7.根据权利要求6所述的方法,其中
在所述存储设备正常工作状态下,被写入第一逻辑存储设备的数据,被存储在易失性存储介质中,并且不被写入非易失存储介质;被写入第二逻辑存储设备的数据,被存储在非易失存储介质中。
8.根据权利要求7所述的方法,其中
响应于所述存储设备掉电或被指示,所述存储设备将存储在易失性存储介质中的被写入第一逻辑存储设备的数据,写入到非易失存储介质中。
9.根据权利要求6-8之一所述的方法,还包括:
响应于写入所述数据文件的数据被破坏,从所述双写缓存文件获取数据以恢复被破坏的数据。
10.一种将数据库的更新数据写入存储设备的***,包括:
用于将更新数据写入双写缓存的装置;
用于将双写缓存中的更新数据写入存储在第一逻辑存储设备的双写缓存文件的装置;以及
用于将双写缓存中的更新数据写入存储在第二逻辑存储设备的数据文件的装置。
CN201910381151.9A 2019-04-28 2019-05-08 使用异构命名空间优化数据库性能 Pending CN111858623A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910350390 2019-04-28
CN2019103503908 2019-04-28

Publications (1)

Publication Number Publication Date
CN111858623A true CN111858623A (zh) 2020-10-30

Family

ID=72965955

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201910381155.7A Pending CN111858401A (zh) 2019-04-28 2019-05-08 提供异构命名空间的存储设备及其在数据库中的应用
CN201910381151.9A Pending CN111858623A (zh) 2019-04-28 2019-05-08 使用异构命名空间优化数据库性能

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201910381155.7A Pending CN111858401A (zh) 2019-04-28 2019-05-08 提供异构命名空间的存储设备及其在数据库中的应用

Country Status (1)

Country Link
CN (2) CN111858401A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI790628B (zh) * 2021-01-27 2023-01-21 日商鎧俠股份有限公司 記憶體系統及控制方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI790628B (zh) * 2021-01-27 2023-01-21 日商鎧俠股份有限公司 記憶體系統及控制方法

Also Published As

Publication number Publication date
CN111858401A (zh) 2020-10-30

Similar Documents

Publication Publication Date Title
CN108572796B (zh) 具有异构nvm类型的ssd
US11789860B2 (en) Logical to physical mapping management using low-latency non-volatile memory
US10282252B2 (en) RAID storage device and method of management thereof
KR102395538B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
JP5649742B2 (ja) トランザクションログの復元
US8918580B2 (en) Storage device with buffer memory including non-volatile RAM and volatile RAM
US10468077B2 (en) Adaptive object buffering and meta-data indexing using persistent memory to improve flash memory durability in tiered storage
US20180173419A1 (en) Hybrid ssd with delta encoding
KR20170087043A (ko) 저속 메모리를 이용하여 페이지 리맵핑 방식으로 바이트 어드레스 지정 능력 및 근-dram 성능을 달성하는 메커니즘
US10459803B2 (en) Method for management tables recovery
US11200178B2 (en) Apparatus and method for transmitting map data in memory system
US11422930B2 (en) Controller, memory system and data processing system
US10877853B2 (en) Data storage device and operation method optimized for recovery performance, and storage system having the same
KR20210028729A (ko) 논리적 대 물리적 테이블 프래그먼트들
US20210026763A1 (en) Storage device for improving journal replay, operating method thereof, and electronic device including the storage device
US11061598B2 (en) Optimized handling of multiple copies in storage management
KR20200032404A (ko) 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
US11880603B2 (en) Storage system and method for preserving overwritten data to allow a future rollback
CN111858623A (zh) 使用异构命名空间优化数据库性能
US20190107952A1 (en) Logical address history management in memory device
US11847343B2 (en) Storage system and method for non-blocking coherent re-writes
CN115328819A (zh) 固态存储设备及写/读数据的方法
US9977612B1 (en) System data management using garbage collection and logs
US11941246B2 (en) Memory system, data processing system including the same, and operating method thereof
US20240176501A1 (en) Data Storage Device and Method for Swap Defragmentation

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100192 room A302, building B-2, Dongsheng Science Park, Zhongguancun, 66 xixiaokou Road, Haidian District, Beijing

Applicant after: Beijing yihengchuangyuan Technology Co.,Ltd.

Address before: 100192 room A302, building B-2, Dongsheng Science Park, Zhongguancun, 66 xixiaokou Road, Haidian District, Beijing

Applicant before: BEIJING MEMBLAZE TECHNOLOGY Co.,Ltd.

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination