数据存储方法、存储设备以及主机技术

技术编号:35990277 阅读:61 留言:0更新日期:2022-12-17 23:05
公开了一种数据存储方法、存储设备以及主机。所述数据存储方法应用于支持多流(Multi

【技术实现步骤摘要】
数据存储方法、存储设备以及主机


[0001]本公开涉及存储器
,更具体地讲,涉及一种数据存储方法、存储设备以及主机。

技术介绍

[0002]主机的文件系统(File system)对存储设备的写入操作,通常会根据不同的IO数据类型进行不同的操作和响应。通常对于用户的应用数据,利用内存来完成数据写入存储设备,即普通的写入操作在将数据写入内存之后就会收到返回通知,而写入内存的数据将被统一刷入NAND闪存。而对于保证数据一致性的日志(Journal)类型的数据,操作系统可以调用fsync的写入操作,确保数据写入NAND闪存之后才会收到返回通知。
[0003]一些常见的数据库应用程序(例如,RocksDB、InnoDB等)就同时具有对用户的应用数据和日志数据的写入请求。图1是示出数据库应用程序的写入操作的示例的示图。如图1所示,当有数据库数据要写入(101)时,首先会为了保证数据一致性,先写入预写日志(Write Ahead Log,WAL)(102),当预写日志成功刷入NAND中后,才会将数据库数据写入内存(103),然后返回(104),接着在满足触发条件后才会将缓存到内存中的数据统一刷入NAND中(105)。从用户的角度来看,数据库数据的写入时延等于写入WAL到NAND的时间+数据库数据写入到内存的时间。因此,写入WAL到NAND的时间会极大的影响数据库数据的写入性能。
[0004]同时,不仅数据库应用程序本身具有日志数据,数据在写入存储设备的过程中,文件系统也可能产生日志数据、元数据等并执行其写入操作,这些数据的写入同样也会影响数据库数据的写入时延。例如,在应用程序创建/foo/bar文件(create(/foo/bar))时,除了对bar文件的数据块(例如,root data、foo data、bar data)的写入操作之外,还会产生大量的元数据(例如,data bitmap、inode bitmap、root inode、foo inode、bar inode)的读写操作(read/write)。
[0005]如何提升如WAL、文件系统的日志数据、元数据等的写入时延,进而提升上层应用数据的写入时延,是亟需解决的问题。

技术实现思路

[0006]本公开提供一种能够有效减小数据写入时延并且提高数据吞吐量的数据存储方法、存储设备以及主机。
[0007]根据本公开的一个方面,提供一种数据存储方法,所述数据存储方法应用于支持多流(Multi

Stream)的存储设备,所述存储设备包括第一存储单元和第二存储单元,所述数据存储方法包括:响应于主机的IO写请求携带的流ID符合第一预设条件,将与所述IO写请求相应的数据写入第一存储存储单元;响应于所述IO写请求携带的流ID符合第二预设条件,将与所述IO写请求相应的数据写入第二存储单元;其中,所述流ID指示与所述IO写请求相应的数据的写入时延要求信息;符合第一预设条件的流ID指示的数据写入时延小于符合
第二预设条件的流ID指示的数据的写入时延;所述第一存储单元的读写性能高于所述第二存储单元的读写性能。
[0008]可选地,与符合第一预设条件的流ID相关联的数据类型包括:文件系统的日志数据、文件系统的位图Bitmap数据、文件系统的Inode数据、用户的日志数据、用户的元数据;与符合第二预设条件的流ID相关联的数据类型包括:用户的应用数据、其它文件系统的数据和其它用户数据。
[0009]可选地,响应于所述流ID符合第一预设条件,将与所述IO写请求相应的数据写入第一存储单元的步骤包括:响应于所述流ID符合第一预设条件,将所述IO写请求写入第一IO请求队列,通过第一调度器调度所述第一IO请求队列,将与所述IO写请求相应的数据写入所述第一存储单元;响应于所述流ID符合第二预设条件,将与所述IO写请求相应的数据写入第二存储单元的步骤包括:响应于所述流ID符合第二预设条件,将所述IO写请求写入第二IO请求队列,通过第二调度器调度所述第二IO请求队列,将与所述IO写请求相应的数据写入所述第二存储单元。
[0010]可选地,所述数据存储方法还包括:响应于所述第一存储单元已写满,通过所述第一调度器根据预设规则从所述第一存储单元读取迁移数据,写入第二IO请求队列;通过所述第二调度器调度所述第二IO请求队列,将所述迁移数据写入所述第二存储单元。
[0011]可选地,所述数据存储方法还包括:响应于所述第一IO队列的深度大于预设的深度值,通过所述第一调度器将写入时延超过预设时延值的IO写请求从所述第一IO请求队列写入所述第二IO请求队列;通过所述第二调度器调度所述第二IO请求队列,将与所述写入时延超过预设时延值的IO写请求相应的数据写入所述第二存储单元。
[0012]可选地,所述数据存储方法还包括:基于所述IO写请求携带的流ID,对所述第一IO请求队列中的IO写请求赋予对应的权重,其中,流ID指示的与所述IO写请求相应的数据的写入时延要求越高,与所述IO写请求对应的权重越大;所述通过第一调度器调度所述第一IO请求队列,将与所述IO写请求相应的数据写入所述第一存储单元的步骤包括:通过所述第一调度器,根据所述权重轮询调度所述第一IO请求队列。
[0013]可选地,所述第一存储单元包括存储级内存(SCM),所述第二存储单元包括NAND闪存。
[0014]根据本公开的另一方面,提供一种数据存储方法,所述数据存储方法应用于支持多流(Multi

Stream)的存储设备,所述存储设备包括第一存储单元和第二存储单元,所述数据存储方法包括:响应于将向所述存储设备发送IO写请求,确定与所述IO写请求相应的数据的类型;基于所述数据的类型,确定与所述IO写请求对应的流ID;将所述IO写请求发送给所述存储设备,所述IO写请求携带所述流ID,以使得所述存储设备在确定所述流ID符合第一预设条件时将与所述IO写请求相应的数据存储在第一存储单元,并且在确定所述流ID符合第二预设条件时将与所述IO写请求相应的数据存储在第二存储单元;其中,所述流ID指示与所述IO写请求相应的数据的写入时延要求信息;符合第一预设条件的流ID指示的数据写入时延小于符合第二预设条件的流ID指示的数据的写入时延;所述第一存储单元的读写性能高于所述第二存储单元的读写性能。
[0015]可选地,与符合第一预设条件的流ID相关联的数据类型包括:文件系统的日志数据、文件系统的位图Bitmap数据、文件系统的Inode数据、用户的日志数据、用户的元数据;
与符合第二预设条件的流ID相关联的数据类型包括:用户的应用数据、其它文件系统的数据和其它用户数据。
[0016]根据本公开的另一方面,提供一种存储设备,所述存储设备支持多流(Multi

Stream),所述存储设备包括第一存储单元和第二存储单元,所述存储设备还包括:数据写入单元,被配置为:响应于主机的IO写请求携带的流ID符合第一预设条件,将与所述IO写请求相本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据存储方法,其特征在于,所述数据存储方法应用于支持多流(Multi

Stream)的存储设备,所述存储设备包括第一存储单元和第二存储单元,所述数据存储方法包括:响应于主机的IO写请求携带的流ID符合第一预设条件,将与所述IO写请求相应的数据写入第一存储存储单元;响应于所述IO写请求携带的流ID符合第二预设条件,将与所述IO写请求相应的数据写入第二存储单元;其中,所述流ID指示与所述IO写请求相应的数据的写入时延要求信息;符合第一预设条件的流ID指示的数据写入时延小于符合第二预设条件的流ID指示的数据的写入时延;所述第一存储单元的读写性能高于所述第二存储单元的读写性能。2.如权利要求1所述的数据存储方法,其特征在于,与符合第一预设条件的流ID相关联的数据类型包括:文件系统的日志数据、文件系统的位图Bitmap数据、文件系统的Inode数据、用户的日志数据、用户的元数据;与符合第二预设条件的流ID相关联的数据类型包括:用户的应用数据、其它文件系统的数据和其它用户数据。3.如权利要求1所述的数据存储方法,其特征在于,响应于所述流ID符合第一预设条件,将与所述IO写请求相应的数据写入第一存储单元的步骤包括:响应于所述流ID符合第一预设条件,将所述IO写请求写入第一IO请求队列,通过第一调度器调度所述第一IO请求队列,将与所述IO写请求相应的数据写入所述第一存储单元;响应于所述流ID符合第二预设条件,将与所述IO写请求相应的数据写入第二存储单元的步骤包括:响应于所述流ID符合第二预设条件,将所述IO写请求写入第二IO请求队列,通过第二调度器调度所述第二IO请求队列,将与所述IO写请求相应的数据写入所述第二存储单元。4.如权利要求3所述的数据存储方法,其特征在于,所述数据存储方法还包括:响应于所述第一存储单元已写满,通过所述第一调度器根据预设规则从所述第一存储单元读取迁移数据,写入第二IO请求队列;通过所述第二调度器调度所述第二IO请求队列,将所述迁移数据写入所述第二存储单元。5.如权利要求3或4所述的数据存储方法,其特征在于,所述数据存储方法还包括:响应于所述第一IO队列的深度大于预设的深度值,通过所述第一调度器将写入时延超过预设时延值的IO写请求从所述第一IO请求队列写入所述第二IO请求队列;通过所述第二调度器调度所述第二IO请求队列,将与所述写入时延超过预设时延值的IO写请求相应的数据写入所述第二存储单元。6.如权利要求3或4所述的数据存储方法,其特征在于,所述数据存储方法还包括:基于所述IO写请求携带的流ID,对所述第一IO请求队列中的IO写请求赋予对应的权重,其中,流ID指示的与所述IO写请求相应的数据的写入时延要求越高,与所述IO写请求对应的权重越大;所述通过第一调度器调度所述第一IO请求队列,将与所述IO写请求相应的数据写入所述第一存储单元的步骤包括:
通过所述第一调度器,根据所述权重轮询调度所述第一IO请求队列。7.如权利要求1所述的数据存储方法,其特征在于,所述第一存储单元包括存储级内存(SCM),所述第二存储单元包括NAND闪存。8.一种数据存储方法,其特征在于,所述数据存储方法应用于支持多流(Multi

Stream)的存储设备,所述存储设备包括第一存储单元和第二存储单元,所述数据存储方法包括:响应于将向所述存储设备发送IO写请求,确定与所述IO写请求相应的数据的类型;基于所述数据的类型,确定与所述IO写请求对应的流ID;将所述IO写请求发送给所述存储设备,所述IO写请求携带所述流ID,以使得所述存储设备在确...

【专利技术属性】
技术研发人员:齐备张坤豆坤张如意张宗源李宇涛曹丹张添翼
申请(专利权)人:三星电子株式会社
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1