CN112114738A - 一种存储数据的方法及存储设备 - Google Patents
一种存储数据的方法及存储设备 Download PDFInfo
- Publication number
- CN112114738A CN112114738A CN201910539395.5A CN201910539395A CN112114738A CN 112114738 A CN112114738 A CN 112114738A CN 201910539395 A CN201910539395 A CN 201910539395A CN 112114738 A CN112114738 A CN 112114738A
- Authority
- CN
- China
- Prior art keywords
- data
- stored
- distributed cache
- cache server
- data file
- 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 31
- 238000013500 data storage Methods 0.000 title description 2
- 238000013507 mapping Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0656—Data buffering arrangements
-
- 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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请是关于一种存储数据的方法及存储设备,属于存储领域。所述存储设备包括:处理器和NVM,所述处理器用于生成分布式缓存服务端;所述NVM包括至少一个数据文件,在所述分布式缓存服务端的用户地址空间为每个数据文件包括的地址映射出对应的虚拟地址以供所述分布式缓存服务端访问;所述分布式缓存服务端接收待存储数据和所述待存储数据的数据标识;在目标数据文件中分配用于存储所述待存储数据的目标空间的起始虚拟地址,所述目标数据文件是所述NVM中的一个数据文件,所述目标数据文件的空闲空间大小大于或等于所述待存储数据的数据量;根据所述起始虚拟地址将所述待存储数据保存到所述目标空间中。本申请可以避免数据丢失现象发生。
Description
技术领域
本申请涉及存储领域,特别涉及一种存储数据的方法及存储设备。
背景技术
传统的分布式缓存系统将所有的数据先缓存到内存中,例如传统的分布式缓存系统可以为Memcache,Memcache是一种高速分布式内存缓存系统。Memcache包括多个存储服务器,每个存储服务器中包括内存和磁盘。
对于每个存储服务器,该存储服务器运行有分布式缓存服务端。该分布式缓存服务端接收到待存储数据,在内存中有足够的空闲空间保存待存储数据时,将待存储数据保存在内存中;在内存中没有足够的空闲空间保存待存储数据时,内存保存的部分数据移动到磁盘中,释放该部分数据占用的内存空间,将待存储数据保存到内存中。
发明人在实现本申请的过程中,发现上述方式至少存在如下缺陷:
存储服务器的内存是易失性存储器,在存储服务器掉电或分布式缓存服务端运行卡死时,内存中的数据就会丢失,即发生了数据丢失现象。
发明内容
本申请实施例提供了一种存储数据的方法及存储设备,以避免数据丢失现象发生。所述技术方案如下:
一方面,本申请提供一种存储设备,所述存储设备包括:
处理器和非易失性内存NVM,所述NVM保存有分布式缓存程序,所述处理器用于运行所述分布式缓存程序以生成分布式缓存服务端;所述NVM包括至少一个数据文件,在所述分布式缓存服务端的用户地址空间为每个数据文件包括的地址映射出对应的虚拟地址以供所述分布式缓存服务端访问;
所述分布式缓存服务端,用于接收存储请求,所述存储请求包括待存储数据和所述待存储数据的数据标识;
所述分布式缓存服务端,还用于在目标数据文件中分配用于存储所述待存储数据的目标空间的起始虚拟地址,所述目标数据文件是所述NVM中的一个数据文件,所述目标数据文件的空闲空间大小大于或等于所述待存储数据的数据量;
所述分布式缓存服务端,还用于根据所述起始虚拟地址将所述待存储数据保存到所述目标空间中。
可选的,所述分布式缓存服务端,用于查询所述NVM中的每个数据文件中的空闲空间大小,从空闲空间大小大于或等于所述待存储数据的数据量的数据文件中选择一个数据文件作为目标数据文件。
可选的,所述分布式缓存服务端,还用于在所述每个数据文件中的空闲空间大小小于所述待存储数据的数据量时,在所述NVM中创建数据文件,在所述分布式缓存服务端的用户地址空间中为所述创建的数据文件包括的地址映射出对应的虚拟地址;
所述分布式缓存服务端,还用于在所述创建的数据文件中分配用于存储所述待存储数据的目标空间的起始虚拟地址。
可选的,所述分布式缓存服务端,还用于将所述待存储数据的数据标识和所述目标空间的起始虚拟地址之间的对应关系保存到所述NVM中的地址关系表中。
可选的,所述分布式缓存服务端,用于接收读取请求,所述读取请求包括待读取数据的数据标识和数据量;
所述分布式缓存服务端,还用于根据所述待读取数据的数据标识从所述地址关系表中获取对应的起始虚拟地址,根据所述起始虚拟地址和所述数据量在所述NVM中读取所述待读取数据;
所述分布式缓存服务端,还用于发送所述待读取数据。
另一方面,本申请提供了一种存储数据的方法,其特征在于,所述方法应用于如权利要求1至5任一项所述的存储设备,所述存储设备的非易失性内存NVM包括至少一个数据文件,在所述分布式缓存服务端的用户地址空间为每个数据文件包括的地址映射出对应的虚拟地址以供所述分布式缓存服务端访问,所述方法包括:
所述分布式缓存服务端接收存储请求,所述存储请求包括待存储数据和所述待存储数据的数据标识;
所述分布式缓存服务端在目标数据文件中分配用于存储所述待存储数据的目标空间的起始虚拟地址,所述目标数据文件是所述NVM中的一个数据文件,所述目标数据文件的空闲空间大小大于或等于所述待存储数据的数据量;
所述分布式缓存服务端根据所述起始虚拟地址将所述待存储数据保存到所述目标空间中。
可选的,所述在目标数据文件中分配用于存储所述待存储数据的目标空间之前,还包括:
查询所述NVM中的每个数据文件中的空闲空间大小;
从空闲空间大小大于或等于所述待存储数据的数据量的数据文件中选择一个数据文件作为目标数据文件。
可选的,所述方法还包括:
在所述每个数据文件中的空闲空间大小小于所述待存储数据的数据量时,在所述NVM中创建数据文件,在所述分布式缓存服务端的用户地址空间中为所述创建的数据文件包括的地址映射出对应的虚拟地址;
在所述创建的数据文件中分配用于存储所述待存储数据的目标空间的起始虚拟地址。
可选的,所述将所述待存储数据保存到所述目标空间中之后,还包括:
将所述待存储数据的数据标识和所述目标空间的起始虚拟地址之间的对应关系保存到所述NVM中的地址关系表中。
可选的,所述方法还包括:
接收读取请求,所述读取请求包括待读取数据的数据标识和数据量;
根据所述待读取数据的数据标识从所述地址关系表中获取对应的起始虚拟地址,根据所述起始虚拟地址和所述数据量在所述NVM中读取所述待读取数据;
发送所述待读取数据。
另一方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质为NVM,所述NVM内存储有计算机程序,所述计算机程序被处理器执行时实现如另一方面或第另一方面中的任一种可选的方法步骤。
本申请实施例提供的技术方案可以包括以下有益效果:
由于NVM是非易失性存储器,在存储设备掉电或分布式缓存服务端运行卡死的情况下,NVM中保存的数据不会丢失,所以分布式缓存服务端将待存储数据存储在NVM中的数据文件中,可以避免数据丢失的现象发生。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是本申请实施例提供的一种存储设备的结构示意图;
图2是本申请实施例提供的一种系统架构示意图;
图3是本申请实施例提供的一种存储数据的方法流程图;
图4是本申请实施例提供的一种读取数据的方法流程图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
参见图1,本申请实施例提供了一种存储设备,所述存储设备包括:
处理器1和非易失性内存(non-volatile memory,NVM)2,NVM2保存有分布式缓存程序(memcahe),处理器1用于运行分布式缓存程序以生成分布式缓存服务端11;NVM2包括至少一个数据文件21,在分布式缓存服务端11的用户地址空间为每个数据文件21包括的地址映射出对应的虚拟地址以供分布式缓存服务端11使用。
每个数据文件是NVM中的大小为预设数值的空间。用户地址空间是分布式缓存服务端11中的虚拟空间,对于每个数据文件21,将该数据文件21包括的地址映射到分布式缓存服务端11的用户地址空间中的虚拟地址。这样分布式缓存服务端11可以将用户地址空间作为内存,以内存的形式访问用户地址空间,这样不需要对分布式缓存服务端11的原有逻辑进行修改。
而用户地址空间包括的地址均为虚拟地址,每个虚拟地址对应一个数据文件中的一个地址,所以分布式缓存服务端11对用户地址空间包括的虚拟地址进行访问最终变为对该虚拟地址对应的数据文件中的地址进行访问。所以访问用户地址空间实质是访问NVM2中的每个数据文件21。因此对于每个数据文件21,该数据文件21映射到分布式缓存服务端11的用户地址空间后,分布式缓存服务端11将该数据文件21作为一段内存空间,并以访问内存的方式来访问该数据文件21。因此将NVM2包括每个数据文件21映射到分布式缓存服务端11的用户地址空间后,分布式缓存服务端11可以将每个数据文件21组成一个内存,并以访问内存的方式来访问每个数据文件21。
参见图2,该存储设备用于存储来自应用服务的数据,该应用服务可以运行在用户的终端或服务器上,应用服务运行的过程中可以产生待存储数据,该应用服务所在的终端或服务器向存储设备发送存储请求,该存储请求包括待存储数据和待存储数据的数据标识,以请求存储设备保存待存储数据。
处理器1生成的分布式缓存服务端11,可以用于接收存储请求,该存储请求包括待存储数据和待存储数据的数据标识;
分布式缓存服务端11,还用于在目标数据文件中分配用于存储待存储数据的目标空间的起始虚拟地址,目标数据文件是NVM2中的一个数据文件21,目标数据文件的空间大小大于或等于待存储数据的数据量;
分布式缓存服务端11,还用于根据该起始虚拟地址将待存储数据保存到目标空间中。
由于NVM2是非易失性存储器,在存储设备掉电或分布式缓存服务端运行卡死的情况下,NVM2中保存的数据不会丢失,从而可以避免数据丢失的现象发生。
分布式缓存服务端11,还用于在接收到存储请求时,查询NVM2中的每个数据文件21中的空闲空间大小,从空闲空间大小大于或等于待存储数据的数据量的数据文件21中选择一个数据文件21作为目标数据文件。然后,分布式缓存服务端11在目标数据文件中分配用于存储待存储数据的目标空间的起始虚拟地址。
由于用户地址空间中的每个虚拟地址是分布式缓存服务端11通过对数据文件中的地址进行映射得到的,所以分布式缓存服务器11知道每个数据文件在用户地址空间中对应的虚拟地址范围。分布式缓存服务端11查询NVM2中的某个数据文件21实质查询该数据文件21对应的虚拟地址范围中的空闲虚拟地址,由查出的空闲虚拟地址组成空闲空间,从而得到该数据文件21中的空闲空间大小。
分布式缓存服务端11在查询出NVM2中的每个数据文件21中的空闲空间大小均小于待存储数据的数据量,此时分布式缓存服务端11需要在NVM2的空间的空间中创建一个大小预设数值的数据文件。实现过程如下:
分布式缓存服务端11,还用于在每个数据文件21中的空闲空间大小小于待存储数据的数据量时,在NVM2中创建数据文件,在分布式缓存服务端11的用户地址空间中为创建的数据文件包括的地址映射出对应的虚拟地址;
分布式缓存服务端11,还用于在创建的数据文件中分配用于存储待存储数据的目标空间的起始虚拟地址。
分布式缓存服务端11创建数据文件是指在NVM2的空闲空间中分配大小为预设数值的空间,将此空间设置文件格式,从而实现创建数据文件。
然后,分布式缓存服务端11在用户地址空间中为该数据文件中的每个地址映射出对应的虚拟地址,从而实现将该数据文件映射在到用户地址空间中,这样分布式缓存服务端11将该数据文件作为内存的一部分,便可以以访问内存的方式访问该数据文件。
可选的,NVM2中保存有地址关系表,该地址关系表用于保存数据标识与起始虚拟地址的对应关系。
分布式缓存服务端11在将待存储数据保存到目标空间后,还用于将待存储数据的数据标识和目标空间的起始虚拟地址之间的对应关系保存到NVM2中的地址关系表中。
参见图2,该存储设备中保存的数据还可以被应用服务读取,应用服务需要读取数据时,该应用服务所在的终端或服务器向存储设备发送读取请求,该读取请求包括待读取数据的数据标识和数据量,以请求从存储设备中读取待读取数据。
分布式缓存服务端11,用于接收该读取请求,该读取请求包括待读取数据的数据标识和数据量;
分布式缓存服务端11,还用于根据待读取数据的数据标识从NVM2中保存的地址关系表中获取对应的起始虚拟地址,根据获取的起始虚拟地址和该数据量在NVM2中读取待读取数据;
分布式缓存服务端11,还用于向该应用服务所在的终端或服务器发送待读取数据。
在本申请实施例中,由于NVM是非易失性存储器,在存储设备掉电或分布式缓存服务端运行卡死的情况下,NVM中保存的数据不会丢失。这样分布缓存服务端在接收到待存储数据时,将待存储数据保存到位于NVM的一个数据文件中,从而可以避免待存储数据发生丢失现象。
参见图3,本申请实施例提供了一种存储数据的方法,该方法应用于图1所示的存储设备中,该方法包括:
步骤101:分布式缓存服务端接收存储请求,该存储请求包括待存储数据和待存储数据的数据标识。
应用服务运行在用户的终端或服务器上,应用服务运行的过程中可以产生待存储数据,该应用服务所在的终端或服务器向存储设备发送存储请求,该存储请求包括待存储数据和待存储数据的数据标识,位于存储设备中的分布式缓存服务端接收该存储请求。
步骤102:分布式缓存服务端在目标数据文件中分配用于存储待存储数据的目标空间的起始虚拟地址,目标数据文件是NVM中的一个数据文件,目标数据文件的空间大小大于或等于待存储数据的数据量。
本步骤可以通过如下1021至102的操作来实现,该1021至1025的操作分别为:
1021:分布式缓存服务端查询NVM中的每个数据文件中的空闲空间大小,将每个数据文件中的空闲空间大小与待存储数据的数据量进行比较。
由于用户地址空间中的每个虚拟地址是分布式缓存服务端通过对数据文件中的地址进行映射得到的,所以分布式缓存服务器知道每个数据文件在用户地址空间中对应的虚拟地址范围。分布式缓存服务端查询数据文件对应的虚拟地址范围中的空闲虚拟地址,由查出的空闲虚拟地址组成空闲空间,从而得到该数据文件中的空闲空间大小。
1022:在比较出NVM中存在数据文件中的空闲空间大小大于或等于待存储数据的数据量时,分布式缓存服务端从空闲空间大小大于或等于待存储数据的数据量的数据文件中选择一个数据文件作为目标数据文件。
1023:分布式缓存服务端在目标数据文件中分配用于存储待存储数据的目标空间的起始虚拟地址,目标空间的大小等于待存储数据的数据量,结束返回。
1024:在比较出NVM中的每个数据文件中的空闲空间大小均小于待存储数据的数据量时,分布式缓存服务端在NVM中创建数据文件,将创建的数据文件映射在到分布缓存服务器端的用户地址空间中。
分布式缓存服务端创建数据文件是指在NVM的空闲空间中分配大小为预设数值的空间,将此空间设置文件格式,从而实现创建数据文件。
然后,分布式缓存服务端在用户地址空间中为该数据文件中的每个地址映射出对应的虚拟地址,从而实现将该数据文件映射在到用户地址空间中,这样分布式缓存服务端将该数据文件作为内存的一部分,便可以以访问内存的方式访问该数据文件。
1025:分布式缓存服务端在创建的数据文件中分配用于存储待存储数据的目标空间的起始虚拟地址,目标空间的大小等于待存储数据的数据量,结束返回。
步骤103:分布式缓存服务端根据该起始虚拟地址将待存储数据保存到目标空间中。
可选的,NVM中保存有地址关系表,该地址关系表用于保存数据标识与内存地址的对应关系。
分布式缓存服务端在将待存储数据保存到目标空间后,还将待存储数据的数据标识和目标空间的内存地址之间的对应关系保存到NVM中的地址关系表中。
参见图2,应用服务需要读取数据时,该应用服务所在的终端或服务器向存储设备发送读取请求,该读取请求包括待读取数据的数据标识和数据量,存储设备中的分布式缓存服务端接收该读取请求,可以按如下201至203的步骤读取待读取数据。参见图4,该201至203的步骤可以为:
步骤201:分布式缓存服务端接收该读取请求,该读取请求包括待读取数据的数据标识和数据量。
步骤202:分布式缓存服务端根据待读取数据的数据标识从NVM中保存的地址关系表中获取对应的起始虚拟地址,根据获取的起始虚拟地址和该数据量在NVM中读取待读取数据。
起始虚拟地址对应一数据文件中的址址,分布式缓存系统根据该起始虚拟地址读取数据时,会读取到该起始虚拟地址在该数据文件中对应的地址,从该地址开始读取与该数据量相等的待取数据。
步骤203:分布式缓存服务端向该应用服务所在的终端或服务器发送待读取数据。
在本申请实施例中,分布式缓存服务端在接收到待存储数据时,将待存储数据保存在NVM的数据文件中。由于NVM是非易失性存储器,在存储设备掉电或分布式缓存服务端运行卡死的情况下,NVM中保存的数据不会丢失。这样分布缓存服务端将待存储数据保存到位于NVM的一个数据文件中,从而可以避免待存储数据发生丢失现象。
本领域技术人员在考虑说明书及实践这里公开的申请后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (10)
1.一种存储设备,其特征在于,所述存储设备包括:
处理器和非易失性内存NVM,所述NVM保存有分布式缓存程序,所述处理器用于运行所述分布式缓存程序以生成分布式缓存服务端;所述NVM包括至少一个数据文件,在所述分布式缓存服务端的用户地址空间为每个数据文件包括的地址映射出对应的虚拟地址以供所述分布式缓存服务端访问;
所述分布式缓存服务端,用于接收存储请求,所述存储请求包括待存储数据和所述待存储数据的数据标识;
所述分布式缓存服务端,还用于在目标数据文件中分配用于存储所述待存储数据的目标空间的起始虚拟地址,所述目标数据文件是所述NVM中的一个数据文件,所述目标数据文件的空闲空间大小大于或等于所述待存储数据的数据量;
所述分布式缓存服务端,还用于根据所述起始虚拟地址将所述待存储数据保存到所述目标空间中。
2.如权利要求1所述的存储设备,其特征在于,
所述分布式缓存服务端,用于查询所述NVM中的每个数据文件中的空闲空间大小,从空闲空间大小大于或等于所述待存储数据的数据量的数据文件中选择一个数据文件作为目标数据文件。
3.如权利要求2所述的存储设备,其特征在于,
所述分布式缓存服务端,还用于在所述每个数据文件中的空闲空间大小小于所述待存储数据的数据量时,在所述NVM中创建数据文件,在所述分布式缓存服务端的用户地址空间中为所述创建的数据文件包括的地址映射出对应的虚拟地址;
所述分布式缓存服务端,还用于在所述创建的数据文件中分配用于存储所述待存储数据的目标空间的起始虚拟地址。
4.如权利要求1至3任一项所述的存储设备,其特征在于,
所述分布式缓存服务端,还用于将所述待存储数据的数据标识和所述目标空间的起始虚拟地址之间的对应关系保存到所述NVM中的地址关系表中。
5.如权利要求4所述的存储设备,其特征在于,
所述分布式缓存服务端,用于接收读取请求,所述读取请求包括待读取数据的数据标识和数据量;
所述分布式缓存服务端,还用于根据所述待读取数据的数据标识从所述地址关系表中获取对应的起始虚拟地址,根据所述起始虚拟地址和所述数据量在所述NVM中读取所述待读取数据;
所述分布式缓存服务端,还用于发送所述待读取数据。
6.一种存储数据的方法,其特征在于,所述方法应用于如权利要求1至5任一项所述的存储设备,所述存储设备的非易失性内存NVM包括至少一个数据文件,在所述分布式缓存服务端的用户地址空间为每个数据文件包括的地址映射出对应的虚拟地址以供所述分布式缓存服务端访问,所述方法包括:
所述分布式缓存服务端接收存储请求,所述存储请求包括待存储数据和所述待存储数据的数据标识;
所述分布式缓存服务端在目标数据文件中分配用于存储所述待存储数据的目标空间的起始虚拟地址,所述目标数据文件是所述NVM中的一个数据文件,所述目标数据文件的空闲空间大小大于或等于所述待存储数据的数据量;
所述分布式缓存服务端根据所述起始虚拟地址将所述待存储数据保存到所述目标空间中。
7.如权利要求6所述的方法,其特征在于,所述在目标数据文件中分配用于存储所述待存储数据的目标空间之前,还包括:
查询所述NVM中的每个数据文件中的空闲空间大小;
从空闲空间大小大于或等于所述待存储数据的数据量的数据文件中选择一个数据文件作为目标数据文件。
8.如权利要求7所述的方法,其特征在于,所述方法还包括:
在所述每个数据文件中的空闲空间大小小于所述待存储数据的数据量时,在所述NVM中创建数据文件,在所述分布式缓存服务端的用户地址空间中为所述创建的数据文件包括的地址映射出对应的虚拟地址;
在所述创建的数据文件中分配用于存储所述待存储数据的目标空间的起始虚拟地址。
9.如权利要求6至8任一项所述的方法,其特征在于,所述将所述待存储数据保存到所述目标空间中之后,还包括:
将所述待存储数据的数据标识和所述目标空间的起始虚拟地址之间的对应关系保存到所述NVM中的地址关系表中。
10.如权利要求9所述的方法,其特征在于,所述方法还包括:
接收读取请求,所述读取请求包括待读取数据的数据标识和数据量;
根据所述待读取数据的数据标识从所述地址关系表中获取对应的起始虚拟地址,根据所述起始虚拟地址和所述数据量在所述NVM中读取所述待读取数据;
发送所述待读取数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910539395.5A CN112114738B (zh) | 2019-06-20 | 2019-06-20 | 一种存储数据的方法及存储设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910539395.5A CN112114738B (zh) | 2019-06-20 | 2019-06-20 | 一种存储数据的方法及存储设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112114738A true CN112114738A (zh) | 2020-12-22 |
CN112114738B CN112114738B (zh) | 2024-02-20 |
Family
ID=73796161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910539395.5A Active CN112114738B (zh) | 2019-06-20 | 2019-06-20 | 一种存储数据的方法及存储设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112114738B (zh) |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090240873A1 (en) * | 2003-12-02 | 2009-09-24 | Super Talent Electronics Inc. | Multi-Level Striping and Truncation Channel-Equalization for Flash-Memory System |
CN101620572A (zh) * | 2008-07-02 | 2010-01-06 | 上海华虹Nec电子有限公司 | 非易失性内存及控制方法 |
US20160210066A1 (en) * | 2015-01-19 | 2016-07-21 | Kabushiki Kaisha Toshiba | Information processing apparatus, information processing method, and computer program product |
CN106445628A (zh) * | 2015-08-11 | 2017-02-22 | 华为技术有限公司 | 一种虚拟化方法、装置和系统 |
US20170075818A1 (en) * | 2014-05-06 | 2017-03-16 | Huawei Technologies Co.,Ltd. | Memory management method and device |
US20170147491A1 (en) * | 2014-11-17 | 2017-05-25 | Hitachi, Ltd. | Method and apparatus for data cache in converged system |
CN106970765A (zh) * | 2017-04-25 | 2017-07-21 | 杭州宏杉科技股份有限公司 | 数据存储方法及装置 |
CN107967124A (zh) * | 2017-12-14 | 2018-04-27 | 南京云创大数据科技股份有限公司 | 一种分布式持久性内存存储系统及方法 |
US20180349285A1 (en) * | 2017-05-31 | 2018-12-06 | Seagate Technology Llc | Managing Multiple Namespaces in a Non-Volatile Memory (NVM) |
US20180359331A1 (en) * | 2015-12-03 | 2018-12-13 | Hangzhou Hikvision Digital Technology Co., Ltd. | Data Cloud Storage System, Client Terminal, Storage Server and Application Method |
CN109063103A (zh) * | 2018-07-27 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种分布式非易失文件系统 |
CN109213772A (zh) * | 2018-09-12 | 2019-01-15 | 华东师范大学 | 数据存储方法及NVMe存储系统 |
US20190042272A1 (en) * | 2018-06-29 | 2019-02-07 | Intel Corporation | Methods and apparatus to utilize non-volatile memory for computer system boot |
CN109491926A (zh) * | 2018-10-26 | 2019-03-19 | 浙江工商大学 | 基于延长写时间的优化非易失性存储器写寿命的内存管理方法 |
CN109710544A (zh) * | 2017-10-26 | 2019-05-03 | 杭州华为数字技术有限公司 | 内存访问方法、计算机系统以及处理装置 |
-
2019
- 2019-06-20 CN CN201910539395.5A patent/CN112114738B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090240873A1 (en) * | 2003-12-02 | 2009-09-24 | Super Talent Electronics Inc. | Multi-Level Striping and Truncation Channel-Equalization for Flash-Memory System |
CN101620572A (zh) * | 2008-07-02 | 2010-01-06 | 上海华虹Nec电子有限公司 | 非易失性内存及控制方法 |
US20170075818A1 (en) * | 2014-05-06 | 2017-03-16 | Huawei Technologies Co.,Ltd. | Memory management method and device |
US20170147491A1 (en) * | 2014-11-17 | 2017-05-25 | Hitachi, Ltd. | Method and apparatus for data cache in converged system |
US20160210066A1 (en) * | 2015-01-19 | 2016-07-21 | Kabushiki Kaisha Toshiba | Information processing apparatus, information processing method, and computer program product |
CN106445628A (zh) * | 2015-08-11 | 2017-02-22 | 华为技术有限公司 | 一种虚拟化方法、装置和系统 |
US20180359331A1 (en) * | 2015-12-03 | 2018-12-13 | Hangzhou Hikvision Digital Technology Co., Ltd. | Data Cloud Storage System, Client Terminal, Storage Server and Application Method |
CN106970765A (zh) * | 2017-04-25 | 2017-07-21 | 杭州宏杉科技股份有限公司 | 数据存储方法及装置 |
US20180349285A1 (en) * | 2017-05-31 | 2018-12-06 | Seagate Technology Llc | Managing Multiple Namespaces in a Non-Volatile Memory (NVM) |
CN109710544A (zh) * | 2017-10-26 | 2019-05-03 | 杭州华为数字技术有限公司 | 内存访问方法、计算机系统以及处理装置 |
CN107967124A (zh) * | 2017-12-14 | 2018-04-27 | 南京云创大数据科技股份有限公司 | 一种分布式持久性内存存储系统及方法 |
US20190042272A1 (en) * | 2018-06-29 | 2019-02-07 | Intel Corporation | Methods and apparatus to utilize non-volatile memory for computer system boot |
CN109063103A (zh) * | 2018-07-27 | 2018-12-21 | 郑州云海信息技术有限公司 | 一种分布式非易失文件系统 |
CN109213772A (zh) * | 2018-09-12 | 2019-01-15 | 华东师范大学 | 数据存储方法及NVMe存储系统 |
CN109491926A (zh) * | 2018-10-26 | 2019-03-19 | 浙江工商大学 | 基于延长写时间的优化非易失性存储器写寿命的内存管理方法 |
Non-Patent Citations (1)
Title |
---|
李学勇等: "《操作系统》", 31 October 2010, 国防科技大学出版社, pages: 72 - 77 * |
Also Published As
Publication number | Publication date |
---|---|
CN112114738B (zh) | 2024-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109542333B (zh) | 存储器系统及控制非易失性存储器的控制方法 | |
JP6982468B2 (ja) | メモリシステムおよび制御方法 | |
CN109726139B (zh) | 存储器系统及控制方法 | |
US7613870B2 (en) | Efficient memory usage in systems including volatile and high-density memories | |
US7594067B2 (en) | Enhanced data access in a storage device | |
US8504792B2 (en) | Methods and apparatuses to allocate file storage via tree representations of a bitmap | |
US7861028B2 (en) | System and method for configuration and management of flash memory | |
US10001946B2 (en) | Method and system for garbage collection in a storage system based on longevity of stored data | |
CN110096221B (zh) | 存储器系统及其控制方法 | |
US10649891B2 (en) | Storage device that maintains mapping data therein | |
JP2019057151A (ja) | メモリシステムおよび制御方法 | |
KR20170010810A (ko) | 플래시 메모리 내에 데이터를 판독/기록하기 위한 방법, 장치 및 사용자 장비 | |
JP2005222534A (ja) | フラッシュメモリのデータ管理装置及び方法 | |
CN113835639B (zh) | 一种i/o请求处理方法、装置、设备及可读存储介质 | |
CN110795386B (zh) | 一种数据写入方法和服务端 | |
CN114546898A (zh) | 一种tlb管理方法、装置、设备及存储介质 | |
CN113407120A (zh) | 基于hmb的映射表管理方法、装置及计算机设备 | |
CN113434470A (zh) | 数据分布方法、装置及电子设备 | |
CN112114738B (zh) | 一种存储数据的方法及存储设备 | |
CN116225693A (zh) | 元数据管理方法、装置、计算机设备及存储介质 | |
US11875152B2 (en) | Methods and systems for optimizing file system usage | |
JP7167295B2 (ja) | メモリシステムおよび制御方法 | |
JP7204020B2 (ja) | 制御方法 | |
KR102053406B1 (ko) | 데이터 저장 장치 및 그 동작 방법 | |
EP4187363A1 (en) | Storage controller, storage control method, solid state disk and storage system |
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 |