CN111858401A - 提供异构命名空间的存储设备及其在数据库中的应用 - Google Patents

提供异构命名空间的存储设备及其在数据库中的应用 Download PDF

Info

Publication number
CN111858401A
CN111858401A CN201910381155.7A CN201910381155A CN111858401A CN 111858401 A CN111858401 A CN 111858401A CN 201910381155 A CN201910381155 A CN 201910381155A CN 111858401 A CN111858401 A CN 111858401A
Authority
CN
China
Prior art keywords
storage device
data
database
storage
written
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
CN201910381155.7A
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 CN111858401A publication Critical patent/CN111858401A/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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (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.as hx获得的“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,第二逻辑存储设备是块设备。
根据本申请第二方面的第一至第七将数据库的更新数据写入存储设备的方法之一,提供了根据本申请第二方面的第八将数据库的更新数据写入存储设备的方法,其中第一逻辑存储设备采用同第二逻辑存储设备的地址映射机制不同的地址映射机制将第一逻辑地址设备的地址空间映射到存储介质。
根据本申请第二方面的第一至第八将数据库的更新数据写入存储设备的方法之一,提供了根据本申请第二方面的第九将数据库的更新数据写入存储设备的方法,还包括:将数据库的双写缓存文件设置为存储在第一逻辑存储设备提供的存储空间。
根据本申请第二方面的第九将数据库的更新数据写入存储设备的方法,提供了根据本申请第二方面的第十将数据库的更新数据写入存储设备的方法,还包括:将数据库的数据文件设置为存储在第二逻辑存储设备提供的存储空间。
根据本申请第二方面的第一至第十将数据库的更新数据写入存储设备的方法之一,提供了根据本申请第二方面的第十一将数据库的更新数据写入存储设备的方法,其中第一逻辑存储设备处理写命令的性能高于第二逻辑存储设备。
根据本申请第二方面的第一至第十一将数据库的更新数据写入存储设备的方法之一,提供了根据本申请第二方面的第十二将数据库的更新数据写入存储设备的方法,还包括:响应于写入所述数据文件的数据被破坏,从所述双写缓存文件获取数据以恢复被破坏的数据。
根据本申请的第三方面,提供了根据本申请第三方面的将数据库的更新数据写入存储设备的系统,包括:用于将更新数据写入双写缓存的装置;用于将双写缓存中的更新数据写入存储在第一逻辑存储设备的双写缓存文件的装置;以及用于将双写缓存中的更新数据写入存储在第二逻辑存储设备的数据文件的装置。
根据本申请的第三方面,提供了根据本申请第三方面的第一存储设备,包括第一逻辑存储设备与第二逻辑存储设备,其中向第一逻辑存储设备写入数据对所述存储设备的寿命的影响,比向第二逻辑存储设备写入数据对所述存储设备的影响更小。
根据本申请第三方面的第一存储设备,提供了根据本申请第三方面的第二存储设备,其中在所述存储设备正常工作状态下,被写入第一逻辑存储设备的数据,被存储在易失性存储介质中,并且不被写入非易失存储介质;被写入第二逻辑存储设备的数据,被存储在非易失存储介质中。
根据本申请第三方面的第二存储设备,提供了根据本申请第三方面的第三存储设备,其中响应于所述存储设备掉电或被指示,将存储在易失性存储介质中的被写入第一逻辑存储设备的数据,写入到非易失存储介质中。
根据本申请第三方面的第一至第三存储设备之一,提供了根据本申请第三方面的第四存储设备,其中所述第一逻辑存储设备用于容纳数据库的双写缓存文件,所述第二逻辑存储设备用于容纳数据库的数据文件。
根据本申请第三方面的第一至第四存储设备之一,提供了根据本申请第三方面的第五存储设备,其中访问第一逻辑存储设备的存储空间的地址被映射到易失性存储介质的地址,以及访问第二逻辑存储设备的存储空间的地址被映射到非易失性存储介质的地址。
根据本申请第三方面的第一至第五存储设备之一,提供了根据本申请第三方面的第六存储设备,其中响应于向第一逻辑存储设备的存储空间的地址写入第一数据,从易失性存储介质分配空间地址以承载所述第一数据,以及响应于向第二逻辑存储设备的存储空间的地址写入第二数据,从非易失性存储介质分配空间地址以承载所述第二数据。
根据本申请第三方面的第一至第六存储设备之一,提供了根据本申请第三方面的第七存储设备,其中所述第一逻辑存储设备与所述第二逻辑存储设备可被耦合到所述存储设备的主机按访问块设备的方式分别访问。
根据本申请第三方面的第一至第七存储设备之一,提供了根据本申请第三方面的第八存储设备,其中所述第一逻辑存储设备与所述第二逻辑存储设备是遵循NVMe协议的命名空间。
根据本申请第三方面的第一至第八存储设备之一,提供了根据本申请第三方面的第九存储设备,其中所述第一逻辑存储设备的读/写性能高于第二逻辑存储设备的读/写性能。
根据本申请的第四方面,提供了根据本申请第四方面的第一将数据库的更新数据写入存储设备的方法,包括:将更新数据写入存储在第一存储设备的双写缓存文件;将更新数据写入存储在第二存储设备的数据文件。
根据本申请第四方面的第一将数据库的更新数据写入存储设备的方法,提供了根据本申请第四方面的第二将数据库的更新数据写入存储设备的方法,其中第一存储设备与第二存储设备是由相同物理存储设备提供的遵循NVMe协议的命名空间。
根据本申请第四方面的第一或第二将数据库的更新数据写入存储设备的方法,提供了根据本申请第四方面的第三将数据库的更新数据写入存储设备的方法,其中在所述第一存储设备正常工作状态下,被写入第一存储设备的数据,被存储在易失性存储介质中,并且不被写入非易失存储介质;被写入第二存储设备的数据,被存储在非易失存储介质中。
根据本申请第四方面的第三将数据库的更新数据写入存储设备的方法,提供了根据本申请第四方面的第四将数据库的更新数据写入存储设备的方法,其中响应于所述第一存储设备掉电或被指示,将存储在易失性存储介质中的被写入第一逻辑存储设备的数据,写入到非易失存储介质中。
根据本申请第四方面的第一至第四将数据库的更新数据写入存储设备的方法之一,提供了根据本申请第四方面的第五将数据库的更新数据写入存储设备的方法,还包括:响应于写入所述数据文件的数据被破坏,从所述双写缓存文件获取数据以恢复被破坏的数据。
根据本申请第四方面的第一至第五将数据库的更新数据写入存储设备的方法之一,提供了根据本申请第四方面的第六将数据库的更新数据写入存储设备的方法,其中向第一存储设备写入数据对所述物理存储设备的寿命的影响,比向第二存储设备写入数据对所述物理存储设备的影响更小。
根据本申请的第五方面,提供了根据本申请第五方面的第一将数据库的更新数据写入存储设备的系统,包括:用于将更新数据写入存储在第一存储设备的双写缓存文件的装置;以及用于将更新数据写入存储在第二存储设备的数据文件的装置。
根据本申请的第六方面,提供了根据本申请第六方面的第一计算机,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现根据本申请第二或第四方面的将数据库的更新数据写入存储设备的方法之一。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域技术人员来讲,还可以根据这些附图获得其他的附图。
图1为存储设备的框图;
图2展示了数据库使用双写缓存的示意图;
图3是根据本申请实施例优化数据库双写缓存操作的示意图;
图4A与图4B展示了根据本申请实施例的主机与存储设备的示意图;
图5展示了根据本申请实施例的数据库更新数据的流程图;
图6展示了根据本申请又一实施例的主机与存储设备的示意图;
图7展示了根据本申请再一实施例的主机与存储设备的示意图;以及
图8展示了根据本申请依然再一实施例的主机与存储设备的示意图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图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的成本。
作为又一个例子,配置运行在主机中的MySQL数据库,设置datadir,innodb_log_group_home_dir、innodb_undo_directory、log_bin等目录存储在普通存储设备620提供的第二类存储空间,而设置innodb_data_home_dir/innodb_data_file_path存储在高性能存储设备提供的第一类存储空间。
作为再一个例子,配置MySQL数据库,将ibdata1文件设置为存储在第二类存储空间,以及将undolog从ibdata1文件中移除并存储在第一类存储空间,以缩小ibdata1文件的大小。将MySQL数据库的其他文件设置为存储在第一类存储空间。
可选地,对于其他多种数据库,配置数据库将用于为缓存提供非易失性或为提供数据恢复的文件或日志存储在第二类存储空间,而将数据文件存储在第一类存储空间。
图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服务。
图8展示了根据本申请依然再一实施例的主机与存储设备的示意图。
主机运行的数据库或应用程序可访问至少两类具有不同性能的存储空间。第一类存储空间以块设备(图8中标记为块设备V)的形式被访问,具有相对高的读/写性能和/或其寿命对写入数据量不敏感。第二类存储空间以块设备(图8中标记为块设备0)形式被访问,具有同块设备V相比相对低的读/写性能。
同主机耦合的存储设备向主机提供至少两个命名空间,图8中分别标记为NSV与NV0。由命名空间NS V提供第一类存储空间,由命名空间NS 0提供第二类存储设备。命名空间NSV与NS 0是例如遵循NVMe协议的命名空间。
存储设备利用FTL(闪存转换层)将访问命名空间NSV的请求映射到缓存830的地址,而将访问命名空间NS 0的请求映射到NVM 850的地址。存储设备的缓存830是例如DRAM(动态随机访问存储器)。用缓存830响应访问命名空间NSV的IO命令,由于缓存830是DRAM,其具有比NVM 850更优的读/写性能,并且其寿命对写入数据量不敏感。用NVM 850响应访问命名空间NS 0的IO命令。
FTL表中记录了各命名空间的逻辑地址到缓存830/NVM 850的物理地址的映射。从而,根据访问命名空间NSV的读命令的逻辑地址,查询FTL表,得到缓存830的物理地址;根据访问命名空间NS 0的读命令的逻辑地址,查询FTL表,得到NVM 850的物理地址。以及对于访问命名空间NSV的写命令,从缓存830分配缓存单元,以将写命令要写入的数据写入缓存830,并在FTL表中记录写命令的逻辑地址与分配的缓存单元的物理地址;对于访问问命名空间NS0的写命令,从NVM 850分配缓存单元,以将写命令要写入的数据写入NVM 850,并在FTL表中记录写命令的逻辑地址与分配的NVM 850的物理地址。
可选地,为每个命名空间提供各自的FTL表。
命名空间NSV的逻辑地址空间同缓存830的存储空间是例如一一映射,从而对命名空间NSV的逻辑地址空间的覆盖写,将引起对缓存830的存储空间的覆盖写。
在一个例子中,存储设备正常工作时,写入缓存830的数据不被搬移到NVM 850。NVM 850是对写入数量敏感的,写入数据将消耗NVM 850的寿命,而缓存830是对写入数据量不敏感的,写入数据不会显著消耗缓存830的寿命。而根据本申请的实施例,写入命名空间NSV(也即缓存830)的数据不被写入NVM 850,从而显著降低了在服务数据库应用时,对存储设备的寿命的消耗。以MySQL数据库为例,写入双写缓存文件的数据量可达MySQL数据库写入文件系统的总数据量的40%,根据本申请的实施例的存储设备用于服务MySQL数据库时,有总写入数据量的40%不会引起存储设备的寿命消耗,相当于显著延长了存储设备的使用寿命。
依然作为举例,命名空间NSV的逻辑地址空间相比于命名空间NS 0很小,在例如几十MB,或NS 0的逻辑地址的万分之一或更小。从而用缓存830提供命名空间NSV不会显著增加存储设备的成本。
存储设备还包括备用电源8640,响应于存储设备掉电,备用电源840为缓存830、控制部件与NVM 850提供电力,控制部件将缓存30中记录的命名空间NSV的存储空间的数据搬移到NVM850。而当存储设备下次上电后,从NVM850中恢复缓存830中记录的用于命名空间NSV的存储空间的数据(搬移到缓存830),从而主机中的数据库访问块设备V时,能得到该数据库在掉电之前写入块设备V的数据。
由于缓存830的容量无须很大(例如几十MB,或NS 0的逻辑地址的万分之一或更小),从而备用电源840需提供的将缓存830的数据搬移到NVM850的电力无须很多,从而无须显著增加备用电源840的成本。
存储设备处理写命令的带宽通常受限于NVM的带宽。根据本申请的实施例,用缓存830提供命名空间NSV,写入命名空间NSV的数据不被写入NVM,从而命名空间NSV的写带宽不受NVM带宽的限制。因而在大压力(例如,32线程、64线程或更多线程同时访问命名空间NSV)下,根据本申请实施例的存储设备对数据库应用的处理能力显著优于传统的存储设备。
根据本申请的依然另一实施例,主机耦合至少两个存储设备。主机运行的数据库或应用程序访问两个存储设备,以获得至少并行处理IO命令的优势。数据库将双写缓存文件存储在第一存储设备,而将数据文件存储在第二存储设备。进一步地,第一存储设备具有比第二存储设备更高的读/写性能和/或其寿命对写入数据量不敏感。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种存储设备,包括第一逻辑存储设备与第二逻辑存储设备,其中向第一逻辑存储设备写入数据对所述存储设备的寿命的影响,比向第二逻辑存储设备写入数据对所述存储设备的影响更小。
2.根据权利要求1所述的存储设备,其中
在所述存储设备正常工作状态下,被写入第一逻辑存储设备的数据,被存储在易失性存储介质中,并且不被写入非易失存储介质;被写入第二逻辑存储设备的数据,被存储在非易失存储介质中。
3.根据权利要求2所述的存储设备,其中
响应于所述存储设备掉电或被指示,将存储在易失性存储介质中的被写入第一逻辑存储设备的数据,写入到非易失存储介质中。
4.根据权利要求1-3之一所述的方法,其中
访问第一逻辑存储设备的存储空间的地址被映射到易失性存储介质的地址,以及访问第二逻辑存储设备的存储空间的地址被映射到非易失性存储介质的地址。
5.根据权利要求1-4之一所述的方法,其中
响应于向第一逻辑存储设备的存储空间的地址写入第一数据,从易失性存储介质分配空间地址以承载所述第一数据,以及响应于向第二逻辑存储设备的存储空间的地址写入第二数据,从非易失性存储介质分配空间地址以承载所述第二数据。
6.一种将数据库的更新数据写入存储设备的方法,包括:
将更新数据写入存储在第一存储设备的双写缓存文件;
将更新数据写入存储在第二存储设备的数据文件。
7.根据权利要求6所述的方法,其中
在所述第一存储设备正常工作状态下,被写入第一存储设备的数据,被存储在易失性存储介质中,并且不被写入非易失存储介质;被写入第二存储设备的数据,被存储在非易失存储介质中。
8.根据权利要求7所述的方法,其中
响应于所述第一存储设备掉电或被指示,将存储在易失性存储介质中的被写入第一逻辑存储设备的数据,写入到非易失存储介质中。
9.根据权利要求6-8之一所述的方法,还包括:
响应于写入所述数据文件的数据被破坏,从所述双写缓存文件获取数据以恢复被破坏的数据。
10.一种将数据库的更新数据写入存储设备的系统,包括:
用于将更新数据写入存储在第一存储设备的双写缓存文件的装置;以及
用于将更新数据写入存储在第二存储设备的数据文件的装置。
CN201910381155.7A 2019-04-28 2019-05-08 提供异构命名空间的存储设备及其在数据库中的应用 Pending CN111858401A (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
CN111858401A true CN111858401A (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 After (1)

Application Number Title Priority Date Filing Date
CN201910381151.9A Pending CN111858623A (zh) 2019-04-28 2019-05-08 使用异构命名空间优化数据库性能

Country Status (1)

Country Link
CN (2) CN111858401A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022114726A (ja) * 2021-01-27 2022-08-08 キオクシア株式会社 メモリシステムおよび制御方法

Also Published As

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

Similar Documents

Publication Publication Date Title
US11789860B2 (en) Logical to physical mapping management using low-latency non-volatile memory
CN108572796B (zh) 具有异构nvm类型的ssd
US10915475B2 (en) Methods and apparatus for variable size logical page management based on hot and cold data
US10037272B2 (en) Storage system employing MRAM and array of solid state disks with integrated switch
JP5649742B2 (ja) トランザクションログの復元
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
US20200225882A1 (en) System and method for compaction-less key-value store for improving storage capacity, write amplification, and i/o performance
US11016905B1 (en) Storage class memory access
US11422930B2 (en) Controller, memory system and data processing system
US20210026763A1 (en) Storage device for improving journal replay, operating method thereof, and electronic device including the storage device
KR20210028729A (ko) 논리적 대 물리적 테이블 프래그먼트들
US10877853B2 (en) Data storage device and operation method optimized for recovery performance, and storage system having the same
KR20200087487A (ko) 메모리 시스템에서의 유효 데이터 체크 방법 및 장치
CN115203079A (zh) 一种将数据写入固态硬盘的方法
CN111858401A (zh) 提供异构命名空间的存储设备及其在数据库中的应用
US20190107952A1 (en) Logical address history management in memory device
US11847343B2 (en) Storage system and method for non-blocking coherent re-writes
EP4307129A1 (en) Method for writing data into solid-state hard disk
KR20200032404A (ko) 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
US9977612B1 (en) System data management using garbage collection and logs
US11880603B2 (en) Storage system and method for preserving overwritten data to allow a future rollback
US11941246B2 (en) Memory system, data processing system including the same, and operating method thereof

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
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.

CB02 Change of applicant information
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination