CN112527209A - 一种数据写入方法、装置、电子设备及存储介质 - Google Patents
一种数据写入方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112527209A CN112527209A CN202011521959.1A CN202011521959A CN112527209A CN 112527209 A CN112527209 A CN 112527209A CN 202011521959 A CN202011521959 A CN 202011521959A CN 112527209 A CN112527209 A CN 112527209A
- Authority
- CN
- China
- Prior art keywords
- data
- data writing
- end storage
- submitting
- storage device
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 75
- 238000012795 verification Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 11
- 230000009286 beneficial effect Effects 0.000 abstract 1
- 230000008569 process Effects 0.000 description 26
- 238000007726 management method Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (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)
Abstract
本发明公开了一种数据写入方法,包括:若接收到数据写入指令,则确定数据写入指令对应的数据信息;判断数据信息是否满足直接写入后端存储设备的预设条件;若是,则执行将数据写入指令提交至后端存储设备的第一提交操作;若否,则执行将数据写入指令提交至后端存储设备的缓存设备的第二提交操作。本申请实施例可利用直接写入后端存储设备的预设条件,将符合预设条件的数据写入指令筛选出来,并直接提交至后端存储设备,无需经过快速存储设备,避免由后端存储设备挤占缓存设备造成的写入缓慢问题,确保存储设备的整体读写性能。本发明还公开了一种数据写入装置、电子设备、存储介质,具有上述有益效果。
Description
技术领域
本发明涉及计算机存储领域,特别涉及一种数据写入方法、装置、电子设备及存储介质。
背景技术
随着数据的生成速度及传输速度不断提升,计算机行业对存储设备的快速读取及大存储空间需求日益增加。快速存储设备例如固态硬盘能够保证高速读取,但是成本较高,且存储空间越大价格越高;慢速存储设备例如机械硬盘能够保证较大的存储空间及较低的成本,但是读取速度较慢,因此利用快速存储设备作为慢速存储设备的缓存便能有效地平衡成本与读取速度。将快速存储设备作为慢速存储设备的缓存不仅能够提高慢速存储设备的读写速度,同时也能降低存储设备的成本。
相关技术中,当使用快速存储设备为慢速存储设备提供缓存功能时,所有需要写入慢速存储设备的数据都需要经过快速存储设备。由于所有慢速存储设备都共用快速缓存设备的带宽,当存在部分慢速存储设备持续占用快速缓存设备的带宽时,将会降低其他慢速存储设备的读写速度,进而降低存储设备的整体性能。
发明内容
本发明的目的是提供一种数据写入方法、装置、电子设备及存储介质,以避免缓存设备带宽对后端存储设备大文件写入数据的限制,并提升整体存储装置的性能。
为解决上述技术问题,本发明提供一种数据写入方法,包括:
若接收到数据写入指令,则确定所述数据写入指令对应的数据信息;
判断所述数据信息是否满足直接写入后端存储设备的预设条件;
若是,则执行将所述数据写入指令提交至所述后端存储设备的第一提交操作;
若否,则执行将所述数据写入指令提交至所述后端存储设备的缓存设备的第二提交操作。
可选地,在接收到数据写入指令之后,在确定所述数据写入指令对应的数据信息之前,还包括:
将所述数据写入指令添加至数据写入队列,直至前一数据写入指令完成对应的第一提交操作或第二提交操作后,执行确定所述数据写入指令对应的数据信息的步骤。
可选地,判断所述数据信息是否满足直接写入后端存储设备的预设条件,包括:
利用所述数据信息确定所述数据写入指令对应的待写入数据段的数据大小;
判断所述数据大小是否大于等于预设阈值;
若是,则执行所述将所述数据写入指令提交至所述后端存储设备的第一提交操作的步骤;
若否,则执行所述将所述数据写入指令提交至所述后端存储设备的缓存设备的第二提交操作的步骤。
可选地,在利用所述数据信息确定所述数据写入指令对应的待写入数据段的数据大小之前,还包括:
利用所述数据信息确定所述数据写入指令对应的后端存储设备的身份信息;
利用后端存储设备管理名单对所述身份信息进行验证;
若验证通过,则执行所述将所述数据写入指令提交至所述后端存储设备的缓存设备的第二提交操作
若验证未通过,则执行所述利用所述数据信息确定所述数据写入指令对应的待写入数据段的数据大小的步骤。
可选地,在判定所述数据大小大于等于预设阈值之后,在执行所述将所述数据写入指令提交至所述后端存储设备的第一提交操作的步骤之前,还包括:
读取所述缓存设备中的缓存地址段;
判断所述数据写入指令对应的待写入地址范围是否包含有所述缓存地址段;
若是,则对所述缓存地址段对应的数据段进行失效操作,并执行所述将所述数据写入指令提交至所述后端存储设备的第一提交操作的步骤;
若否,则执行所述将所述数据写入指令提交至所述后端存储设备的第一提交操作的步骤。
可选地,所述对所述缓存地址段对应的数据段进行失效操作,包括:
获取所述缓存地址段的回写标记,并利用所述回写标记判断所述数据段是否由所述缓存设备回写至所述后端存储设备;
若是,则对后端存储设备中的所述数据段进行失效操作;
若否,则执行将所述数据段由所述缓存设备写入所述后端存储设备的写入操作,并对后端存储设备中的所述数据段进行失效操作。
可选地,所述写入操作为强制回写操作。
可选地,在接收数据写入指令之前,还包括:
利用内核接口参数设置所述预设阈值;其中,所述预设阈值小于等于所述缓存设备的块大小。
本发明还提供一种数据写入装置,包括:
数据信息确定模块,用于若接收到数据写入指令,则确定所述数据写入指令对应的数据信息;
判断模块,用于判断所述数据信息是否满足直接写入后端存储设备的预设条件;
第一提交模块,用于执行将所述数据写入指令提交至所述后端存储设备的第一提交操作;
第二提交模块,用于执行将所述数据写入指令提交至所述后端存储设备的缓存设备的第二提交操作。
本发明还提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述所述的数据写入方法的步骤。
本发明还提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的数据写入方法的步骤。
本发明提供了一种数据写入方法,包括:若接收到数据写入指令,则确定所述数据写入指令对应的数据信息;判断所述数据信息是否满足直接写入后端存储设备的预设条件;若是,则执行将所述数据写入指令提交至所述后端存储设备的第一提交操作;若否,则执行将所述数据写入指令提交至所述后端存储设备的缓存设备的第二提交操作。
可见,由于在相关技术中后端存储设备共用快速缓存设备的带宽,当某些后端存储设备在处理数据写入操作或应对某些数据包时,将会对快速缓存设备的带宽造成挤占,进而影响存储设备的整体性能,因此本方法根据数据写入指令对应的数据信息,确定该数据写入指令能够直接提交至后端存储设备。当数据信息满足直接写入后端存储设备的预设条件时,该数据写入指令便可直接提交至后端存储设备,利用后端存储设备的带宽进行数据写入,无需占用快速缓存设备的带宽,进而可有效提升存储设备的整体性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的数据写入方法的流程图;
图2为本发明实施例所提供的数据写入装置的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
相关技术中,当使用快速存储设备为慢速存储设备提供缓存功能时,所有需要写入慢速存储设备的数据都需要经过快速存储设备。由于所有慢速存储设备都共用快速缓存设备的带宽,当存在部分慢速存储设备持续占用快速缓存设备的带宽时,将会降低其他慢速存储设备的读写速度,进而降低存储设备的整体性能。本申请实施例可利用直接写入慢速存储设备的预设条件,将符合预设条件的数据写入指令筛选出来,并直接提交至慢速存储设备,无需经过快速存储设备,有效解决由缓存设备的带宽限制导致的写入缓慢问题。请参考图1,图1为本申请实施例所提供的一种数据写入方法的流程图,该方法可以包括:
S100、若接收到数据写入指令,则确定数据写入指令对应的数据信息。
需要说明的是,本申请实施例并不限定数据写入指令的具体形式,用户可参考I/O操作的相关技术,其中I/O操作(Input/Output,输入输出操作)。本申请实施例也不限定确定数据大小的具体方式,该确定方式与具体的数据写入指令有关,用户可根据具体选择的数据写入指令,确定合适的数据大小确定方法。
可以理解的是,本申请实施例中的数据信息用于确定数据指令是否直接提交至后端存储设备,需要利用该数据信息进行验证,因此该数据信息中应当包含用于验证的内容。本申请实施例并不限定数据信息中的具体内容,只要能够满足验证的需求即可,用户可根据实际选择的验证内容进行选择,例如当验证的内容为数据写入指令对应数据段的数据大小时,该数据信息中可以包含数据段的数据大小;当验证的内容为数据写入指令对应的后端存储设备时,该数据信息中可以包含后端存储设备的身份信息;当验证为多种验证方式的组合时,该数据信息还可以为多种数据写入指令对应信息的组合。本申请实施例也不限定数据信息的具体形式,只要能够包含用于验证的内容且便于数据验证即可。
进一步,本申请实施例并不限定是否需要将数据写入指令加入等待列表,当数据写入指令较少、数据写入指令可快速完成或数据写入指令不会出现拥堵情况时,可无需将数据写入指令加入等待列表;当数据写入指令频繁出现、数据写入过程较长或数据写入指令容易出现拥堵情况时,可以将数据写入指令加入等待列表。考虑到计算机中频繁出现数据写入指令,同时对大数据段的数据写入指令处理周期较长可能会造成拥堵情况,在本申请实施例中可以将数据写入指令加入等待列表。本申请实施例也不限定等待列表的数据结构,例如可以是栈结构,也可以是队列结构,也可以是链表结构,也可以是其他数据结构,用户可根据实际应用需求为等待列表选择合适的数据结构。考虑到队列结构可以保证数据写入指令按照出现的次序进行处理,保证写入数据的内容及顺序一致,同时易于实现,因此在本申请实施例中,可以采用队列结构作为等待列表的数据结构。
在一种可能的情况中,在接收到数据写入指令之后,在确定数据写入指令对应的待写入数据段的数据大小之前,还可以包括
将数据写入指令添加至数据写入队列,直至前一数据写入指令完成对应的第一提交操作或第二提交操作后,执行确定数据写入指令对应的待写入数据段的数据大小的步骤。
S101、判断数据信息是否满足直接写入后端存储设备的预设条件;若是,则进入步骤S102;若否,则进入步骤S103。
相关技术中,由于所有的数据写入指令均要经过缓存设备,当某些后端存储设备占用缓存设备的带宽时,将限制其他后端存储设备的写入速度,进而降低整体的写入性能。本申请实施例利用数据写入指令对应的数据信息确定该数据写入指令是否可以直接提交至后端存储设备,由后端存储设备直接完成后续数据写入操作,而无需经过快速缓存设备,进而不挤占快速缓存设备的带宽,有效提升存储设备的整体性能。
需要说明的是,本申请实施例并不限定预设条件的具体内容,例如可以为确认数据写入指令对应的待写入数据是否为大文件的数据大小阈值,也可以为管控后端存储设备的后端存储设备管理名单,也可以为多种内容的组合,用户可根据实际应用需求进行选择。本申请实施例也不限定利用预设条件对数据信息进行判断的具体过程,该过程与具体选择的预设条件有关,例如当预设条件为数据大小阈值时,该判断过程可以为利用数据信息确定数据写入指令对应的待写入数据段的数据大小,并判断该数据大小是否大于等于数据大小阈值;当预设条件为后端存储设备管理名单时,该判断过程可以为利用数据信息确定数据写入指令对应的后端存储设备的身份信息,并利用后端存储设备管理名单对该身份信息进行验证;当然,当预设条件为多种条件的组合时,该判断过程也可以为利用多种条件对数据信息进行判定。
S102、执行将数据写入指令提交至后端存储设备的第一提交操作。
本申请实施例在判定数据信息满足直接写入后端存储设备的预设条件后,便可将该数据段直接写入后端存储设备,数据写入过程无需经过缓存设备,可确保后端存储设备直接利用自身带宽进行文件写入,避免写入操作对快速缓存设备带宽的挤占。
可以理解的是,由于数据写入分为多个阶段,在本申请实施例中只需将数据写入指令提交至后端存储设备即可,当后端存储设备接收到该数据写入指令后,便会自动完成后续的数据写入操作。需要说明的是,本申请实施例并不限定第一提交操作的具体过程,只要能够实现将数据写入指令提交至后端存储设备即可,用户可参考存储设备读写的相关技术。本申请实施例也不限定后端存储设备的具体类型,例如可以为机械硬盘、固态硬盘、可移动磁盘等。
S103、执行将数据写入指令提交至后端存储设备的缓存设备的第二提交操作。
需要说明的是,本申请实施例并不限定用于实现利用快速存储设备为慢速存储设备提供缓存功能的应用框架,例如可以使用dm-cache实现,也可以利用LVM-cache实现,也可以利用Bcache实现,用户可根据实际应用需求进行选择。其中,dm-cache是一种基于Linux操作系统通用设备映射机制的缓存方案,LVM-cache是一种Linux操作系统下对磁盘分区进行管理的机制,Bcache是Linux操作系统内核块设备层的缓存。本申请实施例也不限定第二提交操作的具体过程,只要能够实现将数据写入指令提交至缓存设备即可,用户可参考存储设备读写的相关技术。本申请实施例也不限定缓存设备的具体类型,例如可以为固态硬盘、机械硬盘、可移动磁盘等。
基于上述实施例,由于在相关技术中后端存储设备共用快速缓存设备的带宽,当某些后端存储设备在处理数据写入操作或应对某些数据包时,将会对快速缓存设备的带宽造成挤占,进而影响存储设备的整体性能,因此本方法根据数据写入指令对应的数据信息,确定该数据写入指令能够直接提交至后端存储设备。当数据信息满足直接写入后端存储设备的预设条件时,该数据写入指令便可直接提交至后端存储设备,利用后端存储设备的带宽进行数据写入,无需占用快速缓存设备的带宽,进而可有效提升存储设备的整体性能。
基于上述实施例,下面介绍当预设条件为确定数据写入指令对应待写入数据段是否为大文件的预设阈值时对数据信息的判定过程,该判定过程可以包括:
S400、利用数据信息确定数据写入指令对应的待写入数据段的数据大小。
需要说明的是,本申请实施例并不限定利用数据信息确定数据大小的具体过程,例如当数据信息中包含数据写入指令对应的地址段长度时,可利用该地址段长度计算得到待写入数据段的数据大小,当数据信息中已经包含计算后的数据大小时,也可直接读取数据信息确定该数据大小。
S401、判断数据大小是否大于等于预设阈值;若是,则进入步骤S402;若否,则进入步骤S403。
本申请实施例利用预设阈值来区分大文件和小文件,当数据段的数据大小大于等于预设阈值时,判定该数据段为大文件,当数据大小小于预设阈值时,则判定该数据段为小文件。本申请实施例并不限定预设阈值的具体数值,用户可根据实际应用需求进行设定。可以理解的是,当数据段的大小小于缓存设备的块大小时,缓存设备可提供最高的缓存效率,因此在本申请实施例中,预设阈值可以小于等于缓存设备的块大小,这样便可保证缓存设备以最高的缓存效率处理小文件,而大于等于预设阈值的大文件则直接写入后端存储设备。
本申请实施例也不限定预设阈值的设置方法,例如可以通过配置文件设置,也可以通过内核接口参数设置。考虑到利用内核接口参数设置无需重新封装读写机制框架,具有更高的处理效率,因此在本申请实施例中,预设阈值可通过内核接口参数进行设置。
S402、执行将数据写入指令提交至后端存储设备的第一提交操作的步骤。
需要说明的是,对第一提交操作的具体过程以及后端存储设备类型的限定描述与上述实施例相同,可参考上述实施例中的描述,在此不再赘述。
本申请实施例也不限定在判定数据大小大于等于预设阈值之后,在执行将待写入数据段写入后端存储设备的第一提交操作之前,是否需要判断对应数据写入指令的地址范围是否包含有缓存设备中的缓存地址段。当大文件和小文件不会混合下发、大文件的数据内容不会与小文件的数据内容交叉或大文件对应的地址范围不会包含小文件的地址范围时,可以不需要判断对应数据写入指令的地址范围是否包含有缓存设备中的缓存地址段;当大文件和小文件会混合下发、大文件的数据内容可能与小文件的数据内容交叉或大文件对应的地址范围可能包含有小文件的地址范围时,可以判断对应数据写入指令的地址范围是否包含有缓存设备中的缓存地址段,以便后续进行相应的处理。考虑到实际应用场景中,大文件和小文件会混合下发,大文件的数据内容可能会与小文件的数据内容交叉,因此为了保证数据一致,在本申请实施例中,在判定数据大小大于等于预设阈值后,在执行将待写入数据段写入后端存储设备的第一提交操作前,可以判断对应数据写入指令的地址范围是否包含有缓存设备中的缓存地址段。本申请实施例并不限定缓存地址段的具体形式,用户可参考缓存的相关技术。本申请实施例也不限定数据写入指令地址范围的具体形式,该形式与数据写入指令的具体形式有关,用户可根据实际选择的数据写入指令设置相应的地址范围形式。本申请实施例也不限定判断对应数据写入指令的地址范围是否包含有缓存设备中的缓存地址段的具体判断方式,该方式与地址范围的具体形式及缓存地址段的具体形式有关,用户可根据实际应用需求进行设定。
本申请实施例也不限定当判定数据写入指令的地址范围包含有缓存设备中的缓存地址段的后续操作,例如可以利用数据写入指令对应的数据段对缓存地址段对应的数据段进行更新,也可以对缓存地址段对应的数据段进行失效操作。
S403、执行将数据写入指令提交至后端存储设备的缓存设备的第二提交操作的步骤。
需要说明的是,对第二提交操作的具体过程以及缓存设备类型的限定描述与上述实施例相同,可参考上述实施例中的描述,在此不再赘述。
基于上述实施例,本方法在接收到数据写入指令后,便对该指令对应的数据进行数据大小判断,若数据写入指令中包含的数据大小大于等于第一阈值,则判定该数据为大数据并直接写入后端存储设备,可确保符合第一阈值要求的大数据直接利用后端存储设备的带宽进行写入,无需经过缓存设备,有效解决由缓存设备的带宽限制导致的大文件写入缓慢的问题。
基于上述实施例,为了提升管理效率,在确定数据大小之前还可利用数据写入指令的数据信息确定后端存储设备的身份,并利用该身份对数据的提交方式进行确认。在一种可能的情况中,利用数据信息确定数据写入指令对应的待写入数据段的数据大小之前,还可以包括:
S300、利用数据信息确定数据写入指令对应的后端存储设备的身份信息。
需要说明的是,本申请实施例并不限定后端存储设备的身份信息的具体内容,例如可以为后端存储设备的硬件序列号,也可以为某种特征标记,也可以为多种身份信息内容的组合。本申请实施例也不限定利用数据信息确定身份信息的具体过程,例如当数据信息中包含身份信息时,可直接读取数据信息进行确定,当数据信息利用某种特征标记表示特殊后端存储设备时,也可通过判定数据信息中是否具有该特征标记进行确定。由于在数据信息中包含身份信息,并利用读取的方式确定身份信息易于实现且便于管理,因此在申请实施例中可以在数据信息中包含后端存储设备的身份信息,并通过读取数据信息确定该身份信息。
S301、利用后端存储设备管理名单对身份信息进行验证。
需要说明的是,本申请实施例并不限定该后端存储设备管理名单中的具体内容,例如可以包含后端存储设备的身份信息、用于标识对数据写入指令进行不同处理的处理标识或其他内容,用户可根据实际应用需求进行选择。本申请实施例也不限定利用该后端存储设备管理名单对身份信息进行验证的具体过程,例如该过程可以为判定身份信息是否存在于后端存储设备管理名单,若存在则判定验证通过,若不存在则判定验证不通过,该过程也可以为判定身份信息是否存在于后端存储设备管理名单,若存在则判定验证不通过,若不存在则判定验证通过,也可以为读取身份信息在后端存储设备管理名单中的处理标识,并根据处理标识确定验证情况。
S302、若验证通过,则执行将数据写入指令提交至后端存储设备的缓存设备的第二提交操作。
需要说明的是,对第二提交操作的具体过程以及后端存储设备类型的限定描述与上述实施例相同,可参考上述实施例中的描述,在此不再赘述。
S303、若验证未通过,则执行利用数据信息确定数据写入指令对应的待写入数据段的数据大小的步骤。
需要说明的是,对该步骤的限定描述与上述实施例相同,可参考上述实施例中的描述,在此不再赘述。
基于上述实施例,本方法可利用后端存储设备的管理名单对向后端存储设备写入数据的行为进行管理。当数据写入指令出现时,本方法根据数据写入指令对应的后端存储设备的身份信息确定是否需要将该数据写入指令提交至缓存设备,当身份信息通过验证后才将数据写入指令提交至缓存设备,可有效对后端存储设备使用缓存设备的权限进行管理。
基于上述实施例,下面对判断数据写入指令的地址范围包含有缓存设备中的缓存地址段的具体过程进行介绍,该判断过程可以包括:
S200、读取缓存设备中的缓存地址段。
本申请实施例并不限定缓存设备中缓存地址段的具体形式,用户可参考缓存设备的相关技术。本申请实施例也不限定读取缓存设备中缓存地址段的具体过程,用户可参考缓存设备的相关技术。
需要说明的是,在读取缓存设备中的缓存地址段时,应当确保缓存设备的miss/hit统计数据不被修改,该统计数据用于缓存替换,修改这些统计数据将影响缓存设备的性能。其中,miss/hit统计数据(未命中/命中统计数据)。
S201、判断数据写入指令对应的待写入地址范围是否包含有缓存地址段。
可以理解的是,由于大文件和小文件混合分发,大文件的写入地址段可能包含有小文件的写入地址段,进而造成数据混乱问题。因此在本申请实施例中,需要对缓存设备中的缓存地址段进行检验,判断数据写入指令对应的待写入地址范围是否包含有缓存地址段,若包含则需要对缓存地址段对应的数据段进行相应的处理,以避免数据混乱问题。
需要说明的是,本申请实施例并不限定判断数据写入指令对应的待写入地址范围是否包含有缓存地址段的具体方式,用户可参考I/O操作及缓存的相关技术,并根据实际选择的数据写入指令及缓存地址段形式进行设定。
S202、若是,则对缓存地址段对应的数据段进行失效操作,并执行将数据写入指令提交至后端存储设备的第一提交操作的步骤。
需要说明的是,本申请实施例并不限定缓存地址段对应的数据段的存储设备,例如可以是缓存设备,也可以是后端存储设备。可以理解的是,缓存设备在满足某些条件后,会将存储于自身的缓存数据回写至后端存储设备,因此缓存地址段的数据段可能存储于缓存设备也可能存储于后端存储设备。本申请实施例也不限定需要对存储于哪个设备的数据段进行失效操作,例如可以只对存储于缓存设备中的数据段进行失效操作,也可以只对存储于后端存储设备中的数据段进行失效操作,也可以对存储于缓存设备和后端存储设备中的数据段都进行失效操作。为了有效避免数据混乱问题,在本申请实施例中可以对存储于缓存设备和后端存储设备中的数据段都进行失效操作。
本申请实施例并不限定失效操作的具体内容,例如可以是删除、覆盖、擦除的数据失效操作,也可以包含其他处理步骤,例如判断数据段是否回写等步骤,用户可根据实际应用场景进行选择。本申请实施例也不限定是否对存储于缓存设备和后端存储设备中的数据段都执行相同的失效操作,例如对缓存设备和后端存储设备中的数据段都执行删除操作。考虑到失效缓存设备中的数据可能会造成数据丢失或损坏问题,因此在本申请实施例中,可以对缓存设备和后端存储设备中数据执行不同的失效操作。
在一种可能的情况中,对缓存地址段对应的数据段进行失效操作可以包括:
获取缓存地址段的回写标记,并利用回写标记判断数据段是否由缓存设备回写至后端存储设备;
若是,则对后端存储设备中的数据段进行失效操作;
若否,则执行将数据段由缓存设备写入后端存储设备的写入操作,并对后端存储设备中的数据段进行失效操作。
本申请实施例利用缓存地址段对应的回写标记判断缓存地址段对应的数据段是否回写至后端存储设备,若还未回写则将该数据段回写至后端存储设备,这样便可确保与大文件有关的小文件均已写入后端存储设备,不会存在数据丢失及数据损坏问题,进而保障数据一致性。
本申请实施例并不限定执行失效操作和写入操作的具体执行过程,例如可以为直接执行失效操作或写入操作的相应步骤,也可以将失效操作或写入操作放入操作队列,直至操作队列中前一操作执行完成后,执行失效操作或写入操作的相应步骤。
需要说明的是,本申请实施例并不限定回写标记的具体形式,用户可参考缓存设备的相关技术。本申请实施例也不限定利用回写标记判断数据段是否有缓存设备回写至后端存储设备的具体方式,该方式与回写标记的具体形式有关,用户可根据具体选择的回写标记确定合适的判断方式。
本申请实施例也不限定写入操作的具体方式,只要写入操作能够将数据段由缓存设备写入后端存储设备即可,例如可以为定时回写操作、条件触发回写操作或强制回写操作。为了提高数据回写的效率,在本申请实施例中,写入操作为强制回写操作。
S203、若否,则执行将数据写入指令提交至后端存储设备的第一提交操作的步骤。
基于上述实施例,本方法对数据写入指令的地址范围中是否包含有缓存设备的缓存地址段进行判断,若是则将缓存地址段对应的数据段进行失效操作,以确保大文件和小文件数据内容的一致性。
下面对本发明实施例提供的数据写入装置、电子设备及存储介质进行介绍,下文描述的数据写入装置、电子设备及存储介质与上文描述的数据写入方法可相互对应参照。
请参考图2,图2为本申请实施例所提供的一种数据写入装置的结构框图,该装置可以包括:
数据信息确定模块500,用于若接收到数据写入指令,则确定数据写入指令对应的数据信息;
判断模块501,用于判断数据信息是否满足直接写入后端存储设备的预设条件;
第一提交模块502,用于执行将数据写入指令提交至后端存储设备的第一提交操作;
第二提交模块503,用于执行将数据写入指令提交至后端存储设备的缓存设备的第二提交操作。
可选地,数据写入装置还可以包括:
队列添加模块,用于将数据写入指令添加至数据写入队列。
可选地,判断模块501可以包括:
数据大小确定子模块,用于利用数据信息确定数据写入指令对应的待写入数据段的数据大小;
数据大小判断子模块,用于判断数据大小是否大于等于预设阈值;
可选地,数据写入装置还可以包括:
身份信息确定模块,用于利用数据信息确定数据写入指令对应的后端存储设备的身份信息;
验证模块,用于利用后端存储设备管理名单对身份信息进行验证;
可选地,数据写入装置还可以包括:
缓存地址段读取模块,用于读取缓存设备中的缓存地址段;
地址范围判断模块,用于判断数据写入指令对应的待写入地址范围是否包含有缓存地址段;
失效模块,用于对缓存地址段对应的数据段进行失效操作。
可选地,失效模块可以包括:
回写标记获取子模块,用于获取缓存地址段的回写标记,并利用回写标记判断数据段是否由缓存设备回写至后端存储设备;
失效子模块,用于对后端存储设备中的数据段进行失效操作;
写入子模块,用于执行将数据段由缓存设备写入后端存储设备的写入操作。
可选地,写入子模块中的写入操作可以为强制回写操作。
可选地,该数据写入装置还可以包括:
设置模块,用于利用内核接口参数设置预设阈值;其中,预设阈值小于等于缓存设备的块大小。
本申请实施例还提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上述的数据写入方法的步骤。
由于电子设备部分的实施例与数据写入方法部分的实施例相互对应,因此电子设备部分的实施例请参见数据写入方法部分的实施例的描述,这里暂不赘述。
本申请实施例还提供一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述任意实施例的数据写入方法的步骤。如计算机程序被处理器执行时实现若接收到数据写入指令,则确定数据写入指令对应的数据信息;判断数据信息是否满足直接写入后端存储设备的预设条件;若是,则执行将数据写入指令提交至后端存储设备的第一提交操作;若否,则执行将数据写入指令提交至后端存储设备的缓存设备的第二提交操作。
由于存储介质部分的实施例与数据写入方法部分的实施例相互对应,因此存储介质部分的实施例请参见数据写入方法部分的实施例的描述,这里暂不赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的数据写入方法、装置、电子设备及存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (11)
1.一种数据写入方法,其特征在于,包括:
若接收到数据写入指令,则确定所述数据写入指令对应的数据信息;
判断所述数据信息是否满足直接写入后端存储设备的预设条件;
若是,则执行将所述数据写入指令提交至所述后端存储设备的第一提交操作;
若否,则执行将所述数据写入指令提交至所述后端存储设备的缓存设备的第二提交操作。
2.根据权利要求1所述的数据写入方法,其特征在于,在接收到数据写入指令之后,在确定所述数据写入指令对应的数据信息之前,还包括:
将所述数据写入指令添加至数据写入队列,直至前一数据写入指令完成对应的第一提交操作或第二提交操作后,执行确定所述数据写入指令对应的数据信息的步骤。
3.根据权利要求1至2任一项所述的数据写入方法,其特征在于,判断所述数据信息是否满足直接写入后端存储设备的预设条件,包括:
利用所述数据信息确定所述数据写入指令对应的待写入数据段的数据大小;
判断所述数据大小是否大于等于预设阈值;
若是,则执行所述将所述数据写入指令提交至所述后端存储设备的第一提交操作的步骤;
若否,则执行所述将所述数据写入指令提交至所述后端存储设备的缓存设备的第二提交操作的步骤。
4.根据权利要求3所述的数据写入方法,其特征在于,在利用所述数据信息确定所述数据写入指令对应的待写入数据段的数据大小之前,还包括:
利用所述数据信息确定所述数据写入指令对应的后端存储设备的身份信息;
利用后端存储设备管理名单对所述身份信息进行验证;
若验证通过,则执行所述将所述数据写入指令提交至所述后端存储设备的缓存设备的第二提交操作;
若验证未通过,则执行所述利用所述数据信息确定所述数据写入指令对应的待写入数据段的数据大小的步骤。
5.根据权利要求3所述的数据写入方法,其特征在于,在判定所述数据大小大于等于预设阈值之后,在执行所述将所述数据写入指令提交至所述后端存储设备的第一提交操作的步骤之前,还包括:
读取所述缓存设备中的缓存地址段;
判断所述数据写入指令对应的待写入地址范围是否包含有所述缓存地址段;
若是,则对所述缓存地址段对应的数据段进行失效操作,并执行所述将所述数据写入指令提交至所述后端存储设备的第一提交操作的步骤;
若否,则执行所述将所述数据写入指令提交至所述后端存储设备的第一提交操作的步骤。
6.根据权利要求5所述的数据写入方法,其特征在于,所述对所述缓存地址段对应的数据段进行失效操作,包括:
获取所述缓存地址段的回写标记,并利用所述回写标记判断所述数据段是否由所述缓存设备回写至所述后端存储设备;
若是,则对后端存储设备中的所述数据段进行失效操作;
若否,则执行将所述数据段由所述缓存设备写入所述后端存储设备的写入操作,并对后端存储设备中的所述数据段进行失效操作。
7.根据权利要求6所述的数据写入方法,其特征在于,所述写入操作为强制回写操作。
8.根据权利要求3所述的数据写入方法,其特征在于,在接收数据写入指令之前,还包括:
利用内核接口参数设置所述预设阈值;其中,所述预设阈值小于等于所述缓存设备的块大小。
9.一种数据写入装置,其特征在于,包括:
数据信息确定模块,用于若接收到数据写入指令,则确定所述数据写入指令对应的数据信息;
判断模块,用于判断所述数据信息是否满足直接写入后端存储设备的预设条件;
第一提交模块,用于执行将所述数据写入指令提交至所述后端存储设备的第一提交操作;
第二提交模块,用于执行将所述数据写入指令提交至所述后端存储设备的缓存设备的第二提交操作。
10.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至8任一项所述的数据写入方法的步骤。
11.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述的数据写入方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011521959.1A CN112527209B (zh) | 2020-12-21 | 2020-12-21 | 一种数据写入方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011521959.1A CN112527209B (zh) | 2020-12-21 | 2020-12-21 | 一种数据写入方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112527209A true CN112527209A (zh) | 2021-03-19 |
CN112527209B CN112527209B (zh) | 2024-10-11 |
Family
ID=75002218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011521959.1A Active CN112527209B (zh) | 2020-12-21 | 2020-12-21 | 一种数据写入方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112527209B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1728111A (zh) * | 2004-07-30 | 2006-02-01 | 惠普开发有限公司 | 清除而不用写回包含失效数据的高速缓存行 |
CN101099130A (zh) * | 2004-12-02 | 2008-01-02 | 英特尔公司 | 以高性能方式从cpu或处理单元中访问物理存储器的方法和装置 |
US20110145473A1 (en) * | 2009-12-11 | 2011-06-16 | Nimble Storage, Inc. | Flash Memory Cache for Data Storage Device |
CN103425602A (zh) * | 2013-08-15 | 2013-12-04 | 深圳市江波龙电子有限公司 | 一种闪存存储设备数据读写的方法、装置及主机系统 |
CN104536702A (zh) * | 2014-12-31 | 2015-04-22 | 华为技术有限公司 | 一种存储阵列系统及数据写请求处理方法 |
JP2017208113A (ja) * | 2017-06-30 | 2017-11-24 | ▲ホア▼▲ウェイ▼技術有限公司Huawei Technologies Co.,Ltd. | データ格納方法、データストレージ装置、及びストレージデバイス |
CN109684236A (zh) * | 2018-12-25 | 2019-04-26 | 广东浪潮大数据研究有限公司 | 一种数据写缓存控制方法、装置、电子设备和存储介质 |
CN111324309A (zh) * | 2020-02-21 | 2020-06-23 | 北京天融信网络安全技术有限公司 | 一种数据存储方法及电子设备 |
-
2020
- 2020-12-21 CN CN202011521959.1A patent/CN112527209B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1728111A (zh) * | 2004-07-30 | 2006-02-01 | 惠普开发有限公司 | 清除而不用写回包含失效数据的高速缓存行 |
CN101099130A (zh) * | 2004-12-02 | 2008-01-02 | 英特尔公司 | 以高性能方式从cpu或处理单元中访问物理存储器的方法和装置 |
US20110145473A1 (en) * | 2009-12-11 | 2011-06-16 | Nimble Storage, Inc. | Flash Memory Cache for Data Storage Device |
CN103425602A (zh) * | 2013-08-15 | 2013-12-04 | 深圳市江波龙电子有限公司 | 一种闪存存储设备数据读写的方法、装置及主机系统 |
CN104536702A (zh) * | 2014-12-31 | 2015-04-22 | 华为技术有限公司 | 一种存储阵列系统及数据写请求处理方法 |
JP2017208113A (ja) * | 2017-06-30 | 2017-11-24 | ▲ホア▼▲ウェイ▼技術有限公司Huawei Technologies Co.,Ltd. | データ格納方法、データストレージ装置、及びストレージデバイス |
CN109684236A (zh) * | 2018-12-25 | 2019-04-26 | 广东浪潮大数据研究有限公司 | 一种数据写缓存控制方法、装置、电子设备和存储介质 |
CN111324309A (zh) * | 2020-02-21 | 2020-06-23 | 北京天融信网络安全技术有限公司 | 一种数据存储方法及电子设备 |
Non-Patent Citations (1)
Title |
---|
王冬,杨琼: "嵌入式文件系统缓存管理机制研究", 《航空计算技术》, vol. 49, no. 3, pages 103 - 105 * |
Also Published As
Publication number | Publication date |
---|---|
CN112527209B (zh) | 2024-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8850105B2 (en) | Method for controlling memory system, information processing apparatus, and storage medium | |
US20120284460A1 (en) | High performance path for command processing | |
CN110673789B (zh) | 固态硬盘的元数据存储管理方法、装置、设备及存储介质 | |
US8825946B2 (en) | Memory system and data writing method | |
US20190035445A1 (en) | Method and Apparatus for Providing Low Latency Solid State Memory Access | |
US10642740B2 (en) | Methods for performing a memory resource retry | |
US10891150B2 (en) | Storage control method and storage controller for user individual service environment | |
US10152278B2 (en) | Logical to physical sector size adapter | |
US10789210B2 (en) | Method, apparatus, and system for data deduplication | |
CN115794682A (zh) | 缓存替换方法及装置、电子设备、存储介质 | |
CN113485834A (zh) | 共享内存管理方法、装置、计算机设备和存储介质 | |
JP5969122B2 (ja) | ホストバスアダプタおよびシステム | |
CN110291507A (zh) | 用于提供对存储器系统的加速访问的方法和装置 | |
EP3249540A1 (en) | Method for writing multiple copies into storage device, and storage device | |
US10628048B2 (en) | Storage control device for controlling write access from host device to memory device | |
US10853247B2 (en) | Device for maintaining data consistency between hardware accelerator and host system and method thereof | |
CN117492661A (zh) | 数据写入方法、介质、装置和计算设备 | |
US20140181161A1 (en) | Method and system for speeding up computer program | |
CN104899158A (zh) | 访存优化方法和装置 | |
JP2021135538A (ja) | ストレージ制御装置及びストレージ制御プログラム | |
US20070079109A1 (en) | Simulation apparatus and simulation method | |
CN112527209A (zh) | 一种数据写入方法、装置、电子设备及存储介质 | |
US11900102B2 (en) | Data storage device firmware updates in composable infrastructure | |
CN108984117B (zh) | 一种数据读写方法、介质及设备 | |
KR20190069134A (ko) | 응용 프로그램간 파일 공유 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |