CN113961536A - 一种存储装置中动态计算md5值的方法 - Google Patents
一种存储装置中动态计算md5值的方法 Download PDFInfo
- Publication number
- CN113961536A CN113961536A CN202111561608.8A CN202111561608A CN113961536A CN 113961536 A CN113961536 A CN 113961536A CN 202111561608 A CN202111561608 A CN 202111561608A CN 113961536 A CN113961536 A CN 113961536A
- Authority
- CN
- China
- Prior art keywords
- value
- calculation
- storage
- task
- storage object
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
- G06F16/1827—Management specifically adapted to NAS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种存储装置中动态计算MD5值的方法,应用于对象存储S3协议和文件存储NAS协议互通的存储装置中,实现MD5值动态计算。在通过NAS协议上传对象时,即时在线计算MD5值;在通过修改写或追加写方式修改对象时,修改MD5值为临时状态,同时创建计算任务异步计算MD5值,并设置计算任务优先级;后台线程周期性列举计算任务进行计算。在对象频繁修改场景设置计数,在修改对象时,如果之前创建的计算任务未执行则增加计数,避免重复计算;为减少频繁修改对CPU的消耗,设置有效期,如果在有效期内对象发生修改,则只将MD5值修改为临时状态而不进行计算,如果用户在有效期内需要进行MD5值校验,则创建异步计算任务,并提高该计算任务优先级。
Description
技术领域
本发明涉及网络存储技术领域,尤其涉及一种存储装置中动态计算MD5值的方法。
背景技术
网络存储技术是一种数据存储技术,是基于网络的数据存储方式。通过各种网络介质,将存储设备和服务器相连,为应用系统提供可共享、高可扩展性、易于管理的数据存储。
非结构化数据是数据结构不规则或不完整,没有预定义的数据模型的数据。文件存储NAS(Network Attached Storage,网络附加存储)与对象存储是目前主流的非结构化数据存储方法,NAS通过目录和文件夹的分级系统有组织地存储非结构化数据,S3(SimpleStorage Service,简单存储服务)等对象存储则通过元数据表存储非结构化数据的文件名、创建日期等属性以进行数据的检索。随着大数据时代到来,非结构化数据日益增长,一些企业使用数据湖容纳海量的非结构化数据,为满足传统存储和对象存储场景下的访问,需要同时支持S3等对象存储协议和NAS等传统存储协议。
MD5是一种密码算法,通过对对象数据进行散列函数计算产生128位的散列值即MD5值,获取对象时可通过校验MD5值检查文件可靠性,在S3协议中ETAG字段存储MD5值,而在NAS协议中不存在该信息。在同时支持S3协议和NAS协议的存储装置中,在通过NAS上传对象和存储对象修改时,对象的MD5值会发生变化,现有解决方案是在每次修改对象时都在线计算MD5值,比较消耗CPU资源,尤其在对象频繁修改的场景,会对CPU资源造成一定浪费。
发明内容
本发明的目的在于针对现有技术的不足,提供一种存储装置中动态计算MD5值的方法,以解决S3协议和NAS协议互通的存储装置中现有技术计算MD5值CPU消耗高,尤其是在对象频繁修改场景造成CPU资源浪费的问题。
为实现上述目的,本发明采用如下技术方案:一种存储装置中动态计算MD5值的方法,应用于对象存储S3协议和文件存储NAS协议互通的存储装置中,在S3协议和NAS协议互通的存储装置中兼容相互访问,实现存储对象MD5值的动态计算,包括:
存储对象及其元数据持久化至存储装置后,通过S3协议和NAS协议访问同一存储对象及其元数据;
在通过NAS协议上传存储对象时不包括MD5值的信息,在通过NAS协议上传存储对象时,即时在线计算存储对象的MD5值,即在写入数据的过程中进行计算;完成在线计算存储对象的MD5值后,更新存储对象的元数据中ETAG值信息,将更新后的元数据持久化至存储装置,实现通过S3协议能够正常访问存储对象,获取存储对象的ETAG值信息;S3协议的ETAG字段对应存储对象的MD5值;
存储对象的元数据中的ETAG值即MD5值是根据存储对象的内容进行计算得到的,在对象频繁修改写或追加写时,即时在线计算存储对象的MD5值的方式会消耗大量CPU资源,因此构建临时状态和异步计算任务执行机制;
在通过NAS协议修改写或通过S3协议追加写方式修改存储对象时,存储对象的MD5值会发生改变,根据一定的规则修改当前MD5值为无效的临时状态(例如MD5值后加“-temp”),并设置S3协议访问存储对象时无需再进行MD5值校验,创建一个计算任务异步计算存储对象的MD5值信息,并设置计算任务优先级;
后台线程根据任务优先级周期性列举计算任务进行MD5值计算,计算完成后更新存储对象的MD5值。
进一步地,在存储对象频繁修改的场景设置计数,如果本次修改之前已创建计算任务但尚未执行,则增加计数,不再创建任务,避免重复计算,计数信息作为该存储对象已创建计算任务优先级的依据。
进一步地,在存储对象频繁修改的场景,设置存储对象的MD5值有效期,如果在有效期内存储对象发生修改,则只将MD5值修改为无效的临时状态,不创建MD5值计算任务,减少CPU消耗,此时用户获取存储对象无法进行MD5值校验,如果用户需要进行MD5值校验,则创建一个异步计算任务计算MD5值,并提高该计算任务的优先级。
进一步地,后台线程执行计算任务时,通过控制模块根据CPU繁忙程度自适应控制后台计算任务并发数,控制CPU消耗。
进一步地,通过异步计算模块周期性列举计算任务,根据计算任务的优先级顺序分配线程,并发计算MD5值,同时每个线程可创建协程以提高计算效率。
进一步地,针对不同的场景灵活设置计算任务优先级,包括:根据存储对象重要程度设置优先级、根据存储对象修改频率设置优先级、根据存储对象大小设置优先级。
本发明的有益效果如下:
1.在S3协议和NAS协议互通的存储装置中,对象发生修改时,修改当前MD5值为无效的临时状态,创建一个计算任务异步计算对象的MD5值信息,后台线程周期性列举计算任务,根据任务优先级顺序分配线程执行计算任务,并通过控制模块根据CPU繁忙程度,自适应控制后台计算任务的并发数,较以往每次修改对象时都在线计算MD5值的方法相比,该方法可以根据CPU繁忙程度和任务优先级,灵活调整CPU消耗,提高CPU利用率。
2.在对象频繁修改的场景,若本次对象修改之前存在未执行的计算任务,则增加计数,避免重复执行造成的CPU资源浪费。
3.在对象频繁修改的场景,设置MD5值有效期,对象在有效期内发生修改,只将MD5值修改为无效的临时状态,如果在有效期内用户需要进行MD5值校验,再生成高优先级计算任务进行计算,较以往每次修改都计算MD5值的方法相比,该方法可以减少频繁修改场景下CPU的消耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的动态计算MD5值的方法流程图。
图2为后台MD5值计算任务的计算方法流程图。
图3为对象频繁修改场景设置有效期的方法流程图。
图4为用户在对象频繁修改场景获取对象的方法流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
本申请提出了一种存储装置中动态计算MD5值的方法,该方法包括:
如图1所示,在S3协议和NAS协议互通的存储装置中,通过NAS和S3都可以读取和修改对象;
存储对象及其元数据持久化至存储装置后,通过S3协议和NAS协议访问同一存储对象及其元数据;
在通过NAS协议上传存储对象时,即时在线计算对象的MD5值,即在写入数据的过程中进行计算;完成在线计算存储对象的MD5值后,更新存储对象的元数据中ETAG值信息,将更新后的元数据持久化至存储装置,实现通过S3协议能够正常访问存储对象,获取存储对象的ETAG值信息;S3协议的ETAG字段对应存储对象的MD5值;
在通过NAS协议修改写或通过S3协议追加写方式修改对象时,对象的MD5值会发生改变,根据一定的规则修改当前MD5值为无效的临时状态,并设置S3协议访问存储对象时无需再进行MD5值校验,创建一个计算任务异步计算对象的MD5值信息,并设置计算任务优先级,计算完成后更新对象的MD5值。
如图2所示,异步计算模块周期性列举计算任务,根据计算任务的优先级顺序分配线程,通过执行模块并发计算MD5值,控制模块可根据CPU繁忙程度,控制线程并发数,同时每个线程可创建协程以提高计算效率。
在对象频繁修改的场景设置计数,如果本次修改之前已创建计算任务但尚未执行,则增加计数,不再创建任务,避免重复计算,计数信息作为该对象已创建计算任务优先级的依据。
如图3所示,在对象频繁修改的场景,设置MD5值有效期,对象发生修改时,先判断是否在有效期内,如果在有效期内,则不进行MD5值计算,如果不在有效期内,则创建异步计算任务。
如图4所示,当用户在有效期内获取对象时,需判断用户是否进行MD5值校验,如果不需要进行MD5值校验,则直接返回MD5值为临时状态的对象,如果需要进行MD5值校验,则创建一个高优先级的异步计算任务,计算完成后更新对象的MD5值,返回MD5值正确的对象。
本发明通过在不同场景动态计算MD5值,当存储对象修改时,不在线计算存储对象的MD5值,而是创建异步的计算任务,根据任务优先级顺序计算存储对象的MD5值,并通过控制模块根据CPU繁忙程度自适应控制线程并发数,提高CPU利用率。
在一个具体应用中,MD5值计算策略如下:
存储对象及其元数据持久化至存储装置后,通过S3协议和NAS协议访问同一存储对象及其元数据。
用户上传文件“1.txt”,如果通过S3协议上传,对象的元数据表中ETAG值即为MD5值,如果通过NAS协议上传,不包含MD5值信息,则即时在线计算MD5值。
用户通过S3协议或NAS协议修改文件“1.txt”,对象的MD5值发生修改,假设修改前对象的MD5值为“5d0ce5f08452eb2caa80b2e5936e9854”,则将对象的MD5值根据一定规则修改为无效的临时状态,例如在原有MD5值的末尾添加“-temp”,修改后MD5值为:“5d0ce5f08452eb2caa80b2e5936e9854-temp”,并创建计算任务异步计算对象的MD5值,此时如果用户通过S3协议访问对象,发现ETAG值后缀为“-temp”,则不进行MD5值校验。
“1.txt”、“2.txt”等不同文件的修改对应不同的计算任务,计算任务根据一定策略进行优先级划分,可设置多层优先级,如第一优先级、第二优先级、第三优先级等,异步计算模块从高优先级到低优先级顺序执行计算任务,为提高计算速度,多线程并发执行计算任务,每个计算任务对应一个线程,同时每个线程可创建协程提高并发度,进一步提高计算速度,控制模块可根据CPU繁忙程度自适应调整并发线程和协程数。
在“1.txt”频繁修改的场景,设置计数count,修改文件“1.txt”时如果存在已创建但尚未执行的计算“1.txt”的MD5值的任务,则不创建新的计算任务,增加计数count的值,避免重复计算,计数信息作为文件“1.txt”已创建计算任务优先级的依据。
在“1.txt”频繁修改的场景,还可以设置有效期,例如:设置有效期为10分钟,“1.txt”的MD5值为“5d0ce5f08452eb2caa80b2e5936e9854”,如果在10分钟内“1.txt”发生修改,则修改MD5值为“5d0ce5f08452eb2caa80b2e5936e9854-temp”,并设置MD5值无效,不创建计算任务进行MD5值的计算。如果用户在有效期内获取“1.txt”,且此时MD5值无效,则不能进行MD5值校验,此时如果用户需要进行MD5值校验,则产生一个高优先级任务计算“1.txt”的MD5值。
以上所述仅是本发明的优选实施方式,虽然本发明已以较佳实施例披露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何的简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
Claims (7)
1.一种存储装置中动态计算MD5值的方法,其特征在于,应用于对象存储S3协议和文件存储NAS协议互通的存储装置中,包括:
存储对象及其元数据持久化至所述存储装置后,通过S3协议和NAS协议访问同一存储对象及其元数据;
在通过NAS协议上传存储对象时,即时在线计算存储对象的MD5值,计算完成后更新存储对象的元数据中ETAG值信息,将更新后的元数据持久化至所述存储装置;
在通过NAS协议修改写或通过S3协议追加写方式修改存储对象时,修改当前MD5值为无效的临时状态,并设置S3协议访问存储对象时无需再进行MD5值校验,创建计算任务异步计算存储对象的MD5值,并设置计算任务优先级;
后台线程根据任务优先级周期性列举计算任务进行MD5值计算,计算完成后更新存储对象的MD5值。
2.根据权利要求1所述的方法,其特征在于,在存储对象频繁修改的场景设置计数,如果本次修改之前已创建计算任务但尚未执行,则增加计数,不再创建计算任务,计数信息作为存储对象已创建计算任务优先级的依据。
3.根据权利要求1所述的方法,其特征在于,在存储对象频繁修改的场景,设置存储对象的MD5值有效期,如果在有效期内存储对象发生修改,则将MD5值修改为无效的临时状态,不创建计算任务,此时如果用户需要进行MD5值校验,则创建计算任务异步计算MD5值,并提高计算任务的优先级。
4.根据权利要求1所述的方法,其特征在于,后台线程执行计算任务时,通过控制模块根据CPU繁忙程度自适应控制后台计算任务并发数。
5.根据权利要求1所述的方法,其特征在于,通过异步计算模块周期性列举计算任务,根据计算任务的优先级顺序分配线程,并发计算MD5值。
6.根据权利要求5所述的方法,其特征在于,每个计算任务对应一个线程,同时每个线程创建协程提高并发度。
7.根据权利要求1所述的方法,其特征在于,针对不同的场景灵活设置计算任务优先级,包括:根据存储对象重要程度设置优先级、根据存储对象修改频率设置优先级、根据存储对象大小设置优先级。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111561608.8A CN113961536B (zh) | 2021-12-20 | 2021-12-20 | 一种存储装置中动态计算md5值的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111561608.8A CN113961536B (zh) | 2021-12-20 | 2021-12-20 | 一种存储装置中动态计算md5值的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113961536A true CN113961536A (zh) | 2022-01-21 |
CN113961536B CN113961536B (zh) | 2022-04-05 |
Family
ID=79473365
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111561608.8A Active CN113961536B (zh) | 2021-12-20 | 2021-12-20 | 一种存储装置中动态计算md5值的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113961536B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020156786A1 (en) * | 2001-04-24 | 2002-10-24 | Discreet Logic Inc. | Asynchronous database updates |
CN101119269A (zh) * | 2006-08-01 | 2008-02-06 | 华为技术有限公司 | 无线核心网传送互通业务的方法及互通功能单元 |
WO2018037464A1 (ja) * | 2016-08-22 | 2018-03-01 | 株式会社エーピーコミュニケーションズ | ストレージシステム、ストレージ通信装置、ダウンロード方法、及びコンピュータプログラム |
CN111274616A (zh) * | 2020-01-16 | 2020-06-12 | 上海德拓信息技术股份有限公司 | 基于Ceph对象存储整体上传分段校验的实现方法 |
US20200372040A1 (en) * | 2017-12-22 | 2020-11-26 | Scripps Networks Interactive, Inc. | Cloud hybrid application storage management (chasm) system |
-
2021
- 2021-12-20 CN CN202111561608.8A patent/CN113961536B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020156786A1 (en) * | 2001-04-24 | 2002-10-24 | Discreet Logic Inc. | Asynchronous database updates |
CN101119269A (zh) * | 2006-08-01 | 2008-02-06 | 华为技术有限公司 | 无线核心网传送互通业务的方法及互通功能单元 |
WO2018037464A1 (ja) * | 2016-08-22 | 2018-03-01 | 株式会社エーピーコミュニケーションズ | ストレージシステム、ストレージ通信装置、ダウンロード方法、及びコンピュータプログラム |
US20200372040A1 (en) * | 2017-12-22 | 2020-11-26 | Scripps Networks Interactive, Inc. | Cloud hybrid application storage management (chasm) system |
CN111274616A (zh) * | 2020-01-16 | 2020-06-12 | 上海德拓信息技术股份有限公司 | 基于Ceph对象存储整体上传分段校验的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113961536B (zh) | 2022-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6139773B2 (ja) | 複製書き込みのためのトークンベースの承認制御 | |
US10275489B1 (en) | Binary encoding-based optimizations at datastore accelerators | |
US11847098B2 (en) | Metadata control in a load-balanced distributed storage system | |
CN102541984B (zh) | 一种分布式文件系统客户端的文件系统的实现方法 | |
CN109240946A (zh) | 数据的多级缓存方法及终端设备 | |
EP3262512B1 (en) | Application cache replication to secondary application(s) | |
US11922537B2 (en) | Resiliency schemes for distributed storage systems | |
JP2012118987A (ja) | メモリ使用量照会ガバナのためのコンピュータ実装方法、コンピュータ・プログラム、およびシステム(メモリ使用量照会ガバナ) | |
EP3951607A1 (en) | Data reading method, data writing method, and server | |
US20120224482A1 (en) | Credit feedback system for parallel data flow control | |
CN102857578A (zh) | 一种网络硬盘的文件上传方法、系统及网盘客户端 | |
CN111737168A (zh) | 一种缓存系统、缓存处理方法、装置、设备及介质 | |
US10082978B2 (en) | Distributed shared log storage system having an adapter for heterogenous big data workloads | |
CN108933813B (zh) | 防止读取器饥饿的方法、系统和存储介质 | |
US11431647B2 (en) | Resource allocation using distributed segment processing credits | |
CN113961536B (zh) | 一种存储装置中动态计算md5值的方法 | |
US10630602B1 (en) | Resource allocation using restore credits | |
WO2018196459A1 (zh) | 一种下载请求处理方法、装置、处理设备及介质 | |
CN114741165A (zh) | 数据处理平台的处理方法、计算机设备及存储装置 | |
US11409796B1 (en) | Generational databases for managing time series data | |
CN111427920A (zh) | 数据采集方法、装置、系统、计算机设备及存储介质 | |
CN110457392B (zh) | 副本读写方法及装置 | |
CN114040346B (zh) | 一种基于5g网络的档案数字化信息管理系统与管理方法 | |
US20210029213A1 (en) | Clustered Coherent Cloud Read Cache Without Coherency Messaging | |
Chiu et al. | Analyzing Costs and Optimizations for an Elastic Key-Value Store on Amazon Web Services. |
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 | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220607 Address after: No. 1788, Hongning Road, Xiaoshan District, Hangzhou, Zhejiang 311200 Patentee after: CHINA ZHESHANG BANK Co.,Ltd. Patentee after: Yiqiyin (Hangzhou) Technology Co., Ltd Address before: No. 1788, Hongning Road, Xiaoshan District, Hangzhou, Zhejiang 311200 Patentee before: CHINA ZHESHANG BANK Co.,Ltd. |
|
TR01 | Transfer of patent right |