CN110134660A - 一种数据访问方法、装置、设备及计算机可读存储介质 - Google Patents
一种数据访问方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN110134660A CN110134660A CN201910429824.3A CN201910429824A CN110134660A CN 110134660 A CN110134660 A CN 110134660A CN 201910429824 A CN201910429824 A CN 201910429824A CN 110134660 A CN110134660 A CN 110134660A
- Authority
- CN
- China
- Prior art keywords
- data
- information
- data access
- location information
- access request
- 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.)
- Pending
Links
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/13—File access structures, e.g. distributed indices
-
- 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/1847—File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据访问方法、装置、设备及计算机可读存储介质,数据访问方法应用于非易失存储器,非易失存储器的线性存储空间包括头区域、索引区域及数据区域,头区域存储有索引区域的位置信息,索引区域存储有数据区域中数据块的位置信息及长度信息,数据区域存储有数据块;数据访问方法包括:读取头区域,由头区域中获取索引区域的位置信息;基于索引区域的位置信息定位到索引区域,将索引区域中存储的信息读取到内存中;接收数据访问请求,由内存中确定与数据访问请求对应的位置信息,基于该位置信息或者基于该位置信息及对应长度信息对数据区域实现数据访问。既能充分发挥非易失存储器的性能,又能达到操作简便、具有足够灵活性的特点。
Description
技术领域
本发明涉及非易失存储器技术领域,更具体地说,涉及一种数据访问方法、装置、设备及计算机可读存储介质。
背景技术
对于NVRAM(Non-Volatile Random Access Memory,非易失随机访问存储器)、NVDIMM(Non-Volatile Dual Inline Memory Modules,非易失双列直插式存储模块)等非易失存储器的常见应用方式,一般是在非易失存储器上格式化EXT4等文件系统,进而在文件系统上面存储文件。由于EXT4等文件系统是针对硬盘设计的,操作复杂且不能充分发挥非易失存储器的性能。
综上所述,现有技术应用非易失存储器的方案存在操作复杂且不能充分发挥非易失存储器性能的问题。
发明内容
本发明的目的是提供一种数据访问方法、装置、设备及计算机可读存储介质,能够解决现有技术应用非易失存储器的方案存在的操作复杂且不能充分发挥非易失存储器性能的问题。
为了实现上述目的,本发明提供如下技术方案:
一种数据访问方法,应用于非易失存储器,所述非易失存储器的线性存储空间包括头区域、索引区域及数据区域,所述头区域存储有所述索引区域的位置信息,所述索引区域存储有所述数据区域中数据块的位置信息及长度信息,所述数据区域存储有数据块;所述数据访问方法包括:
读取所述头区域,并由所述头区域中获取所述索引区域的位置信息;
基于所述索引区域的位置信息定位到所述索引区域,并将所述索引区域中存储的信息读取到内存中;
接收数据访问请求,由所述内存中确定与所述数据访问请求对应的位置信息,并基于该位置信息或者基于该位置信息及对应长度信息对所述数据区域实现数据访问。
优选的,将所述索引区域中存储的信息读取到内存中之后,还包括:
在所述内存中构造已用空间信息和空闲空间信息,所述已用空间信息包括所述索引区域中存储的信息,所述空闲空间信息包括所述数据区域中未被占用的空间的位置信息及长度信息;
对应的,由所述内存中确定与所述数据访问请求对应的位置信息,包括:
如果所述数据访问请求为数据读取请求或数据删除请求,则由所述已用空间信息中确定与所述数据访问请求对应的位置信息,如果所述数据访问请求为数据写入请求,则由所述空闲空间信息中确定与所述数据访问请求对应的位置信息。
优选的,由所述已用空间信息中确定与所述数据访问请求对应的位置信息,包括:
判断所述已用空间信息中是否存在与所述数据访问请求携带的数据标识对应的位置信息,如果是,则确定该位置信息为与所述数据访问请求对应的位置信息,如果否,则返回不存在对应数据的信息。
优选的,由所述空闲空间信息中确定与所述数据访问请求对应的位置信息,包括:
判断所述空闲空间信息中是否存在长度大于所述数据访问请求对应数据长度的长度信息,如果是,则确定任一该长度信息对应的位置信息为与所述数据访问请求对应的位置信息,如果否,则返回无法实现数据访问的信息。
优选的,对所述数据区域实现数据访问,包括:
如果所述数据访问请求为数据写入请求,则计算所述数据访问请求对应的数据的校验码,将所述校验码及对应数据依次写入至与所述数据访问请求对应位置信息的位置处,再次写入所述校验码得到对应的数据块;
如果所述数据访问请求为数据读取请求,则由所述数据访问请求对应位置信息的位置处获取对应长度信息的长度的数据块,利用该数据块中包含的校验码对该数据块中包含的数据进行校验,并在校验通过后将对应数据返回,否则则返回数据损坏的信息;
如果所述数据访问请求为数据删除请求,则删除所述数据删除请求对应位置信息的位置处对应长度信息的长度的数据块,并返回删除完成的信息。
优选的,对所述数据区域实现数据访问之后,还包括:
如果所述数据访问请求为数据写入请求,则将写入的数据对应数据块的位置信息及长度信息由所述空闲空间信息移入至所述已用空间信息中;
如果所述数据访问请求为数据删除请求,则将删除的数据块的位置信息及长度信息由所述已用空间信息移入至所述空闲空间信息中。
优选的,对所述数据区域实现数据访问之后,还包括:
如果所述数据访问请求为数据写入请求,则将写入的数据对应数据块的位置信息及长度信息增加至所述索引区域中;
如果所述数据访问请求为数据删除请求,则将删除的数据块的位置信息及长度信息由所述索引区域中删除。
一种数据访问装置,应用于非易失存储器,所述非易失存储器的线性存储空间包括头区域、索引区域及数据区域,所述头区域存储有所述索引区域的位置信息,所述索引区域存储有所述数据区域中数据块的位置信息及长度信息,所述数据区域存储有数据块;所述数据访问装置包括:
获取模块,用于:读取所述头区域,并由所述头区域中获取所述索引区域的位置信息;
读取模块,用于:基于所述索引区域的位置信息定位到所述索引区域,并将所述索引区域中存储的信息读取到内存中;
访问模块,用于:接收数据访问请求,由所述内存中确定与所述数据访问请求对应的位置信息,并基于该位置信息或者基于该位置信息及对应长度信息对所述数据区域实现数据访问。
一种数据访问设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一项所述数据访问方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述数据访问方法的步骤。
本发明提供了一种数据访问方法、装置、设备及计算机可读存储介质,数据访问方法应用于非易失存储器,所述非易失存储器的线性存储空间包括头区域、索引区域及数据区域,所述头区域存储有所述索引区域的位置信息,所述索引区域存储有所述数据区域中数据块的位置信息及长度信息,所述数据区域存储有数据块;所述数据访问方法包括:读取所述头区域,并由所述头区域中获取所述索引区域的位置信息;基于所述索引区域的位置信息定位到所述索引区域,并将所述索引区域中存储的信息读取到内存中;接收数据访问请求,由所述内存中确定与所述数据访问请求对应的位置信息,并基于该位置信息或者基于该位置信息及对应长度信息对所述数据区域实现数据访问。本申请公开的技术方案中,将非易失存储器的线性存储空间划分为头区域、索引区域及数据区域,头区域存储索引区域的位置信息,索引区域存储数据区域中数据块的位置信息及长度信息,数据区域存储数据块,由头区域中读取索引区域的位置信息,基于索引区域的位置信息将索引区域存储的信息读取到内存中,进而在接收到数据访问请求时由内存中确定出与数据访问请求对应的位置信息,进而基于位置信息或基于位置信息及对应长度信息实现数据区域的数据访问,从而通过这种方式直接管理非易失存储器上的存储空间,既能充分发挥非易失存储器的性能,又能达到操作简便、具有足够灵活性的特点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种数据访问方法的流程图;
图2为本发明实施例提供的一种数据访问方法中非易失存储器中线性存储空间的基本结构示意图;
图3为本发明实施例提供的一种数据访问装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,其示出了本发明实施例提供的一种数据访问方法的流程图,数据访问方法可以应用于非易失存储器,非易失存储器的线性存储空间包括头区域、索引区域及数据区域,头区域存储有索引区域的位置信息,索引区域存储有数据区域中数据块的位置信息及长度信息,数据区域存储有数据块;数据访问方法可以包括:
S11:读取头区域,并由头区域中获取索引区域的位置信息。
本发明实施例提供的一种数据访问方法的执行主语可以为对应的数据访问装置。需要说明的是,本发明实施例中的数据访问方法实则可以理解为对非易失存储器的一种应用方案,而本实施例中的非易失存储器可以为NVRAM、NVDIMM等任一种非易失存储器;对应的,对非易失存储器包含的线性存储空间的处理可以为数据访问方法预先执行的步骤,也即在步骤S11之前还可以包括:将非易失存储器的线性存储空间划分为头区域、索引区域及数据区域,并设定各区域的功能(功能即用于存储什么数据信息)。一般情况下对非易失存储器包含的线性存储空间的处理相应步骤仅需执行一次,当然也可以根据实际需要进行多次执行,均在本发明的保护范围之内。
具体来说,头区域可以表示为Header,索引区域可以表示为Map,数据区域可以表示为Data;位置信息可以为偏移量offset,长度信息可以为长度length,而索引区域中存储的数据块的位置信息及长度信息可以为(offset,length)数据对。Header可以仅使用4K,存放Map在存储空间(本申请实施例中存储空间即为非易失存储器的线性存储空间)的偏移量、Data在存储空间的偏移量、存储空间最大长度等基本信息。Map可以使用64M,其存放(offset,length)数据对,从而采用偏移量(Offset)加长度(Length)的方式映射非易失存储器上的空间使用,对非易失存储器上的存储空间进行灵活高效的动态管理;其中,offset和length都是64位,一项数据对占用16字节,所以64M大小的Map可以存放4194304项,也就是最多可以有4194304条Data,一般NVRAM、NVDIMM有4G、8G、16G等规格,对于最大的16G规格,如果极限情况一条数据只占用4K,16G可以存放4194304条数据,刚好不会造成空间浪费。Data包含各个数据对应数据块。
步骤S11可以是在对非易失存储器初始化时实现的,由于步骤S11和步骤S12可以理解为步骤S13的准备步骤,因此在执行一次步骤S11及步骤S12后可以多次执行步骤S13,具体可以根据实际需要进行设定,均在本发明的保护范围之内。通过读取Header,可以获取Map起始位置(偏移量)、Data起始位置(偏移量)及存储器大小等信息。
S12:基于索引区域的位置信息定位到索引区域,并将索引区域中存储的信息读取到内存中。
确定出Map起始位置后可以基于该起始位置可以定位到Map,同时已知Map的长度,可以将Map由起始位置开始读取Map长度的信息到内存中,也即将索引区域中存储的信息读取到内存中,由于由内存中读取数据远比由非易失存储器中读取数据速度要快、效率要高,因此,本实施例将索引区域存储的信息读取到内存中,进而由内存中实现需访问的位置信息的定位相比于由属于非易失存储器的索引区域中实现需访问的位置信息的定位,能够提高数据访问速度。
S13:接收数据访问请求,由内存中确定与数据访问请求对应的位置信息,并基于该位置信息或者基于该位置信息及对应长度信息对数据区域实现数据访问。
接收数据访问请求,可以由内存中确定出与数据访问请求对应的位置信息,进而基于位置信息或者基于位置信息及对应长度信息对数据区域实现数据访问。其中,由内存中存储的索引区域的信息中确定与数据访问请求对应的位置信息后,由于索引区域中存储的位置信息及长度信息是具有对应关系的,因此可以基于这种对应关系确定出与数据访问请求对应的位置信息对应的长度信息,进而实现数据访问。
本申请公开的技术方案中,将非易失存储器的线性存储空间划分为头区域、索引区域及数据区域,头区域存储索引区域的位置信息,索引区域存储数据区域中数据块的位置信息及长度信息,数据区域存储数据块,由头区域中读取索引区域的位置信息,基于索引区域的位置信息将索引区域存储的信息读取到内存中,进而在接收到数据访问请求时由内存中确定出与数据访问请求对应的位置信息,进而基于位置信息或基于位置信息及对应长度信息实现数据区域的数据访问,从而通过这种方式直接管理非易失存储器上的存储空间,既能充分发挥非易失存储器的性能,又能达到操作简便、具有足够灵活性的特点,有助于分布式存储系统适用于高性能场景。
并且,本申请将索引区域的信息读取到内存中,进而由内存中确定与数据访问请求对应的位置空间,代替由非易失存储器的索引区域中确定与数据访问请求对应的位置空间,从而利用由内存中读取数据相对于由非易失存储器中读取数据速度更快的特点,提高了数据访问速度。
另外,本申请中实现的数据访问均可以是采用Direct IO的方式直接访问的,从而利用这种方式具有的特点进一步提高数据访问速度。
本发明实施例提供的一种数据访问方法,将索引区域中存储的信息读取到内存中之后,还可以包括:
在内存中构造已用空间信息和空闲空间信息,已用空间信息包括索引区域中存储的信息,空闲空间信息包括数据区域中未被占用的空间的位置信息及长度信息;
对应的,由内存中确定与数据访问请求对应的位置信息,包括:
如果数据访问请求为数据读取请求或数据删除请求,则由已用空间信息中确定与数据访问请求对应的位置信息,如果数据访问请求为数据写入请求,则由空闲空间信息中确定与数据访问请求对应的位置信息。
需要说明的是,在内存中构造已用空间信息和空闲空间信息,其中,空闲空间信息包含数据区域中未被占用的每部分空间的位置信息及长度信息,从而在接收到数据读取请求或数据删除请求时,由于这两项数据访问请求为需要基于已经存储于非易失存储器的数据实现的,因此直接由已用空间信息中实现对应位置信息的定位;在接收到数据写入请求时,由于这项数据访问请求为需要向非易失存储器写入数据的请求,因此直接由空闲空间信息中实现对应位置信息的定位,从而通过这种方式,进一步提高了位置信息定位的速度,相应的提高了数据访问速度。
本发明实施例提供的一种数据访问方法,由已用空间信息中确定与数据访问请求对应的位置信息,可以包括:
判断已用空间信息中是否存在与数据访问请求携带的数据标识对应的位置信息,如果是,则确定该位置信息为与数据访问请求对应的位置信息,如果否,则返回不存在对应数据的信息。
需要说明的是,可以维护数据标识及数据标识对应数据所在位置的位置信息的对应关系,因此在由已用空间信息中实现对应位置信息的定位时,可以确定已用空间信息中与数据访问请求携带的数据标识具有对应关系的位置信息,从而通过这种对应关系快速实现位置信息的定位。如果未找到与数据访问请求中携带的数据标识对应的位置信息,则说明非易失存储器中未存储数据访问请求对应的数据,因此返回不存在对应数据的信息以使得发出数据访问请求的请求端能够及时获知数据访问情况,进而确定需实现的操作。
本发明实施例提供的一种数据访问方法,由空闲空间信息中确定与数据访问请求对应的位置信息,可以包括:
判断空闲空间信息中是否存在长度大于数据访问请求对应数据长度的长度信息,如果是,则确定任一该长度信息对应的位置信息为与数据访问请求对应的位置信息,如果否,则返回无法实现数据访问的信息。
由于非易失存储器的数据区域可能存在多个零散的未被占用的空间,因此需要判断是否存在未被占用的长度大于数据访问请求携带的数据长度的空间,也即判断是否存在长度大于数据访问请求携带的数据长度的长度信息,如果是,则说明符合上述要求的空间能够供数据访问请求对应的数据写入,因此确定这个长度信息对应位置信息为数据访问请求对应位置信息,进而实现数据写入,保障了数据的顺利写入及需写入的数据位于连续空间内,方便后续访问等操作。在确定不存在长度信息大于数据访问请求对应数据长度的长度信息时,说明不存在能够供数据访问请求对应数据写入的空间,此时返回无法实现数据访问的信息使得发出数据访问请求的请求端能够及时获知数据访问情况,进而确定需实现的操作。另外,如果存在多个能够供数据访问请求对应数据写入的空间,则直接确定判断出的第一个能够供数据访问请求对应数据写入的空间为实现数据写入的空间即可,当然也可以根据实际需要进行其他设定,均在本发明的保护范围之内。
本发明实施例提供的一种数据访问方法,对数据区域实现数据访问,可以包括:
如果数据访问请求为数据写入请求,则计算数据访问请求对应的数据的校验码,将校验码及对应数据依次写入至与数据访问请求对应位置信息的位置处,再次写入校验码得到对应的数据块;
如果数据访问请求为数据读取请求,则由数据访问请求对应位置信息的位置处获取对应长度信息的长度的数据块,利用该数据块中包含的校验码对该数据块中包含的数据进行校验,并在校验通过后将对应数据返回,否则则返回数据损坏的信息;
如果数据访问请求为数据删除请求,则删除数据删除请求对应位置信息的位置处对应长度信息的长度的数据块,并返回删除完成的信息。
需要说明的是,位置信息的位置处即位置信息表示的位置处,长度信息的长度即长度信息表示的长度;计算校验码的方式具体可以为crc校验,在需要将数据写入至非易失存储器时,计算数据的校验码,依次将校验码、数据、校验码写入至对应位置,也即本申请中每个数据块中包含两个校验码及一个数据,由此在读取时通过确定数据后是否存在校验码可以确定数据是否写入完成,即数据后不存在校验码则说明未写入完成;并且通过双重校验的方式能够提高判断数据是否被损坏的准确性。并且在写入数据完成后也可以返回数据写入完成的信息以通知请求端数据写入的具体情况。另外,在对数据进行删除时直接删除对应的包含数据及其校验码的数据块,并返回删除完成的信息以使得请求端可以获知数据删除的情况。
本发明实施例提供的一种数据访问方法,对数据区域实现数据访问之后,还可以包括:
如果数据访问请求为数据写入请求,则将写入的数据对应数据块的位置信息及长度信息由空闲空间信息移入至已用空间信息中;
如果数据访问请求为数据删除请求,则将删除的数据块的位置信息及长度信息由已用空间信息移入至空闲空间信息中。
在实现数据写入及数据删除后,可以将对应数据块的位置信息及长度信息由当前所在空间信息移入至对应的新的空间信息,从而能够实现基于数据操作对已用空间信息及未用空间信息的更新,保证后续对已用空间信息和未用空间信息的有效使用。
本发明实施例提供的一种数据访问方法,对数据区域实现数据访问之后,还可以包括:
如果数据访问请求为数据写入请求,则将写入的数据对应数据块的位置信息及长度信息增加至索引区域中;
如果数据访问请求为数据删除请求,则将删除的数据块的位置信息及长度信息由索引区域中删除。
需要说明的是,在基于数据操作实现对已用空间信息和未用空间信息的更新后,还需要基于数据操作实现对索引区域的信息进行更新,以便在断电重启时能够恢复非易失存储器的使用情况。
在本发明一种具体实施方式中,数据块包括的校验码、数据、校验码对应的空间可以分别表示为Data Header、Payload、Data Footer,Header和Footer中包含Payload的crc校验码,可以用来检验数据是否正确,是否已写入完全;此时非易失存储器中线性存储空间的基本结构示意图可以如图2所示。本发明实施例提供的一种数据访问方法可以包含如下步骤:
(1)初始化时首先读取4KHeader,获取Map起始位置、Data起始位置及存储器大小等信息;
(2)读取64M Map数据到内存,构造出已用空间信息和空闲空间信息;
(3)数据读取时,首先根据偏移量Offset在已用空间信息中查找,如果找到,则读取(Offset,Length)数据对中对应长度Length的数据返回;如果已用空间信息中找不到,则返回没有数据;并且如果找到并且读取的数据头部和尾部的crc校验码不一致,则返回数据损坏信息;
(4)数据写入时,根据要写入数据的长度,在空闲空间信息中查找,如果找到,则在对应偏移量Offset的位置处写入包含了两个校验码的数据,然后在空闲空间信息中减掉此次写入占用的空间,在已用空间信息中添加一条(Offset,Length)映射,并在非易失存储器Map中增加这条(Offset,Length)映射,以便在断电重启时能恢复存储器使用情况;
(5)数据删除时,在已用空间信息查找对应的Offset,如果存在,则将Data中的对应数据删除,并将删除的数据对应(Offset,Length)从已用空间信息删除,加入到空闲空间信息中,返回删除成功;如果已用空间信息找不到,返回没有数据。
本发明实施例还提供了一种数据访问装置,如图3所示,该数据访问装置应用于非易失存储器,非易失存储器的线性存储空间包括头区域、索引区域及数据区域,头区域存储有索引区域的位置信息,索引区域存储有数据区域中数据块的位置信息及长度信息,数据区域存储有数据块;数据访问装置包括:
获取模块11,用于:读取头区域,并由头区域中获取索引区域的位置信息;
读取模块12,用于:基于索引区域的位置信息定位到索引区域,并将索引区域中存储的信息读取到内存中;
访问模块13,用于:接收数据访问请求,由内存中确定与数据访问请求对应的位置信息,并基于该位置信息或者基于该位置信息及对应长度信息对数据区域实现数据访问。
本发明实施例还提供了一种数据访问装置,还可以包括:
构造模块,用于:将索引区域中存储的信息读取到内存中之后,在内存中构造已用空间信息和空闲空间信息,已用空间信息包括索引区域中存储的信息,空闲空间信息包括数据区域中未被占用的空间的位置信息及长度信息;
对应的,访问模块可以包括:
确定单元,用于:如果数据访问请求为数据读取请求或数据删除请求,则由已用空间信息中确定与数据访问请求对应的位置信息,如果数据访问请求为数据写入请求,则由空闲空间信息中确定与数据访问请求对应的位置信息。
本发明实施例还提供了一种数据访问装置,确定单元可以包括:
第一确定子单元,用于:判断已用空间信息中是否存在与数据访问请求携带的数据标识对应的位置信息,如果是,则确定该位置信息为与数据访问请求对应的位置信息,如果否,则返回不存在对应数据的信息。
本发明实施例还提供了一种数据访问装置,确定单元可以包括:
第二确定子单元,用于:判断空闲空间信息中是否存在长度大于数据访问请求对应数据长度的长度信息,如果是,则确定任一该长度信息对应的位置信息为与数据访问请求对应的位置信息,如果否,则返回无法实现数据访问的信息。
本发明实施例还提供了一种数据访问装置,访问模块可以包括:
第一访问单元,用于:如果数据访问请求为数据写入请求,则计算数据访问请求对应的数据的校验码,将校验码及对应数据依次写入至与数据访问请求对应位置信息的位置处,再次写入校验码得到对应的数据块;
第二访问单元,用于:如果数据访问请求为数据读取请求,则由数据访问请求对应位置信息的位置处获取对应长度信息的长度的数据块,利用该数据块中包含的校验码对该数据块中包含的数据进行校验,并在校验通过后将对应数据返回,否则则返回数据损坏的信息;
第三访问单元,用于:如果数据访问请求为数据删除请求,则删除数据删除请求对应位置信息的位置处对应长度信息的长度的数据块,并返回删除完成的信息。
本发明实施例还提供了一种数据访问装置,还可以包括:
信息转移模块,用于:对数据区域实现数据访问之后,如果数据访问请求为数据写入请求,则将写入的数据对应数据块的位置信息及长度信息由空闲空间信息移入至已用空间信息中;如果数据访问请求为数据删除请求,则将删除的数据块的位置信息及长度信息由已用空间信息移入至空闲空间信息中。
本发明实施例还提供了一种数据访问装置,还包括:
信息更新模块,用于:对数据区域实现数据访问之后,如果数据访问请求为数据写入请求,则将写入的数据对应数据块的位置信息及长度信息增加至索引区域中;如果数据访问请求为数据删除请求,则将删除的数据块的位置信息及长度信息由索引区域中删除。
本发明实施例还提供了一种数据访问设备,可以包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上任一项数据访问方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上任一项数据访问方法的步骤。
需要说明的是,本发明实施例提供的一种数据访问装置、设备及计算机可读存储介质中相关部分的说明请参见本发明实施例提供的一种数据访问方法中对应部分的详细说明,在此不再赘述。另外本发明实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据访问方法,其特征在于,应用于非易失存储器,所述非易失存储器的线性存储空间包括头区域、索引区域及数据区域,所述头区域存储有所述索引区域的位置信息,所述索引区域存储有所述数据区域中数据块的位置信息及长度信息,所述数据区域存储有数据块;所述数据访问方法包括:
读取所述头区域,并由所述头区域中获取所述索引区域的位置信息;
基于所述索引区域的位置信息定位到所述索引区域,并将所述索引区域中存储的信息读取到内存中;
接收数据访问请求,由所述内存中确定与所述数据访问请求对应的位置信息,并基于该位置信息或者基于该位置信息及对应长度信息对所述数据区域实现数据访问。
2.根据权利要求1所述的方法,其特征在于,将所述索引区域中存储的信息读取到内存中之后,还包括:
在所述内存中构造已用空间信息和空闲空间信息,所述已用空间信息包括所述索引区域中存储的信息,所述空闲空间信息包括所述数据区域中未被占用的空间的位置信息及长度信息;
对应的,由所述内存中确定与所述数据访问请求对应的位置信息,包括:
如果所述数据访问请求为数据读取请求或数据删除请求,则由所述已用空间信息中确定与所述数据访问请求对应的位置信息,如果所述数据访问请求为数据写入请求,则由所述空闲空间信息中确定与所述数据访问请求对应的位置信息。
3.根据权利要求2所述的方法,其特征在于,由所述已用空间信息中确定与所述数据访问请求对应的位置信息,包括:
判断所述已用空间信息中是否存在与所述数据访问请求携带的数据标识对应的位置信息,如果是,则确定该位置信息为与所述数据访问请求对应的位置信息,如果否,则返回不存在对应数据的信息。
4.根据权利要求3所述的方法,其特征在于,由所述空闲空间信息中确定与所述数据访问请求对应的位置信息,包括:
判断所述空闲空间信息中是否存在长度大于所述数据访问请求对应数据长度的长度信息,如果是,则确定任一该长度信息对应的位置信息为与所述数据访问请求对应的位置信息,如果否,则返回无法实现数据访问的信息。
5.根据权利要求2所述的方法,其特征在于,对所述数据区域实现数据访问,包括:
如果所述数据访问请求为数据写入请求,则计算所述数据访问请求对应的数据的校验码,将所述校验码及对应数据依次写入至与所述数据访问请求对应位置信息的位置处,再次写入所述校验码得到对应的数据块;
如果所述数据访问请求为数据读取请求,则由所述数据访问请求对应位置信息的位置处获取对应长度信息的长度的数据块,利用该数据块中包含的校验码对该数据块中包含的数据进行校验,并在校验通过后将对应数据返回,否则则返回数据损坏的信息;
如果所述数据访问请求为数据删除请求,则删除所述数据删除请求对应位置信息的位置处对应长度信息的长度的数据块,并返回删除完成的信息。
6.根据权利要求5所述的方法,其特征在于,对所述数据区域实现数据访问之后,还包括:
如果所述数据访问请求为数据写入请求,则将写入的数据对应数据块的位置信息及长度信息由所述空闲空间信息移入至所述已用空间信息中;
如果所述数据访问请求为数据删除请求,则将删除的数据块的位置信息及长度信息由所述已用空间信息移入至所述空闲空间信息中。
7.根据权利要求6所述的方法,其特征在于,对所述数据区域实现数据访问之后,还包括:
如果所述数据访问请求为数据写入请求,则将写入的数据对应数据块的位置信息及长度信息增加至所述索引区域中;
如果所述数据访问请求为数据删除请求,则将删除的数据块的位置信息及长度信息由所述索引区域中删除。
8.一种数据访问装置,其特征在于,应用于非易失存储器,所述非易失存储器的线性存储空间包括头区域、索引区域及数据区域,所述头区域存储有所述索引区域的位置信息,所述索引区域存储有所述数据区域中数据块的位置信息及长度信息,所述数据区域存储有数据块;所述数据访问装置包括:
获取模块,用于:读取所述头区域,并由所述头区域中获取所述索引区域的位置信息;
读取模块,用于:基于所述索引区域的位置信息定位到所述索引区域,并将所述索引区域中存储的信息读取到内存中;
访问模块,用于:接收数据访问请求,由所述内存中确定与所述数据访问请求对应的位置信息,并基于该位置信息或者基于该位置信息及对应长度信息对所述数据区域实现数据访问。
9.一种数据访问设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述数据访问方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述数据访问方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910429824.3A CN110134660A (zh) | 2019-05-22 | 2019-05-22 | 一种数据访问方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910429824.3A CN110134660A (zh) | 2019-05-22 | 2019-05-22 | 一种数据访问方法、装置、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110134660A true CN110134660A (zh) | 2019-08-16 |
Family
ID=67572254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910429824.3A Pending CN110134660A (zh) | 2019-05-22 | 2019-05-22 | 一种数据访问方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110134660A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111031475A (zh) * | 2019-12-19 | 2020-04-17 | 达闼科技成都有限公司 | 采集终端位置信息的方法、终端、位置采集端及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101477511A (zh) * | 2008-12-31 | 2009-07-08 | 杭州华三通信技术有限公司 | 一种实现多操作系统共享存储介质的方法和装置 |
CN101996217A (zh) * | 2009-08-24 | 2011-03-30 | 华为技术有限公司 | 一种存储数据的方法及其存储设备 |
WO2013075306A1 (zh) * | 2011-11-24 | 2013-05-30 | 华为技术有限公司 | 数据访问方法和装置 |
CN103793468A (zh) * | 2013-12-27 | 2014-05-14 | 北京天融信软件有限公司 | 数据存储方法和装置以及数据读取方法和装置 |
CN104809183A (zh) * | 2015-04-17 | 2015-07-29 | 北京奇艺世纪科技有限公司 | 一种数据读取及写入的方法和装置 |
CN108509213A (zh) * | 2018-03-15 | 2018-09-07 | 广州悦世界信息科技有限公司 | 用于移动游戏数据存取更新及保护方法 |
CN108959500A (zh) * | 2018-06-26 | 2018-12-07 | 郑州云海信息技术有限公司 | 一种对象存储方法、装置、设备及计算机可读存储介质 |
-
2019
- 2019-05-22 CN CN201910429824.3A patent/CN110134660A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101477511A (zh) * | 2008-12-31 | 2009-07-08 | 杭州华三通信技术有限公司 | 一种实现多操作系统共享存储介质的方法和装置 |
CN101996217A (zh) * | 2009-08-24 | 2011-03-30 | 华为技术有限公司 | 一种存储数据的方法及其存储设备 |
WO2013075306A1 (zh) * | 2011-11-24 | 2013-05-30 | 华为技术有限公司 | 数据访问方法和装置 |
CN103793468A (zh) * | 2013-12-27 | 2014-05-14 | 北京天融信软件有限公司 | 数据存储方法和装置以及数据读取方法和装置 |
CN104809183A (zh) * | 2015-04-17 | 2015-07-29 | 北京奇艺世纪科技有限公司 | 一种数据读取及写入的方法和装置 |
CN108509213A (zh) * | 2018-03-15 | 2018-09-07 | 广州悦世界信息科技有限公司 | 用于移动游戏数据存取更新及保护方法 |
CN108959500A (zh) * | 2018-06-26 | 2018-12-07 | 郑州云海信息技术有限公司 | 一种对象存储方法、装置、设备及计算机可读存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111031475A (zh) * | 2019-12-19 | 2020-04-17 | 达闼科技成都有限公司 | 采集终端位置信息的方法、终端、位置采集端及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103377137B (zh) | 使用增强的频繁块检测进行存储去重的方法和系统 | |
US7895211B2 (en) | Method and system for reinserting a chain in a hash table | |
CN102349055B (zh) | 对存储在存储器上的文件的访问时间最优化 | |
CN104809179B (zh) | 访问哈希表的装置和方法 | |
CN102136005B (zh) | 数据查询方法和装置 | |
CN103229164B (zh) | 数据访问方法和装置 | |
US8205025B2 (en) | Efficient buffered reading with a plug-in for input buffer size determination | |
CN108021717B (zh) | 一种轻量级嵌入式文件系统的实现方法 | |
CN107220185A (zh) | 基于闪存的数据存储方法、装置以及闪存芯片 | |
CN108491402B (zh) | 一种轻量级文件系统的实现方法 | |
US10789170B2 (en) | Storage management method, electronic device and computer readable medium | |
CN108897859A (zh) | 一种元数据检索方法、装置、设备及计算机可读存储介质 | |
CN110109894A (zh) | 非关系型数据库的实现方法、装置、存储介质和设备 | |
CN109284252A (zh) | 一种通信设备中轻量级文件系统管理方法 | |
CN110134660A (zh) | 一种数据访问方法、装置、设备及计算机可读存储介质 | |
CN114610708A (zh) | 一种向量数据处理方法及装置、电子设备及存储介质 | |
CN110187837B (zh) | 一种文件存取方法、装置及文件系统 | |
US20170262368A1 (en) | Linked-list-based method and device for application caching management | |
CN106547490B (zh) | 数据读写方法及数据读写系统 | |
CN116028022A (zh) | 一种基于Java技术的零代码Excel数据导入方法、装置及介质 | |
US20040024954A1 (en) | Time stamp management system for disk arrays | |
CN103262071A (zh) | 一种在分布式存储系统中删除数据的方法、装置及系统 | |
CN106991021B (zh) | 从现有数据文件构建新数据文件的方法及系统 | |
CN112948281A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN111143294A (zh) | 电力采集终端数据检索方法、装置和电子设备 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190816 |