一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据存储同步方法及装置与流程

2022-06-29 21:29:39 来源:中国专利 TAG:


1.本技术涉及存储领域,特别涉及一种数据存储同步方法及装置。


背景技术:

2.nas(network attached storage,网络附属存储)装置基于标准网络协议实现数据传输,为网络中不同操作系统的计算机提供文件共享和数据备份服务。在云计算及大数据浪潮的推动下,文件传输和文件共享已成为一种重要需求,因此nas需要一个高效、安全、稳定的网络文件传输协议。
3.在实际应用中,在使用网络文件传输协议将数据写入缓存时,该网络文件传输协议至少包括cifs(common internet file system文件共享协议)和nfs(network file system网络文件系统),一般采用异步数据写入操作,即先将数据块写在缓存中,再将这些数据块存储在永久存储介质中,然而在缓存过程中,当nas装置掉电时,也可能就会导致已在缓存中的数据块因未及时保存至长久存储介质中,而造成已存储在缓存但未存储在长久存储介质中的数据丢失的风险。
4.基于上述情况,为了保证数据的安全性,这些网络文件传输协议都会将待要缓存的文件进行同步到长久存储介质的操作,即缓存和长久存储介质中均进行同步存储写入的数据块,以使得数据同步操作可以保证数据的安全性和一致性,但是每一个数据块都需要进行写入长久存储介质操作,在一定程度上会影响到数据写入的性能,造成数据同步写入的性能差。可见,现有技术中虽然能够保证数据的安全性,但是数据同步写入的性能差。


技术实现要素:

5.有鉴于此,本技术提供一种数据存储同步方法及装置,用以在提高数据安全性的基础上,还能提高数据同步写入的性能。
6.具体地,本技术是通过如下技术方案实现的:
7.第一方面,本技术实施例提供了一种数据存储同步方法,应用于电子设备,所述电子设备包括缓存和长久存储介质,该方法包括:
8.针对待写入的每一目标数据块,读取本地已配置的存储参数,若所述存储参数不为第一参数值,所述第一参数值用于表示将数据块写入长久存储介质,则将所述目标数据块写入本地缓存中已创建的与所述目标数据块相关联的目标文件中;
9.在将所述目标数据块写入所述文件之后,识别本地已配置的文件缓存参数,当所述文件缓存参数为第二参数值时,所述第二参数值用于表示文件缓存策略生效,则当依据所述目标数据块确定需将所述目标文件存储在所述长久存储介质时,则将所述目标文件存储在所述长久存储介质。
10.第二方面,本技术实施例提供了一种数据存储同步装置,应用于电子设备,所述电子设备包括缓存和长久存储介质,该装置包括:
11.缓存写入单元,用于针对待写入的每一目标数据块,读取本地已配置的存储参数,
若所述存储参数不为第一参数值,所述第一参数值用于表示将数据块写入长久存储介质,则将所述目标数据块写入本地缓存中已创建的与所述目标数据块相关联的目标文件中;
12.参数识别单元,用于在将所述目标数据块写入所述文件之后,识别本地已配置的文件缓存参数,当所述文件缓存参数为第二参数值时,所述第二参数值用于表示文件缓存策略生效,则触发文件写入单元;
13.文件写入单元,用于当依据所述目标数据块确定需将所述目标文件存储在所述长久存储介质时,则将所述目标文件存储在所述长久存储介质。
[0014][0015]
在本技术技术方案中,电子设备在对目标数据块进行写入时,事先配置了文件缓存策略,以在确定第一参数值未被设置为用于表示表示将数据块写入长久存储介质的情况下,将目标数据块写入本地缓存中已创建的与所述目标数据块相关联的目标文件中,并在确定文件缓存参数为被设置为用于表示预设的文件缓存策略生效,且当依据目标数据块确定需将所述目标文件存储在长久存储介质时,则将目标文件存储在所述长久存储介质。这样,本技术实施例并未如现有技术那样以数据块为单位将每一个写入的数据块频繁地进行数据同步操作,而是在确定需将目标文件存储在所述长久存储介质时,才将数据块以文件为单位进行数据同步操作,既能保证数据的安全性和一致性,又能够避免对数据块进行频繁数据同步操作,进而能够在提高数据安全性的基础上,还能提高数据同步写入的性能。
附图说明
[0016]
图1是本技术实施例的一种数据存储同步方法的流程示意图;
[0017]
图2是本技术实施例的第二种数据存储同步方法的流程示意图;
[0018]
图3是本技术实施例的步骤103中依据目标数据块确定需将目标文件存储在长久存储介质的方法流程示意图;
[0019]
图4是本技术示出的一种电子设备的结构示意图。
具体实施方式
[0020]
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对现有技术方案和本发明实施例中的技术方案作进一步详细的说明。
[0021]
在实际应用中,在使用网络文件传输协议将数据写入存储介质时,一般采用的网络文件传输协议都会将数据直接写入到长久存储介质的操作,以使得数据同步操作可以保证数据的安全性和一致性,但是在对数据进行写入时,都是以数据块为单位,将每一个数据块都要进行写入长久存储介质操作,在一定程度上会影响到数据写入的性能,造成数据写入的性能差。
[0022]
在相关技术中,网络文件传输协议需要依托文件系统将数据写入存储介质,以文件系统zfs为例,zfs设有zfs sync机制,即将每个数据块作为同步对象,数据块大小由设置最小存储单元大小的blocksize指定,默认128kb。当sync参数为用于表示将每个数据块都会进行缓存同步操作的always参数时,将各个数据块直接写入永久存储介质中,以确保数据不会丢失。虽然zfs可以通过修改blocksize指定数据块大小,从而修改每次数据同步操
作的数据量。但是对于一个文件系统而言,只能指定一个数据块大小,但是在实际业务中每个文件的大小不一致,就会存在一个文件执行多次sync操作,不同文件执行不同次数sync操作的情况,可见,在zfs文件系统sync参数为always的情况下,上一层的网络传输协议不管是否设置缓存,都会将每一个数据块进行同步,这在一定程度上还是继续会影响数据写入性能。
[0023]
在另一个相关技术中,以网络文件传输协议为cifs为例,cifs设有cifs sync always机制,即cifs中存在sync always参数,当sync always被设置为yes时,不管底层文件系统的sync参数是否为always,都会通过虚拟文件系统接口来调用底层文件系统的fsync函数进行数据同步,可见,该技术方案也是以数据块为单位做数据同步操作,同样无法兼顾数据的安全性和数据的写入性能。
[0024]
为了解决上述技术问题,本技术实施例提供了一种数据存储同步方法,该方法应用于电子设备,电子设备包括缓存和长久存储介质,针对待写入的每一目标数据块,读取本地已配置的存储参数,若所述存储参数不为第一参数值,所述第一参数值用于表示将数据块写入长久存储介质,则将所述目标数据块写入本地缓存中已创建的与所述目标数据块相关联的目标文件中;在将所述目标数据块写入所述文件之后,识别本地已配置的文件缓存参数,当所述文件缓存参数为第二参数值时,所述第二参数值用于表示文件缓存策略生效,则当依据所述目标数据块确定需将所述目标文件存储在所述长久存储介质时,则将所述目标文件存储在所述长久存储介质。可见,本技术实施例提供的技术方案并未如现有技术那样以数据块为单位将每一个写入的数据块频繁地进行数据同步操作,而是在确定需将目标文件存储在所述长久存储介质时,才将数据块以文件为单位进行数据同步操作,既能保证数据的安全性和一致性,又能够避免对数据块进行频繁数据同步操作,进而能够在保证一定数据安全性的基础上,还能提高数据同步写入的性能。
[0025]
参见图1,为本技术实施例提供的第一种数据存储同步方法的流程图,应用于电子设备,所述电子设备包括缓存和长久存储介质,该方法包括以下步骤:
[0026]
步骤101,针对待写入的每一目标数据块,读取本地已配置的存储参数,若所述存储参数不为第一参数值,则执行步骤102。
[0027]
其中,上述目标数据块可以为当前待要存储的数据块,作为一个实施例,在步骤101之前,还包括:对接收到的目标数据包进行解析,从解析后的数据包获取至少一个目标数据块。
[0028]
本实施例的上述存储参数可以事先被放置在配置文件中,且上述存储参数用于表示是否将数据块直接写入长久存储介质,当存储参数被设置为表示为“是”的用于表示将数据块写入长久存储介质的第一参数值时,则就表示电子设备在写入数据块时,不会对该数据块进行缓存,即不会存储在作为临时存储介质的缓存中,而是直接存储在长久存储介质中。作为一个实施例,该存储参数为第一参数值时,将所述目标数据块写入到所述缓存和所述长久存储介质中。当第一参数被设置为“否”的参数值即不为第一参数值时,则就表示电子设备在写入数据块时,执行步骤102。
[0029]
步骤102,将所述目标数据块写入本地缓存中已创建的与所述目标数据块相关联的目标文件中,在将所述目标数据块写入所述文件之后,识别本地已配置的文件缓存参数,当所述文件缓存参数为第二参数值时,则执行步骤103。
[0030]
本步骤中,将目标数据块写入在缓存上的目标文件中,可以使得目标数据块可以临时存储在缓存中。
[0031]
目标数据块与目标文件是相关联的,在对目标数据块所属源文件的数据块进行写入时,先在缓存中创建与源文件关联的目标文件以及文件句柄,以使得源文件内的数据块能够缓存在与该数据块关联的目标文件中。可以通过文件句柄用来指定上述目标文件,本实施例中文件句柄可以为一个用于记录打开的目标文件的别名,可采用文件句柄对文件进行读写操作,如该文件句柄可以为fd。
[0032]
作为一个实施例,可以本实施例的文件缓存策略可以是以文件为单位使得数据实现同步存储,文件缓存参数是为该文件缓存策略设置的一个开关,即文件缓存参数是被配置的专门用于确定预设的文件缓存策略是否生效的参数,当该文件缓存参数被设置为用于表示文件缓存策略生效的第二参数时,则执行步骤103,当该文件缓存参数被设置为缓存策略生效的参数值时,作为一个实施例,将目标数据块写入缓存上的目标文件中,待目标文件大于系统设定阈值后将该目标文件同步至长久存储介质中。
[0033]
步骤103,当依据所述目标数据块确定需将所述目标文件存储在所述长久存储介质时,则将所述目标文件存储在所述长久存储介质。
[0034]
在本步骤中,当确定目标数据块满足需将目标文件存储在长久存储介质的条件时,将目标文件存储在长久存储介质中。
[0035]
基于图1所示的流程,可以知晓,步骤102中目标数据块暂时在作为临时存储介质的缓存中,之后,又目标文件以文件为单位被存储在长久存储介质中,从而使得数据实现同步操作。
[0036]
图1所示的流程已完成。
[0037]
由此可见,本技术提供的技术方案在对每一个目标数据块进行写入时,事先配置了文件缓存策略,以在确定第一参数值未被设置为用于表示表示将数据块写入长久存储介质的情况下,将目标数据块写入本地缓存中已创建的与所述目标数据块相关联的目标文件中,并在确定文件缓存参数为被设置为用于表示预设的文件缓存策略生效,且当依据目标数据块确定需将所述目标文件存储在长久存储介质时,则将目标文件存储在所述长久存储介质。这样,本技术实施例并未如现有技术那样以数据块为单位将每一个写入的数据块频繁地进行数据同步操作,而是在确定需将目标文件存储在所述长久存储介质时,才将数据块以文件为单位进行数据同步操作,既能保证数据的安全性和一致性,又能够避免对数据块进行频繁数据同步操作,进而能够在提高数据安全性的基础上,还能提高数据同步写入的性能。
[0038]
在图1所示的流程完成之后,作为一种实施例,在步骤103中依据所述目标数据块确定需将所述目标文件存储在所述长久存储介质,包括:
[0039]
判断所述目标数据块是否为该目标数据块所属源文件中的最后一个数据块,如果是,则确定需将所述目标文件存储在所述长久存储介质。
[0040]
本实施例中,数据块在网络传输协议中以数据包的形式传播,基于此,目标数据包被解析之后,还包括目标数据块对应的目标标识,以依据目标标识判断出目标数据块是否为该目标数据块所属源文件中的最后一个数据块,作为一个实施例,从所述目标数据块所属的目标数据包中读取所述目标数据块对应的目标标识,判断所述目标标识是否为表示所
述目标数据块为所述目标数据块所属源文件内的最后一个数据块的标识。
[0041]
目标数据块所属源文件分为两种,一种是已被创建的文件,另一种是新创建的文件,作为一个实施例,当源文件为已被创建的文件时,则确定对对源文件中的数据块进行写入时,则创建目标文件,目标标识为写入目标文件的顺序编号,当目标标识为表示为源文件中写入目标文件的最后一个的顺序编号时,则表示该目标标识对应的目标数据块为源文件内的最后一个数据块。作为另一个实施例,当源文件为新创建的文件时,则确定对源文件中的数据块进行写入时,则创建目标文件,当目标标识为表示关闭源文件的操作标识时,则表示该目标标识对应的目标数据块为源文件内的最后一个数据块。
[0042]
作为另一个实施例,如果目标数据块不为该目标数据块所属源文件中的最后一个数据块,则将待写入的下一个目标数据块作为新的目标数据块,重复执行步骤101~步骤103。
[0043]
作为一个实施例,在步骤103之后,当所述文件缓存参数为用于表示文件缓存策略生效的参数值时,则将下一个目标数据块作为新的目标数据块,重复执行步骤101~步骤103。
[0044]
作为另一个实施例,如图2所示,在步骤103中依据所述目标数据块确定需将所述目标文件存储在所述长久存储介质,包括:
[0045]
步骤1031,判断所述目标文件的大小是否大于或等于设定的文件缓存阈值,如果是,执行步骤1032,如果否,执行步骤1033。
[0046]
本实施例中的文件缓存阈值是事先被设定的阈值,该文件缓存阈值可以根据实际经验获取,如本电子设备在指定时间段内发生故障的故障频率,也可以根据待存储数据的业务类型,对于数据安全性要求较高的数据,则可将文件缓存阈值设置为较大值,反之亦然。
[0047]
步骤1032,确定需将所述目标文件存储在所述长久存储介质。
[0048]
步骤1033,判断所述目标数据块是否为该目标数据块所属源文件中的最后一个数据块,在所述目标数据块是否为该目标数据块所属源文件中的最后一个数据块时,确定需将所述目标文件存储在所述长久存储介质。
[0049]
可见,本实施例如果该目标文件存储的数据块的大小已经大于或等于上述文件缓存阈值,这就表示该目标文件中临时存储的数据块已足够大,为了数据的安全性,以及避免数据块还未被缓存完便因电子设备发生故障导致数据丢失,可以将大些的目标文件同步在长久存储介质中,这样进一步能够兼容数据的同步性能和数据的安全性。如果该目标文件临时存储的数据块的大小还未达到上述文件缓存阈值,这就表示还可以在目标文件中缓存上述数据块,也就是说,可以进一步临时缓存下一目标数据块,以使得目标文件的最后一个目标数据块被缓存,或是,目标文件达到文件缓存阈值时,将目标文件以文件为单位存储在长久存储介质中。
[0050]
为了更加容易理解,现以具体实施例进行详细描述,以网络文件传输协议cifs为例阐述本技术的技术方案,具体为:在cifs已有的smb.conf配置文件中再增加一个文件缓存参数即whole file sync全局参数作为文件缓存策略是否开启的开关,当whole file sync参数被用户设置为文件缓存策略生效,或被设置为文件缓存策略未生效。为了使得数据块能够以文件为单位进行同步存储,则将whole file sync参数设置为文件缓存策略生
效。
[0051]
当写入一个数据块开始时,判断指定参数即sync是否被设置为用于表示将数据块写入长久存储介质的参数值,既sync参数是否为always,如果未被设置为always,则就表示数据块是被先缓存在临时存储介质中。基于此,将待要存储的数据块写入在缓存中的目标文件中,并从配置文件中获取whole file sync参数,确定whole file sync参数是否为用于表示预设的文件缓存策略生效,若是,则在whole file sync参数开启情况下进一步判断目标文件的大小是否大于或等于设定的文件缓存阈值,如果是,确定需将所述目标文件存储在所述长久存储介质,如果否,判断该数据块是否为该数据块所属源文件中的最后一个数据块,在该数据块是否为该数据块所属源文件中的最后一个数据块时,如果该数据块为目标文件中的最后一个数据块,则对该目标文件进行同步长久存储介质操作。
[0052]
与前述数据同步方法的实施例相对应,本技术还提供了一种数据存储同步装置的实施例。
[0053]
参见图3,为本技术示出的一种数据存储同步装置300的实施例框图:如图3所示,该装置应用于电子设备,所述电子设备包括缓存和长久存储介质,该装置包括:
[0054]
缓存写入单元301,用于针对待写入的每一目标数据块,读取本地已配置的存储参数,若所述存储参数不为第一参数值,所述第一参数值用于表示将数据块写入长久存储介质,则将所述目标数据块写入本地缓存中已创建的与所述目标数据块相关联的目标文件中;
[0055]
参数识别单元302,用于在将所述目标数据块写入所述文件之后,识别本地已配置的文件缓存参数,当所述文件缓存参数为第二参数值时,所述第二参数值用于表示文件缓存策略生效,则触发文件写入单元;
[0056]
文件写入单元303,用于当依据所述目标数据块确定需将所述目标文件存储在所述长久存储介质时,则将所述目标文件存储在所述长久存储介质。
[0057]
作为一个实施例,所述文件写入单元,包括:
[0058]
第一判断子单元,用于判断所述目标数据块是否为该目标数据块所属源文件中的最后一个数据块,如果是,确定需将所述目标文件存储在所述长久存储介质;或者,
[0059]
第二判断子单元,用于判断所述目标文件的大小是否大于或等于设定的文件缓存阈值,如果是,确定需将所述目标文件存储在所述长久存储介质,如果否,判断所述目标数据块是否为该目标数据块所属源文件中的最后一个数据块,在所述目标数据块是否为该目标数据块所属源文件中的最后一个数据块时,确定需将所述目标文件存储在所述长久存储介质。
[0060]
作为一个实施例,所述第一判断子单元,具体用于:
[0061]
从所述目标数据块所属的目标数据包中读取所述目标数据块对应的目标标识,判断所述目标标识是否为表示所述目标数据块为所述目标数据块所属源文件内的最后一个数据块的标识。
[0062]
作为一个实施例,该装置还包括:
[0063]
删除单元,用于当满足用于从所述缓存中删除所述目标文件的删除条件时,则从所述缓存中删除所述目标文件,所述删除条件至少包括时间阈值或/和所述缓存大小阈值。
[0064]
作为一个实施例,若所述存储参数为第一参数值,该装置还包括:长久存储单元,
用于将所述目标数据块写入到所述缓存和所述长久存储介质中。
[0065]
由此可见,电子设备在对目标数据块进行写入时,事先配置了文件缓存策略,以在确定第一参数值未被设置为用于表示表示将数据块写入长久存储介质的情况下,将目标数据块写入本地缓存中已创建的与所述目标数据块相关联的目标文件中,并在确定文件缓存参数为被设置为用于表示预设的文件缓存策略生效,且当依据目标数据块确定需将所述目标文件存储在长久存储介质时,则将目标文件存储在所述长久存储介质。这样,本技术实施例并未如现有技术那样以数据块为单位将每一个写入的数据块频繁地进行数据同步操作,而是在确定需将目标文件存储在所述长久存储介质时,才将数据块以文件为单位进行数据同步操作,既能保证数据的安全性和一致性,又能够避免对数据块进行频繁数据同步操作,进而能够在提高数据安全性的基础上,还能提高数据同步写入的性能。
[0066]
本技术数据存储同步装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。
[0067]
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0068]
本技术实施例提供的电子设备,从硬件层面而言,硬件架构示意图可以参见图4所示。包括:机器可读存储介质和处理器,其中:所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现上述示例公开的应用于数据存储同步操作。
[0069]
本技术实施例提供的机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现上述示例公开的应用于数据存储同步操作。
[0070]
这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radom access memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
[0071]
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
[0072]
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本技术时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0073]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机
程序产品的形式。
[0074]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0075]
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
[0076]
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0077]
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本技术方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0078]
以上所述仅为本技术的较佳实施例而已,并不用以限制本技术,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术保护的范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献