CN106339270B - 数据校验方法及装置 - Google Patents
数据校验方法及装置 Download PDFInfo
- Publication number
- CN106339270B CN106339270B CN201610741777.2A CN201610741777A CN106339270B CN 106339270 B CN106339270 B CN 106339270B CN 201610741777 A CN201610741777 A CN 201610741777A CN 106339270 B CN106339270 B CN 106339270B
- Authority
- CN
- China
- Prior art keywords
- key
- check value
- address
- value
- read 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1064—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及数据存储技术领域,特别涉及一种数据校验方法及装置。所述方法包括接收写请求;所述写请求中携带第一键;计算所述第一键得到第一校验值;将所述第一键存储到第一地址;在映射关系***所述第一校验值与所述第一地址的映射;接收第一读请求;所述第一读请求携带所述第一键;计算所述第一读请求携带所述第一键的第一校验值;根据所述第一校验值查询所述映射关系获得所述第一地址;读取所述第一地址中的键;确定所述读请求携带所述第一键与所述第一地址中的键相同时,确定所述第一地址中的键为所述第一键。本发明实施例的数据校验方法及装置,在能够实现数据校验的前提下,节省数据存储时占用的存储资源。
Description
技术领域
本发明涉及数据存储技术领域,特别涉及一种数据校验方法及装置。
背景技术
在数据存储技术中,存储介质不可避免的会出现损坏、跳变等故障,影响存储介质中所存储数据的准确性。为了正确获取存储介质中的数据,处理装置在读取数据之前,对数据进行校验。
在键-值(Key-Value,KV)存储中,需要对Key和Value分别计算得到校验值,并存储Key和Value的校验值。在读取Key时,需要对读请求中携带的Key进行计算得到校验值,获取存储的Key的校验值,比较读请求中携带的Key的校验值与存储的Key的校验值以确定存储的Key是否准确。
上述Key-Value的存储方式中,由于需要分别存储Key和Value的校验值,会占用比较多的存储资源。
发明内容
本发明的发明目的在于提供一种数据校验方法及装置,以在能够实现数据校验的前提下,节省数据存储时占用的存储资源。
第一方面,本发明实施例提供了一种数据校验方法,包括:
接收写请求;所述写请求中携带第一键;
计算所述第一键得到第一校验值;
将所述第一键存储到第一地址;
在映射关系***所述第一校验值与所述第一地址的映射;
接收第一读请求;所述第一读请求携带所述第一键;
计算所述第一读请求携带所述第一键的第一校验值;
根据所述第一校验值查询所述映射关系获得所述第一地址;
读取所述第一地址中的键;
当确定所述读请求携带所述第一键与所述第一地址中的键相同时,确定所述第一地址中的键为所述第一键。
采用本发明实施例方法,在存储数据时,仅存储键值、值和值的校验值,节省存储资源,在读取数据时,根据键的校验值查找键,从逻辑上实现对键的校验。
在一种可能的设计中,所述计算所述第一键得到第一校验值,具体为使用哈希算法计算所述第一键得到所述第一校验值。
在一种可能的设计中,所述写请求还携带值,所述方法还包括:
计算所述值得到第二校验值;
存储所述值与所述第二校验值。
在一种可能的设计中,所述方法还包括:
接收第二读请求;所述第二读请求携带所述第一键;
计算所述第二读请求携带所述第一键的第一校验值;
根据所述第一校验值查询所述映射关系获得第二地址;
读取所述第二地址中的键;
当确定所述第二读请求携带所述第一键与所述第二地址中的键不同时,确定所述第二地址中的键不是所述第一键。
键的校验值与键之间是一对多的关系,当根据读请求携带键的校验值查询到的键与读请求中的键不一致时,说明相应存储位置上的键不是读请求携带的键。此时可能出现了键存储错误,也可能出现了键校验值的冲突(也称为碰撞)。
在一种可能的设计中,当确定所述第二读请求携带所述第一键与所述第二地址中的键不同时,所述方法还包括:
计算所述第二地址中的键得到第三校验值;
当所述第一校验值与所述第三校验值相同时,确定所述第二地址中的键的校验值与所述第一校验值冲突。
采用本发明实施例方法,对第二地址中的键计算得到第三校验值,如果第三校验值与第一校验值相同,说明多个键对应了相同的键校验值,否则说明键存储出现了错误。
第二方面,为了实现上述第一方面的数据校验方法,本发明实施例提供了一种数据校验装置,该装置具有实现上述数据校验方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一种可能的设计中,该数据校验装置包括多个功能模块,用于实现上述第一方面中的任一种数据校验方法,使得在实现键校验的前提下还能节省数据存储资源。
在一种可能的设计中,该数据校验装置包括:
第一接收单元,用于接收写请求;所述写请求中携带第一键;
第一计算单元,用于计算所述第一键得到第一校验值;
存储单元,用于将所述第一键存储到第一地址;
映射单元,用于在映射关系***所述第一校验值与所述第一地址的映射;
第二接收单元,用于接收第一读请求;所述第一读请求携带所述第一键;
第二计算单元,用于计算所述第一读请求携带所述第一键的第一校验值;
查询单元,用于根据所述第一校验值查询所述映射关系获得所述第一地址;
读取单元,用于读取所述第一地址中的键;
确定单元,用于当确定所述读请求携带所述第一键与所述第一地址中的键相同时,确定所述第一地址中的键为所述第一键。
第三方面,本发明实施例提供了一种计算机存储介质,用于存储为上述数据校验装置所用的计算机软件指令,其包含用于执行上述方面所设计的程序。
第四方面,本发明实施例提供了一种存储装置,存储装置包含处理器、内存和通信接口,其中内存与处理器连接,处理器通过总线与通信接口连接,接口用于接收操作请求,如第一方面各实施例所描述的写请求或读请求,处理器执行内存中的计算机操作指令实现第一方面各实施例所描述的方案。
相较于现有技术,本发明实施例方案在能够实现数据校验的前提下,节省数据存储时占用的存储资源。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。
图1是本发明可能的一种存储装置示意图;
图2是现有技术中存储数据的一种效果示意图;
图3是本发明实施例的一种数据校验方法流程图;
图4是根据图3所示方法得到的一种数据存储结构示意图;
图5是基于图4所示数据存储结构的数据访问效果示意图;
图6是本发明实施例数据校验装置的一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
图1是本发明可能的一种存储装置示意图。如图1所示,用于执行本发明实施例数据校验方法的装置包括:处理器、内存和通信接口,其中内存与处理器连接,处理器通过总线与通信接口连接,外部存储介质通过通信接口与处理器连接。上述的通信总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。为便于表示,图1中仅用一条双向箭头线表示,但并不表示仅有一根总线或一种类型的总线。
内存由一组芯片组成,可以用于存储程序,具体的,程序可以包括程序代码,程序代码包括计算机操作指令。内存可能包含随机存取存储器(random access memory,简称RAM),也可能还包括非易失性存储器(non-volati le memory),例如至少一个磁盘存储器。存储介质可以是硬盘、磁盘等外部存储装置,存储介质通过通信接口与处理器连接,以支持处理器对数据的存储和访问。进一步,在图1中仅示出了一个处理器,当然处理器也可以根据需要,为多个处理器。处理器通过执行内存中的相关程序代码,执行本发明实施例的数据存储和数据校验方法。
图2是现有技术中存储数据的一种效果示意图。如图2所示,在现有的Key-Value数据存储方式中,为了实现对数据Key值和Value值的校验,存储介质中分别存储Key、Key的校验值、Value和Value的校验值,需要占用比较多的存储资源。
为了在存储数据时尽量节省占用的存储介质资源并且还能够实现对Key和Value的校验,本发明实施例提供了一种数据校验方法,在该数据校验方法中,当处理器接收到写请求时,所述写请求中携带数据的键和值,处理器为该数据分配存储地址;处理器根据为该数据分配的存储地址,在相应的存储区域中存储写请求携带的键、写请求携带的值和写请求携带值的校验值,由于没有保存键的校验值,因此可以节省一部分存储资源。
在本发明实施例方案中,虽然处理器没有存储写请求携带键的校验值,但处理器访问数据时,仍然可以从逻辑上实现对数据键的校验,具体的,当处理器接收到读请求时,读请求中携带键;处理器计算读请求携带键的校验值;处理器根据计算出的键的校验值确定数据存储地址,如果处理器在该存储地址中查询到的键与读请求携带的键相同,则处理器确定键校验正确,可见,本发明实施例方案中,处理器在不存储键的校验值的前提下仍然可以实现对键的校验,达到了节省存储资源的目的。
以下将结合附图对本发明实施例的数据校验方法进行详细说明。
图3是本发明实施例的一种数据校验方法流程图。如图3所示,该方法包括:
S101,处理器接收写请求,其中,在写请求中携带待存储数据的键,此处写请求中携带的所述键称为第一键。
可选的,在写请求中还可以携带待存储数据的值。
S102,处理器计算所述第一键得到第一校验值。
当写请求中携带值时,处理器还计算写请求携带值的第二校验值。
处理器采用校验算法计算第一键得到第一校验值,可选的,处理器采用的校验算法为哈希算法。同理,处理器采用哈希算法计算写请求携带值的第二校验值。
S103,处理器将第一键存储到第一地址。
当写请求携带值并且处理器计算出所述值的第二校验值时,处理器还将写请求中的所述值和所述第二校验值进行存储。
S104,处理器在映射关系***所述第一校验值与所述第一地址的映射。
可选的,当处理器对写请求中的值和第二校验值进行存储后,处理器还在映射关系中***值、第二校验值与存储地址的映射。
可选的,由于写请求中的值、第二校验值均是与第一键相对应的,因此处理器也可以只在映射关系***第一校验值与第一地址的映射,值、第二校验值与存储地址的映射根据第一校验值与第一地址的映射计算得到,如确定第一键的第一地址后,基于第一地址移动第一偏移量为上述值的存储地址,移动第二偏移量为上述第二校验值的存储地址。此种状况下,可以在第一校验值与第一地址的映射中加入第一地址与值存储地址的第一偏移量和第一地址与值校验值的第二偏移量,以便于值和校验值的读取。
S105,处理器接收第一读请求;所述第一读请求携带所述第一键;
S106,处理器计算所述第一读请求携带所述第一键的第一校验值;
S107,处理器根据所述第一校验值查询所述映射关系获得所述第一地址;
S108,处理器读取所述第一地址中的键;
S109,当确定所述读请求携带所述第一键与所述第一地址中的键相同时,处理器确定所述第一地址中的键为所述第一键。
在本发明实施例方案中,处理器接收到写请求,写请求中携带第一键和值时,处理器为第一键、写请求携带的值和所述值的校验值分配存储地址,对第一键的校验值不进行存储,由于不需要存储第一键的校验值,因此可以节省一部分存储空间。
处理器为第一键、值和值的校验值分配存储地址时,可以分别明确指示第一键、值和值的校验值的存储地址,也可以仅指示一个存储区域,并非明确指示目标数据各部分的存储位置,此时处理器可以根据预先设定的规则依次存储各部分,如先存储第一键,之后是写请求携带的值,最后是所述值的校验值,对于具体存储方式不做具体限定。在此种方式中,处理器根据最终数据各部分存储的结果,确定第一校验值与第一地址的映射,以及值和值的校验值与存储地址的映射。
在一种可能的设计中,所述校验方法还包括,处理器建立数据索引表,所述数据索引表用于承载第一校验值与第一地址的映射关系,可选的,还用于承载值和值的校验值分别与各自存储地址的映射。
可选的,在所述数据索引表中包括多个数据索引项,其中每个数据索引项可以为一个数据的映射关系。
例如,在一个数据索引项中,存储所述第一校验值与所述第一地址的映射、值和值的校验值分别与各自存储地址的映射。
可选的,每个数据索引项还设置一个数据索引以便于数据的查找。
在本申请方案中,由于处理器分配的存储地址中不包括第一键的校验值(即第一校验值)的存储地址,即不对第一校验值进行存储。而在读第一键或第一键对应的值时,如果不对第一键进行校验,有可能会出现访问错误,因此在不存储第一键校验值的前提下,为了在读数据时仍然实现对第一键的逻辑校验效果,处理器在建立数据索引项时,并非直接以第一键作为索引,而是以第一校验值作为索引。由此,当处理器接收到读请求,且读请求中携带第一键时,处理器计算第一键得到第一校验值。处理器根据该第一校验值从数据索引表中查找匹配的数据索引项,进而根据该数据索引项中第一校验值与第一地址的映射确定待访问的第一地址。如果处理器在第一地址中读取的键与第一键相同,则实现了对数据键的校验。
在一种可能的实现方案中,处理器将建立的数据索引表存储在内存中,或者其它存储介质中。
图4是根据图3所示方法得到的一种数据存储结构示意图。如图4所示,将数据索引表存储在内存结构中。如图4所示,在数据索引表中包括多个数据的数据索引项,在每个数据索引项中包括该数据键的校验值和该数据各部分与存储地址的映射。例如,存储的数据包括第一数据和第二数据,第一数据的键为key1,第二数据的键为key2,处理器所采用的校验算法为哈希(Hash)算法,则第一数据的数据索引项包括Hash(key1)和第一数据各部分(key1、value1和value1的校验值)在存储介质中的物理存储地址(PBA);同理第二数据的数据索引项包括Hash(key2)和第二数据各部分(key2、value2和value2的校验值)在存储介质中的物理存储地址(PBA)。其中,Hash(key1)表示使用Hash算法计算Key1的校验值。
在存储介质中,在第一数据的数据索引项PBA所指示的存储位置中,存储着key1、value1和value1的校验值;在第二数据的数据索引项PBA所指示的存储位置中,存储着key2、value2和value2的校验值,由于数据索引项是基于数据键的校验值索引,因此虽然在存储介质中没有存储数据键的校验值,但依据数据索引项在存储介质查找目标数据键的过程本质上等同于对键的校验。
图5是基于图4所示数据存储结构的数据访问效果示意图。如图5所示,假设处理器要读取的数据为第一数据,则处理器根据第一数据的键key1从存储介质中查找第一数据的键key1和/或值value1。为了读取到key1和/或value1,处理器计算key1的哈希值-Hash(key1),处理器根据Hash(key1)找到与第一数据对应的数据索引项,并从相应数据索引项中找到与第一数据对应的PBA。处理器根据与第一数对应的数据索引项中的PBA,找到待校验键key’。处理器确定找到的待校验键key’是否与第一数据的键key1一致。如果待校验键key’与第一数据的键key1一致,则说明第一数据的键校验通过。如果处理器的访问操作是仅针对第一数据的键,则处理器可以对键区域操作,如果处理器的访问操作是针对第一数据键和值的,则处理器执行的操作还包括:
处理器在第一键校验值所在的索引项中查找值和值的校验值的存储地址,并读取值的存储地址的值,处理器计算从值的存储地址读取值的校验值,处理器将计算的值的校验值与相应存储地址中存储的值的校验值比较,如果相同,则说明数据的值校验正确。
需要说明的是,键的校验值与键是一对多的关系,即不同的键可能会计算得到相同的键校验值,当出现了一个键校验值对应多个键的情况时,说明发生了键校验值的碰撞。键校验值碰撞的发生概率极低,通常小于万分之一。
在本发明实施例方案中,当利用读请求携带键的校验值找到的键与读请求携带键一致时,可以确定数据的键校验通过,如果利用读请求携带键的校验值找到的键与读请求携带键不一致,一种可能是存储的数据出现了错误,另一种可能是发生了键校验值的碰撞。
其中,在图3所示校验方法的基础上,若处理器还接收到第二读请求,并且第二读请求携带所述第一键;处理器计算第一请求携带所述第一键的第一校验值;处理器根据第一校验值查询所述映射关系若获得第二地址,处理器读取第二地址中的键;处理器将第二地址中的键与第二读请求携带所述第一键比较,当确定第二读请求携带所述第一键与所述第二地址中的键不同时,确定所述第二地址中的键不是所述第一键。
处理器根据读请求携带的第一键在第二地址读取到的键与第一键不同,可能是存储的键出现了错误,也可能是键校验值发生了冲突,确定的方法包括:处理器计算第二地址中的键得到第三校验值;如果第一校验值与第三校验值相同,处理器确定第二地址中的键的校验值与第一校验值发生了冲突;如果第一校验值与第三校验值不同,处理器确定第二地址中的键出现了错误。
上述主要从处理器读写数据的角度对本发明实施例提供的方案进行了介绍。可以理解的是,处理器为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
图6是本发明实施例数据校验装置的一种结构示意图。如图6所示,该装置包括:
第一接收单元301,用于接收写请求;所述写请求中携带第一键;
第一计算单元302,用于计算所述第一键得到第一校验值;
存储单元303,用于将所述第一键存储到第一地址;
映射单元304,用于在映射关系***所述第一校验值与所述第一地址的映射;
第二接收单元305,用于接收第一读请求;所述第一读请求携带所述第一键;
第二计算单元306,用于计算所述第一读请求携带所述第一键的第一校验值;
查询单元307,用于根据所述第一校验值查询所述映射关系获得所述第一地址;
读取单元308,用于读取所述第一地址中的键;
确定单元309,用于当确定所述读请求携带所述第一键与所述第一地址中的键相同时,确定所述第一地址中的键为所述第一键。
可选的,所述计算所述第一键得到第一校验值,具体为使用哈希算法计算所述第一键得到所述第一校验值。
可选的,所述写请求还携带值;
所述第一计算单元302,还用于计算所述值得到第二校验值;
所述存储单元303,还用于存储所述值与所述第二校验值。
可选的,所述第二接收单元305,还用于接收第二读请求;所述第二读请求携带所述第一键;
所述第二计算单元306,还用于计算所述第二读请求携带所述第一键的第一校验值;
所述查询单元307,还用于根据所述第一校验值查询所述映射关系获得第二地址;
所述读取单元308,还用于读取所述第二地址中的键;
所述确定单元309,还用于当确定所述第二读请求携带所述第一键与所述第二地址中的键不同时,确定所述第二地址中的键不是所述第一键。
可选的,当所述确定单元309确定所述第二读请求携带所述第一键与所述第二地址中的键不同时:
所述第二计算单元306,还用于计算所述第二地址中的键得到第三校验值;
当所述第一校验值与所述第三校验值相同时,所述确定单元309还用于确定所述第二地址中的键的校验值与所述第一校验值冲突。
采用本发明实施例方案,在存储数据时,仅存储键值、值和值的校验值,节省存储资源,在读取数据时,根据键的校验值查找键,从逻辑上实现对键的校验。
在本发明的另一个实施例中,在硬件实现上,可以由通信接口执行第一接收单元301、第二接收单元305和读取单元308的功能,可以由处理器或者处理器与存储器相结合执行第一计算单元302、存储单元303、映射单元304、查询单元307和确定单元309的功能,其中,用于存储数据的介质可以为外部存储介质。
可以理解,本发明实施例装置中使用的处理器可以是中央处理器(CPU),通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC),现场可编程门阵列(FPGA)或者其他可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。
本所属领域的技术人员可以清楚地了解到,本发明提供的各实施例的描述可以相互参照,为描述的方便和简洁,例如关于本发明实施例提供的各装置、设备的功能以及执行的步骤可以参照本发明方法实施例的相关描述。
结合本发明公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于用户设备中。当然,处理器和存储介质也可以作为分立组件存在于用户设备中。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、设备和方法,在没有超过本申请的范围内,可以通过其他的方式实现。例如,以上所描述的实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
另外,所描述***、设备和方法以及不同实施例的示意图,在不超出本申请的范围内,可以与其它***,模块,技术或方法结合或集成。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电子、机械或其它的形式。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (15)
1.一种数据校验方法,其特征在于,包括:
接收写请求;所述写请求中携带第一键;
计算所述第一键得到第一校验值;
将所述第一键存储到第一地址而不存储所述第一校验值,所述第一地址只存储一个键;
在映射关系***所述第一校验值与所述第一地址的映射;
接收第一读请求;所述第一读请求携带所述第一键;
计算所述第一读请求携带所述第一键的第一校验值;
根据所述第一校验值查询所述映射关系获得所述第一地址;
读取所述第一地址中的键;
当直接比较所述读请求携带所述第一键与所述第一地址中的键相同时,确定所述第一键通过所述第一校验值的校验;
当直接比较所述读请求携带所述第一键与所述第一地址中的键不同时,确定通过所述第一检验值对所述第一键的校验失败。
2.根据权利要求1所述的方法,其特征在于,所述计算所述第一键得到第一校验值,具体为使用哈希算法计算所述第一键得到所述第一校验值。
3.根据权利要求1或2所述的方法,其特征在于,所述写请求还携带值,所述方法还包括:
计算所述值得到第二校验值;
存储所述值与所述第二校验值。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收第二读请求;所述第二读请求携带所述第一键;
计算所述第二读请求携带所述第一键的第一校验值;
根据所述第一校验值查询所述映射关系获得第二地址;
读取所述第二地址中的键;
当直接比较所述第二读请求携带所述第一键与所述第二地址中的键不同时,确定所述第二地址中的键不是所述第一键。
5.根据权利要求4所述的方法,当确定所述第二读请求携带所述第一键与所述第二地址中的键不同时,所述方法还包括:
计算所述第二地址中的键得到第三校验值;
当所述第一校验值与所述第三校验值相同时,确定所述第二地址中的键的校验值与所述第一校验值冲突。
6.一种数据校验装置,其特征在于,包括:
第一接收单元,用于接收写请求;所述写请求中携带第一键;
第一计算单元,用于计算所述第一键得到第一校验值;
存储单元,用于将所述第一键存储到第一地址而不存储所述第一校验值,所述第一地址只存储一个键;
映射单元,用于在映射关系***所述第一校验值与所述第一地址的映射;
第二接收单元,用于接收第一读请求;所述第一读请求携带所述第一键;
第二计算单元,用于计算所述第一读请求携带所述第一键的第一校验值;
查询单元,用于根据所述第一校验值查询所述映射关系获得所述第一地址;
读取单元,用于读取所述第一地址中的键;
确定单元,用于当直接比较所述读请求携带所述第一键与所述第一地址中的键相同时,确定所述第一键通过所述第一校验值的校验;
所述确定单元,还用于当直接比较所述读请求携带所述第一键与所述第一地址中的键不同时,确定通过所述第一校验值对所述第一键的校验失败。
7.根据权利要求6所述的装置,其特征在于,所述计算所述第一键得到第一校验值,具体为使用哈希算法计算所述第一键得到所述第一校验值。
8.根据权利要求6或7的装置,其特征在于,所述写请求还携带值;
所述第一计算单元,还用于计算所述值得到第二校验值;
所述存储单元,还用于存储所述值与所述第二校验值。
9.根据权利要求6所述的装置,其特征在于,
所述第二接收单元,还用于接收第二读请求;所述第二读请求携带所述第一键;
所述第二计算单元,还用于计算所述第二读请求携带所述第一键的第一校验值;
所述查询单元,还用于根据所述第一校验值查询所述映射关系获得第二地址;
所述读取单元,还用于读取所述第二地址中的键;
所述确定单元,还用于当直接比较所述第二读请求携带所述第一键与所述第二地址中的键不同时,确定所述第二地址中的键不是所述第一键。
10.根据权利要求9所述的装置,其特征在于,当所述确定单元确定所述第二读请求携带所述第一键与所述第二地址中的键不同时:
所述第二计算单元,还用于计算所述第二地址中的键得到第三校验值;
当所述第一校验值与所述第三校验值相同时,所述确定单元还用于确定所述第二地址中的键的校验值与所述第一校验值冲突。
11.一种存储装置,其特征在于,所述存储设备包括通信接口,处理器和内存,所述内存与所述处理器连接,所述处理器通过总线与所述通信接口连接;
所述通信接口用于接收写请求;所述写请求中携带第一键;
所述处理器执行所述内存中的计算机执行指令用于计算所述第一键得到第一校验值,将所述第一键存储到第一地址而不存储所述第一校验值,所述第一地址只存储一个键,在映射关系***所述第一校验值与所述第一地址的映射;
所述通信接口还用于接收第一读请求;所述第一读请求携带所述第一键;
所述处理器执行所述内存中的计算机执行指令还用于计算所述第一读请求携带所述第一键的第一校验值,根据所述第一校验值查询所述映射关系获得所述第一地址,读取所述第一地址中的键,当直接比较所述读请求携带所述第一键与所述第一地址中的键相同时,确定所述第一键通过所述第一校验值的校验,当直接比较所述读请求携带所述第一键与所述第一地址中的键不同时,确定通过所述第一校验值对所述第一键的校验失败。
12.根据权利要求11所述的存储装置,其特征在于,所述计算所述第一键得到第一校验值,具体为使用哈希算法计算所述第一键得到所述第一校验值。
13.根据权利要求11或12所述的存储装置,其特征在于,所述写请求还携带值,所述处理器执行所述内存中的计算机执行指令还用于计算所述值得到第二校验值,存储所述值与所述第二校验值。
14.根据权利要求11所述的存储装置,其特征在于,所述通信接口还用于接收第二读请求;所述第二读请求携带所述第一键;
所述处理器执行所述内存中的计算机执行指令还用于计算所述第二读请求携带所述第一键的第一校验值,根据所述第一校验值查询所述映射关系获得第二地址,读取所述第二地址中的键,当直接比较所述第二读请求携带所述第一键与所述第二地址中的键不同时,确定所述第二地址中的键不是所述第一键。
15.根据权利要求14所述的存储装置,当所述处理器确定所述第二读请求携带所述第一键与所述第二地址中的键不同时,所述处理器执行所述内存中的计算机执行指令还用于计算所述第二地址中的键得到第三校验值,当所述第一校验值与所述第三校验值相同时,确定所述第二地址中的键的校验值与所述第一校验值冲突。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610741777.2A CN106339270B (zh) | 2016-08-26 | 2016-08-26 | 数据校验方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610741777.2A CN106339270B (zh) | 2016-08-26 | 2016-08-26 | 数据校验方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106339270A CN106339270A (zh) | 2017-01-18 |
CN106339270B true CN106339270B (zh) | 2021-11-19 |
Family
ID=57822540
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610741777.2A Active CN106339270B (zh) | 2016-08-26 | 2016-08-26 | 数据校验方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106339270B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312205B (zh) * | 2020-02-26 | 2022-07-29 | 腾讯科技(深圳)有限公司 | 数据校验方法、装置、存储介质和计算机设备 |
CN114490517A (zh) * | 2020-10-23 | 2022-05-13 | 华为技术有限公司 | 数据处理方法、装置、计算节点以及计算机可读存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9075798B2 (en) * | 2010-07-30 | 2015-07-07 | Adobe Systems Incorporated | Verifying authenticity of input using a hashing algorithm |
JP5524144B2 (ja) * | 2011-08-08 | 2014-06-18 | 株式会社東芝 | key−valueストア方式を有するメモリシステム |
CN102495834A (zh) * | 2011-10-18 | 2012-06-13 | 成都康赛电子科大信息技术有限责任公司 | 基于内存映像的增量数据清洗方法 |
CN103973810B (zh) * | 2014-05-22 | 2018-01-16 | 华为技术有限公司 | 基于互联网协议ip盘的数据处理方法和装置 |
-
2016
- 2016-08-26 CN CN201610741777.2A patent/CN106339270B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106339270A (zh) | 2017-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103116536B (zh) | 存储装置的容量检测方法 | |
US7343266B2 (en) | System and method for metadata verification during measurement processing | |
CN110908865A (zh) | 内存泄漏监控方法、装置及电子设备 | |
US9767057B2 (en) | Hardware data structure for tracking partially ordered and reordered transactions | |
CN115563914A (zh) | 验证方法及装置、计算设备、计算机可读存储介质 | |
US20230289295A1 (en) | Virtual Memory Management Method and Apparatus Supporting Physical Addresses Larger Than Virtual Addresses | |
CN106339270B (zh) | 数据校验方法及装置 | |
US9176821B2 (en) | Watchpoint support system for functional simulator | |
CN108108262A (zh) | 具有检查所选择的存储器访问的硬件检查单元的集成电路 | |
CN112585588A (zh) | 芯片的形式验证方法、设备和存储介质 | |
CN113342671B (zh) | 对运算模块进行验证的方法、装置、电子设备和介质 | |
CN117076330B (zh) | 一种访存验证方法、***、电子设备及可读存储介质 | |
CN112579591B (zh) | 数据校验方法、装置、电子设备及计算机可读存储介质 | |
CN106933750B (zh) | 用于多级缓存中数据及状态的验证方法及装置 | |
CN111857600A (zh) | 一种数据读写方法及装置 | |
CN115269199A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN116244127A (zh) | 一种硬盘检测方法、装置、设备以及存储介质 | |
US8359528B2 (en) | Parity look-ahead scheme for tag cache memory | |
CN112486723B (zh) | 数据校验方法、装置、处理器及电子设备 | |
CN107977282B (zh) | 一种SPI-Nand读取数据页的方法及装置 | |
US20170293573A1 (en) | Systems and methods for restricting write access to non-volatile memory | |
KR20110138946A (ko) | 변경된 메모리 주소를 추적하는 트랜잭션 메모리 시스템 및 방법 | |
CN108664417B (zh) | 一种目录更新方法及装置 | |
CN111124814A (zh) | Soc内存访问监控方法、装置和计算机设备 | |
CN106648558B (zh) | 用于TPL Dataflow 的控制方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |