CN109656886A - 基于键值对的文件***实现方法、装置、设备和存储介质 - Google Patents
基于键值对的文件***实现方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN109656886A CN109656886A CN201811604242.6A CN201811604242A CN109656886A CN 109656886 A CN109656886 A CN 109656886A CN 201811604242 A CN201811604242 A CN 201811604242A CN 109656886 A CN109656886 A CN 109656886A
- Authority
- CN
- China
- Prior art keywords
- key
- value pair
- file
- file system
- system interface
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种基于键值对的文件***实现方法、装置、设备及存储介质。该方法包括:文件***接口获取应用层的文件处理请求;文件***接口确定所述文件处理请求的目标文件的文件基础键值对;文件***接口在所述文件基础键值对值域的寻址区域中确定目标数据对应键值对的逻辑地址;文件***接口根据所述逻辑地址,对所述目标数据进行数据处理操作。采用本发明实施例的技术方案,文件***接口通过采用文件基础键值对来存储文件管理和寻址信息,从而与物理存储层中所存储的数据对应的键值对建立了关联,实现了基于键值对存储***的文件管理方式,提高了区块链***中文件的管理和寻址能力,为文件的快速查找、读取、写入等管理操作提供依据。
Description
技术领域
本发明实施例涉及区块链计算机数据存储技术领域,尤其涉及一种基于键值对的文件***实现方法、装置、设备和存储介质。
背景技术
目前的区块链***中包括应用层和底层数据存储***,而底层数据存储***所采用的底层数据存储技术有多种,其中比较广泛采用的一种就是键值对(Key Value,简称KV)存储***。KV存储***在区块链***应用层的控制下,支持区块链***的数据读写等访问处理。
在KV存储***中,会使用到很多键值对分别存储区块链***所需存储的各种数据。数据内容在KV存储***中的组织存储策略,通常由上层软件来决定。但是,KV存储***的数据结构有限,无法为上层软件日益丰富存储需求提供有效支持。典型的是,目前人们都比较习惯使用文件来管理数据,但是KV存储***无法支持文件的管理方式。
发明内容
本发明实施例提供了一种基于键值对的文件***实现方法、装置、设备和存储介质,从而通过KV存储***来支持区块链中的文件管理方式。
第一方面,本发明实施例提供了一种基于键值对的文件***实现方法,应用于区块链节点中,该方法包括:
文件***接口获取应用层的文件处理请求;
文件***接口确定所述文件处理请求的目标文件的文件基础键值对;
文件***接口在所述文件基础键值对值域的寻址区域中确定目标数据对应键值对的逻辑地址;
文件***接口根据所述逻辑地址,对所述目标数据进行数据处理操作。
第二方面,本发明实施例提供了一种基于键值对的文件***实现装置,所述装置配置于区块链节点的文件***接口中,该装置包括:
处理请求获取模块,用于获取应用层的文件处理请求;
基础键值对确定模块,用于确定所述文件处理请求的目标文件的文件基础键值对;
逻辑地址确定模块,用于在所述文件基础键值对值域的寻址区域中确定目标数据对应键值对的逻辑地址;
数据处理模块,用于根据所述逻辑地址,对所述目标数据进行数据处理操作。
第三方面,本发明实施例提供了一种设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所述的基于键值对的文件***实现方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所述的基于键值对的文件***实现方法。
本发明实施例提供的基于键值对的文件***实现方法、装置、设备及存储介质,文件***接口获取到应用层传输的文件处理请求后,确定文件处理请求的目标文件所关联的文件基础键值对,并从文件基础键值对值域的寻址区域中确定目标数据对应键值对的逻辑地址;而后根据逻辑地址并对目标数据进行处理。本方案,文件***接口通过采用文件基础键值对来存储文件管理和寻址信息,从而与物理存储层中所存储的数据对应的键值对建立了关联,实现了基于键值对存储***的文件管理方式,提高了区块链***中文件的管理和寻址能力,为文件的快速查找、读取、写入等管理操作提供依据。在物理存储层,可以不关注物理数据处理请求处理的是否为文件或其他形式,均可进行同样处理,因此文件处理请求不必收到物理存储层存储结构的制约。
附图说明
图1为本发明实施例所适用的区块链节点的***构架图;
图2A为本发明实施例一提供的一种基于键值对的文件***实现方法的流程图;
图2B为本发明实施例一提供的文件***基于键值对的存储结构示例图;
图3为本发明实施例二提供的一种基于键值对的文件***实现方法的流程图;
图4为本发明实施例三提供的一种基于键值对的文件***实现方法的流程图;
图5为本发明实施例四提供的一种基于键值对的文件***实现方法的流程图;
图6为本发明实施例五提供的一种基于键值对的文件***实现装置的结构示意图;
图7为本发明实施例六提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。
在介绍本发明各实施例之前,先对本发明实施例中***架构及可使用的底层存储***进行说明。如图1所示,本实施例的设备可以包括应用层,逻辑数据接口层,以及物理存储层。该设备优选是区块链节点设备。
其中,应用层可以是实现任何功能的软件,需产生各种数据处理请求。优选是,应用层为实现区块链节点功能的软件,区块链应用层的软件主要功能是产生事务请求,事务请求的执行过程会产生数据处理请求。该应用层包括用于支撑区块链节点本地区块链正常运行所需部署的软件,如可以包括虚拟机以及其他与区块链相关的应用软件等。
逻辑数据接口层包括实现至少一种数据处理逻辑的接口,如文件***接口、数据结构接口和搜索引擎接口,可以用于将应用层传输的不同数据形式(如文件形式、数据结构形式或搜索语句形式等)的逻辑数据处理请求映射为基于物理存储层的数据存储结构。本实施例重点介绍逻辑数据接口层中的文件***接口对文件形式的文件处理请求(即逻辑数据处理请求)的处理情况。
物理存储层用于对逻辑接口层传输的物理数据处理请求进行处理,并存储。本发明实施例中,可选用键值对(Key Value,简称KV)存储***作为物理存储层,更进一步的,该KV存储***为多版本KV存储***。
在多版本KV存储***中,每个键值对的存储单元中包括键域(key)和值域(value)。其中,键域存储有键标识和版本标识,版本标识可以作为键域中存储内容的一部分,例如,前缀或后缀。键标识可以为能体现数据实际含义的标识,如区块标识、事务标识、或账号名称等;键值对的值域可以用于存储数据本身。版本标识用于标识该键值对是在哪个版本所对应的物理数据处理请求执行过程中所修改的。
一个版本所对应的物理数据处理请求可以是一个,也可以是多个。例如,一个区块产生的过程中,会涉及多个事务请求,也会需要执行多个物理数据处理请求,如写入数据、删除数据、读取数据、更改数据等。那么可以配置为一个区块产生过程中所需执行的多个物理数据处理请求对应于一个版本标识。下一个区块则对应下一个版本标识。
例如,一个区块中的事务请求为A账户向B账户转移设定数额的货币,则A账户和B账户存储账户余额的键值对,都会因为该事务请求的执行而发生变化。将A账户和B账户的账户余额的旧键值对仍然保留,并产生账户余额的新键值对,前后两个键值对的版本标识发生变化。
当然,一个版本标识也可以对应于一次事务请求的处理过程,或多个区块的处理过程,可根据情况具体配置。在区块链节点中,记录键标识与各个版本标识的对应关系,区块链应用层可以通过键标识和版本标识的组合,访问到所需数据。
实施例一
图2A为本发明实施例一提供的一种基于键值对的文件***实现方法的流程图,本实施例可适用于如何将文件形式的数据转换为键值对的情况,尤其适用于基于区块链节点的***架构中的应用层、逻辑数据接口层中的文件***接口及物理存储层之间层级递进将文件转化为数据键值对的场景。下述实施例将以区块链***中的文件转换为键值对为例进行说明。但本领域技术人员可以理解,本发明实施例的技术方案可使用在区块链***中。该方法可由基于键值对的文件***实现装置来执行,该装置可采用软件和/或硬件的方式实现,并可集成于承载计算设备中,特别是作为区块链节点的计算设备中,作为逻辑数据接口层中的文件***接口。参见图2A,该方法具体包括:
S210,文件***接口获取应用层的文件处理请求。
本实施例中,文件***接口可以是一种虚拟或物理通信接口,可以与应用层进行数据交互,具体可以用于对应用层所传输的文件处理请求进行处理。
文件处理请求是应用层向文件***接口所传输的,用于请求其将文件形式转换为键值对数据存储形式;具体可以为区块链应用层向文件***接口所发送的,用于请求其将文件处理请求转换为物理存储层所能够识别并处理的键值对形式。文件处理请求中可以至少包括待处理的目标文件,以及任何控制或管理目标文件的操作请求,例如文件的读、写、修改或删除等文件操作请求。
具体的,区块链节点本地需要进行文件处理需求时,可以通过多种方式产生文件处理请求。例如,产生用于操作文件的文件事务请求,区块链应用层在执行文件事务请求的过程中产生一个或多个文件处理请求,并向逻辑数据接口层传输;逻辑数据接口层中的文件***接口获取区块链应用层的文件处理请求。
还可以是,用户在需要进行文件管理时,通过可视化文件***产生文件处理需求;可视化文件***通过本地操作***内核,将文件处理需求透传至部署于操作***内核的用户空间文件***,用户空间文件***确定待处理的目标文件,并将包括目标文件的文件处理需求传递至可与区块链应用层进行数据交互的交互模块,由交互模块向本地区块链应用层或其他区块链节点的区块链应用层发起包括目标文件的文件处理需求,以调用区块链应用层的文件智能合约,产生文件事务请求;区块链应用层获取文件事务请求,并在执行文件事务请求的过程中产生文件处理请求,向逻辑数据接口层传输该文件处理请求;逻辑数据接口层中的文件***接口获取区块链应用层的文件处理请求。
当然,也可以通过其他手段在区块链应用层发起文件处理请求。
S220,文件***接口确定文件处理请求的目标文件的文件基础键值对。
由于物理存储层为键值对存储***,更进一步的,该KV存储***为多版本KV存储***,因此文件***接口需将获取的文件处理请求转换为键值对的数据形式。可选的,可为每个存储文件设置一个文件基础键值对,也可以称为基础文件列表。文件基础键值对还可以通过层级关系包括至少一个关联键值对来扩展文件的存储空间。每个文件基础键值对包括键域(Key)和值域(Value),键域用于存储键标识,值域用于存储与键域中键标识相关联的目标数据的地址内容;键标识可以是目标文件的名称,可选的,文件基础键值对的键域用于存储文件名称。如图2B所示,文件存储至文件基础键值对200中,其中,文件基础键值对200的键域201中存储文件名称,文件基础键值对200的值域202中存储地址内容。
本实施例中,由于文件基础键值对是每个文件的存储基础,当锁定了文件基础键值对即可确定整个文件下各数据的存储地址。因此可以根据文件处理请求确定目标文件的文件名称,而后以文件名称为索引即可确定目标文件的文件基础键值对。
需要说明的是,若文件***接口中未存储目标文件的文件基础键值对,则可以产生新文件基础键值对作目标文件的文件基础键值对,将目标文件的文件名称写入新文件基础键值对的键域,将目标文件中各数据的地址内容写入新文件基础键值对的值域。
S230,文件***接口在文件基础键值对值域的寻址区域中确定目标数据对应键值对的逻辑地址。
本实施例中,文件基础键值对值域中还可以包括寻址区域,寻址区域用于记录文件中各数据内容的逻辑地址,逻辑地址是指按照数据在逻辑数据接口层的存储逻辑给出的目标数据的存储路径,例如,一个文件可能的逻辑地址是包括文件中各个数据的存储位置,存储位置可能是连续的。逻辑地址与物理地址有对应关系,此对应关系通常有物理存储层来管理;物理地址是真正存储目标数据的位置,如由磁盘的柱面、头、段等物理位置所确定的地址。例如,在物理存储层中该文件各个数据的存储位置可能是不连续的。
可选的,物理存储层存储有目标数据对应键值对即数据键值对,数据键值对存储于物理存储层的存储空间内,数据键值对的键域存储键标识,数据键值对的值域用于存储数据。文件***接口存储的地址键值对的键标识与物理存储层存储的数据键值对的键标识可能是相同或有对应关系的。
具体的,文件***接口在确定目标文件的文件基础键值对之后,可从文件基础键值对值域的寻址区域中确定目标数据对应键值对的逻辑地址。
可选的,如图2B所示,值域202中的寻址区域可以包括直接寻址区域222、间接寻址区域223、双间接寻址区域224、三间接寻址区域225以及具有更多层级关系相关联的扩展存储空间。其中,直接寻址区域222中直接记录有数据对应键值对的逻辑地址,即存储直接地址键值对,直接地址键值对的键域存储有键标识,值域存储数据键值对的逻辑地址。
间接寻址区域223值域的寻址区域中记录有指向一级地址键值对241的存储地址,一级地址键值对241值域的寻址区域中记录有数据对应键值对的逻辑地址。其中,地址键值对与文件基础键值对的结构相似,地址键值对的键域中用于存储键标识,而地址键值对值域中的寻址区域用于存储与键标识相关联的且指向数据对应键值对的逻辑地址或下一级地址键值对的存储地址。
双间接寻址区域224值域的寻址区域中记录有指向二级地址键值对242的存储地址,二级地址键值对242值域的寻址区域中记录有指向一级地址键值对241的存储地址,相应的,一级地址键值对241值域的寻址区域中记录有指向数据对应键值对的逻辑地址。同理,三间接寻址区域225值域的寻址区域中记录有指向三级地址键值对243的存储地址,三级地址键值对243值域的寻址区域中记录有指向二级地址键值对242的存储地址,以此类推。
需要说明的是,各寻址区域之间是层级递进的,且不同的寻址区域所能存储的地址数量不同,也可相同。例如,如果直接寻址区域222所能存储的地址数量达到设定条件,则可从文件基础键值对200值域202的间接寻址区域223中进行寻址;当寻址层级较少的间接寻址区域所能存储的地址数量达到设定条件,则从相邻的寻址层级较多的间接寻址区域中进行寻址,以此类推,直到确定一级键值对的地址,并通过一级键值对确定数据对应键值对的逻辑地址。
示例性的,结合具体的文件处理场景,如果需要向文件中写入数据,则在目标文件的文件基础键值对的基础上,将所要写入数据的逻辑地址依据寻址层级关系依次顺序写入文件基础键值对的寻址区域中。如果需要从文件中读取数据,则依据寻址层级关系从文件基础键值对的寻址区域中获取待读取数据所对应键值对的逻辑地址。
示例性的,文件***接口在文件基础键值对值域的寻址区域中确定目标数据对应键值对的逻辑地址可以包括:文件***接口根据文件处理请求中目标数据在文件中的位置,在文件基础键值对值域的寻址区域中确定目标数据对应键值对的逻辑地址。
本实施例中,目标数据在文件中的位置可以为目标数据在文件中的偏移量。具体的,在文件***接口确定目标文件的文件基础键值对后;可以根据目标数据在文件中的位置即偏移量,以及各寻址区域所能存储地址数量,确定文件基础键值对值域中存储目标数据的地址键值对的寻址区域;而后从该寻址区域中确定目标数据对应键值对的逻辑地址。可选的,若该寻址区域为直接寻址区域,则可直接获取数据对应键值对的逻辑地址;若该寻址区域为间接寻址区域、双间接寻址区域或其他寻址区域,则需按照层级递进的方式,获取数据对应键值对的逻辑地址。
S240,文件***接口根据逻辑地址,对目标数据进行数据处理操作。
具体的,文件***接口可以将逻辑地址传输至物理存储层,以使物理存储层依据逻辑地址确定物理地址,而后依据该物理地址定位至目标数据位置处,并对目标数据进行处理。
示例性的,文件***接口根据逻辑地址,对目标数据进行数据处理操作可以包括:
A、文件***接口根据逻辑地址,产生物理数据处理请求,并传输给键值对存储***,以进行数据处理操作,其中,键值对存储***作为物理存储层。
本实施例中,物理数据处理请求用于请求物理存储层对存储空间中的数据进行写入、删除、更改或读取等处理。可选的,物理数据处理请求中也可以包括待处理数据,以及对待处理数据的操作方式等。且物理数据处理请求中的待处理数据的数据形式与物理存储层的数据存储结构相同,如键值对形式的数据存储结构。
具体的,文件***接口可以根据逻辑地址产生物理数据处理请求,并传输给物理存储层,以请求物理存储层对物理数据处理请求中的目标数据进行处理。
B、键值对存储***将逻辑地址转换为物理地址,并根据物理地址对物理键值对中的数据进行数据处理操作。
具体的,物理存储层接收到文件***接口所传输的物理数据处理请求后,可以将逻辑地址转换为物理地址,而后依据物理地址定位至目标数据位置处,并根据物理数据处理请求所指定的操作方式对目标数据进行处理。
本发明实施例提供的技术方案,文件***接口获取到应用层传输的文件处理请求后,确定文件处理请求的目标文件所关联的文件基础键值对,并从文件基础键值对值域的寻址区域中确定目标数据对应键值对的逻辑地址;而后根据逻辑地址并对目标数据进行处理。本方案,文件***接口通过采用文件基础键值对来存储文件管理和寻址信息,从而与物理存储层中所存储的数据对应的键值对建立了关联,实现了基于键值对存储***的文件管理方式,提高了区块链***中文件的管理和寻址能力,为文件的快速查找、读取、写入等管理操作提供依据。在物理存储层,可以不关注物理数据处理请求处理的是否为文件或其他形式,均可进行同样处理,因此文件处理请求不必收到物理存储层存储结构的制约。
实施例二
图3为本发明实施例二提供的一种基于键值对的文件***实现方法的流程图,本实施例在上述实施例的基础上,进一步对文件***接口在文件基础键值对值域的寻址区域中确定目标数据对应键值对的逻辑地址进行解释说明。如图3所示,该方法包括以下具体步骤:
S310,文件***接口获取应用层的文件处理请求。
S320,文件***接口确定文件处理请求的目标文件的文件基础键值对。
S330,文件***接口根据文件基础键值对值域的权限区域中记录的权限,识别文件处理请求发起者的权限,并根据发起者的权限响应文件处理请求。
鉴于KV存储***中文件的安全性和稳定性,防止文件的任意篡改,本实施例还可以对访问权限进行限制,在文件基础键值对值域中设置权限区域,用于识别文件处理请求发起者的权限。如图2所示,权限区域221用于记录至少一种角色的读、写和权限管理的权限。其中,权限可以包括文件的读、写、修改、删除等管理权限。角色是指文件访问者的身份标识,可以包括创建者或拥有者、群组以及其他人等。可以理解的是,创建者或拥有者可以配置有全部权限或者较高级别的权限;群组是指创建者或拥有者设定的包括多人的群组结构,群组中每个人都设置有对应的角色,其权限配置可以低于创建者或拥有者;其他人可以是指权限较低或没有权限的访问者。为不同角色配置不同的权限,通过权限值的形式来表现。
相应的,文件处理请求中还可以包括发起者的角色。进而通过对文件处理请求发起者角色的识别,以及在基础键值对值域的权限区域中记录的权限,以此来识别文件处理请求发起者的权限,并根据发起者的权限响应文件处理请求。可以理解的是,只有识别出发起者具有与文件处理请求的处理方式相关联的权限,才可以继续响应其对文件的操作,否则请求无效。
示例性的,假设权限值10表示具有写数据权限,权限值11表示无写数据权限;权限值20表示具有读取数据权限,权限值21表示无读取数据权限。基础键值对数值区域的权限区域中记录了角色为创建者或拥有者的权限值为10和20,记录群组的权限值为11和20。并假设文件处理请求发起者的角色为创建者,文件处理请求包括的处理操作为写入操作。进而根据文件处理请求中包括的发起者的角色,可以确定该发起者具有写数据权限和读取数据权限,因此可以继续响应该文件处理请求的后续操作流程。而当确定发起者无相应操作的权限时,可以反馈无权限提示,并不进行文件处理请求的后续操作流程。
S340,文件***接口在文件基础键值对值域的直接寻址区域中确定目标数据对应键值对的逻辑地址。
具体的,文件***接口可以直接从文件基础键值对值域的直接寻址区域中确定目标数据对应键值对的逻辑地址。由于直接寻址区域中直接存储了目标数据对应键值对的逻辑地址,因此若目标数据的逻辑地址存储于直接寻址区域中的,则可以快速确定目标数据对应键值对的逻辑地址,提升数据的访问速度。因此,本实施例中优选将数据对应键值对的逻辑地址存储于文件基础键值对的直接寻址区域中。
可选的,文件基础键值对的值域可以数组形式进行数据存储。示例性的,预先配置键值对的值域中空间大小可以为4K。基础键值对的寻址区域支持的数据类型为int 64,权限区域可以固定为128字节,可选的包括493个直接寻址区域、1个间接寻址区域、1个双间接寻址区域以及1个三间接寻址区域。其中,493个直接寻址区域可以存储493*4K=1972K的数据,1个间接寻址区域可以存储512*4K=2M的数据,1个双间接寻址区域可以存储512*2M=1G的数据,1个三间接寻址区域可以存储512*1G=512G的数据。进而通过应用层对键值对存储***的配置,键值对存储***可以容纳下足够大的文件。
示例性的,如果直接寻址区域所能存储的地址数量达到设定条件,则文件***接口在文件基础键值对值域的间接寻址区域中确定一级地址键值对的地址;文件***接口在一级地址键值对值域中的寻址区域确定目标数据对应键值对的逻辑地址。
本实施例中,设定条件是指预先设定的,直接寻址区域所能存储地址的数量。具体的,如果直接寻址区域所能存储的地址数量达到设定条件,即达到直接寻址区域的存储数量上限,或在上限之内预设的存储条件,文件***接口则依据文件存储的文件基础键值对的数据结构,从文件基础键值对值域的间接寻址区域中确定一级地址键值对的地址,根据一级地址键值对的地址确定一级地址键值对,并根据一级地址键值对值域中的寻址区域确定目标数据对应键值对的逻辑地址。
可选的,基础键值对值域中还包括双间接寻址区域和三间接寻址区域;双间接寻址区域用于存储二级地址键值对的地址;三间接寻址区域用于存储三级地址键值对的地址;三级地址键值对的值域用于存储二级地址键值对的地址;二级地址键值对的值域用于存储一级地址键值对的地址。
具体的,如果间接寻址区域所能存储的地址数量达到设定条件,文件***接口则依据文件存储的文件基础键值对的数据结构,从文件基础键值对值域的双间接寻址区域中确定二级地址键值对的地址,根据二级地址键值对的地址确定二级地址键值对,并从二级地址键值对值域中的寻址区域中确定一级地址键值对的地址,根据一级地址键值对的地址确定一级地址键值对,并根据一级地址键值对值域中的寻址区域确定目标数据对应键值对的逻辑地址。
同理,如果双间接寻址区域所能存储的地址数量达到设定条件,文件***接口则从文件基础键值对值域的三间接寻址区域中,逐层确定三级地址键值对的地址、二级地址键值对的地址、一级地址键值对的地址以及目标数据对应键值对的逻辑地址。
S350,文件***接口根据逻辑地址,对目标数据进行数据处理操作。
本发明实施例提供的技术方案,文件***接口在获取到应用层的文件处理请求时,确定文件处理请求所关联的文件基础键值对,以及文件处理请求发起者的权限,依据权限进行文件基础键值对的响应操作流程;依据文件基础键值对的数据结构,从文件基础键值对值域的寻址区域中确定目标数据对应键值对的逻辑地址,而后根据逻辑地址并对目标数据进行处理。本文件***接口通过采用文件基础键值对来存储文件管理和寻址信息,从而与物理存储层中所存储的数据对应的键值对建立了关联,实现了基于键值对存储***的文件管理方式,提高了区块链***中文件的管理和寻址能力,为文件的快速查找、读取、写入等管理操作提供依据。
实施例三
图4为本发明实施例三提供的一种基于键值对的文件***实现方法的流程图,本实施例在上述实施例的基础上,在键值对存储***作为物理存储层,且键值对存储***进一步为多版本键值对存储***的情况下,进一步对文件***接口根据逻辑地址,对目标数据进行数据处理操作进行解释说明。如图4所示,该方法包括以下具体步骤:
S410,文件***接口获取应用层的文件处理请求。
S420,文件***接口确定文件处理请求的目标文件的文件基础键值对。
S430,文件***接口在文件基础键值对值域的寻址区域中确定目标数据对应键值对的逻辑地址。
S440,文件***接口根据文件处理请求确定目标数据的版本信息。
本实施例中,版本信息可以用于表示目标数据被写入的事务请求所属区块的信息,如可以是区块标识。区块标识是指用于唯一识别某一区块的标志,如区块ID。可选的,版本信息可以包括事务请求所属区块的区块标识;和/或目标数据最近被写入的事务请求所属区块的区块标识。不同的区块所对应的版本信息不同。
可选的,文件处理请求中可以包括待处理的目标文件、目标数据以及目标数据的版本信息。因此,文件***接口可以从文件处理请求中获取目标数据以及目标数据的版本信息。
示例性的,文件***接口获取应用层的文件处理请求之前,还可以包括:区块链应用层在执行事务请求的过程中,确定事务请求所操作的目标数据,以及目标数据的版本信息,版本信息用于添加至文件处理请求中传输给文件***接口。
本实施例中,区块链应用层向文件***接口所传输的文件处理请求中的目标数据,是区块链应用层执行事务请求过程中所要依赖的数据。例如,某一事务请求为账户A向账户B转账,目标数据可以包括账户A余额和账户B余额等。可选的,目标数据具体可以包括事务请求执行前所依赖数据的数值,以及事务请求执行后所依赖数据的数值。例如,事务请求执行前账户A余额值,以及事务请求执行后账户A余额值。
具体的,区块链应用层可以从本地或其他节点获取事务请求,若事务请求为智能合约,对于本地所发起的事务请求而言,区块链应用层可以调用本地虚拟机,在本地预先执行所发起的事务请求,进而确定该事务请求所操作的目标数据。对于从其他节点接收的事务请求而言,区块链应用层也可以调用本地虚拟机,执行该事务请求,进而确定该事务请求所操作的目标数据。
而后,如果区块链应用层确定事务请求对目标数据的操作方式是数据写入操作,则可以将当前区块的区块标识确定为目标数据的当前版本信息。如果区块链应用层确定事务请求对目标数据的操作方式是数据更改操作(如更改某一账户余额),数据删除操作(如将某一账户清空,则可以将该账户余额删除),或者数据读取操作(如需查询某一账户余额时,则可以读取该账户余额)时,则需获取目标数据的原版本信息,同时将当前区块的区块标识确定为目标数据的当前版本信息。其中,原版本信息是指执行事务请求之前,目标数据被写入的事务请求所属区块的区块标识;可以是前一区块的区块标识,也可以是历史任意区块的区块标识;还可以是默认为目标数据最近被写入的事务请求所属区块的区块标识。
区块链应用层在确定事务请求所操作的目标数据,以及目标数据的版本信息后,产生用于操作目标数据的文件处理请求,并将版本信息用于添加至文件处理请求中传输给文件***接口;文件***接口从文件处理请求中获取目标数据的版本信息。
S450,文件***接口根据逻辑地址和版本信息,产生物理数据处理请求,并传输给多版本键值对存储***,以进行数据处理操作。
可选的,文件***接口对于区块链应用层所传输的文件处理请求中的版本信息可以不做任何处理,而是透传给物理存储层;也可以将版本信息转换为物理存储层中所需的版本标识,传输给物理存储层等。为了简化逻辑文件***接口的操作,本实施例中优选将版本信息透传给物理存储层。此外,物理数据处理请求中至少包括目标数据、目标数据的逻辑地址以及目标数据的版本信息等。
具体的,文件***接口可以根据逻辑地址和版本信息产生物理数据处理请求,并传输给物理存储层。
S460,多版本键值对存储***将逻辑地址转换为物理地址,并根据物理地址对物理键值对中的数据进行数据处理操作。
本实施例中,物理键值对即为真正存储目标数据的键值对。与地址键值对结构相同,物理键值对包括键域和值域,键域中存储有键标识和版本标识,值域中存储有数据。可选,对于同一目标数据,其在文件***接口的地址键值对的键标识与物理存储层中的物理键值对的键标识相同。
版本标识是一个起到唯一标识作用的标识符,用于标识对当前物理数据处理请求所涉及数据的更新操作。可选的,版本标识与版本信息相对应,版本标识可以是版本信息,也可以是版本信息与流水号所组成,还可以是流水号等。不同区块对应不同的版本标识。例如,第100个区块的版本标识可以是0100+第100个区块的区块标识,第101个区块的版本标识可以是0101+第101个区块的区块标识。
具体的,物理存储层可以根据物理数据处理请求中目标数据的版本信息确定版本标识,并根据物理数据处理请求中的逻辑地址确定目标数据所对应的键标识;依据键标识和版本标识,确定目标数据的物理地址,而后依据该物理地址定位至目标数据位置处,依据物理数据处理请求所指定的操作方式对目标数据进行处理。
在本实施例中,区块链应用层中可记录基于各次文件事务请求对文件进行操作的版本信息。例如,记录在发起A文件的文件创建事务请求时的区块ID,作为版本信息;随后发起针对A文件的文件数据更新事务请求时的区块ID,并具体记录针对A文件中哪些目标数据进行添加、删除或更改的目标数据。最后在发起A文件的文件删除事务请求时,也可对应记录此次文件删除事务请求的区块ID,作为版本信息。
由此,保存了文件中各个具体数据被添加或修改的历次事务请求所对应的版本信息。在用户需要打开A文件时,用户不需要关注打开文件的哪个版本,而是由区块链应用层来确定文件以及其具体数据所对应的最近版本信息,并将版本信息传输给逻辑层的文件***接口,文件***接口又将版本信息传输给物理存储***,获取最近的正确版本的具体数据,从而向用户反馈正确的文件数据。区块链应用层可在调用虚拟机执行智能合约的同时确定版本信息,也传入新版本信息。当然,本领域技术人员可以理解,区块链节点也可以采用其他手段记录文件数据的版本信息并按照需要使用各次版本信息。
本发明实施例提供的技术方案,数文件***接口获取到应用层传输的文件处理请求后,确定文件处理请求的目标文件所关联的文件基础键值对,并从文件基础键值对值域的寻址区域中确定目标数据对应键值对的逻辑地址;而后根据逻辑地址并对目标数据进行处理。本方案文件***接口通过采用文件基础键值对来存储文件管理和寻址信息,从而与物理存储层中所存储的数据对应的键值对建立了关联,实现了基于键值对存储***的文件管理方式,提高了区块链***中文件的管理和寻址能力,为文件的快速查找、读取、写入等管理操作提供依据。此外,物理存储层采用多版本键值对存储***,通过引入版本标识,当区块链***存在区块回滚和重做的需求,例如发生分叉时需要回滚,那么基于本发明实施例所提供的多版本键值对存储***能够方便的切换至之前任何版本的键值对数据,不需要进行大量键值对的数据调整,同样就避免了索引的调整。同时。当区块链节点存在区块同步需求时,每个区块中事务请求所新增或改写的数据,会对应一个新的版本标识进行键值对存储,不影响已有版本标识键值对中的数据,即数据和数据的索引具有快照功能,方便在不停机的状态下进行同步操作。
实施例四
图5为本发明实施例四提供的一种基于键值对的文件***实现方法的流程图,本实施例在上述实施例的基础上,进一步的优化。如图5所示,该方法包括以下具体步骤:
S510,区块链应用层根据文件智能合约,产生文件事务请求,向区块链网络发起,以请求区块链节点执行文件事务请求,对目标文件中的目标数据进行处理,其中,文件事务请求在执行过程中产生文件处理请求。
本实施例中,文件事务请求是指数据形式为文件的事务请求;智能合约是指基于插件机制所编写的可供区块链网络中的节点调用并执行的代码段,一个智能合约的执行可实现至少一种功能或处理一类事务请求。文件智能合约是智能合约中的一种,专门用于产生文件事务请求。
具体的,区块链节点本地具有文件处理需求时,可以通过区块链应用层调用文件智能合约;区块链应用层将目标数据,或目标数据和版本信息等作为文件智能合约的参数,产生文件事务请求,并将该文件事务请求传输至区块链网络。区块链网络中的区块链节点获取到该文件事务请求后,可以通过本地区块链应用层执行该文件事务请求,且在执行该文件事务请求的过程中产生文件处理请求,向文件***接口传输;文件***接口获取区块链应用层的文件处理请求,并对该文件处理请求进行处理。由此,区块链应用层可支持的智能合约数据存储形式将更加丰富。
S520,文件***接口获取应用层的文件处理请求。
S530,文件***接口确定文件处理请求的目标文件的文件基础键值对。
S540,文件***接口在文件基础键值对值域的寻址区域中确定目标数据对应键值对的逻辑地址。
S550,文件***接口根据逻辑地址,对目标数据进行数据处理操作。
本发明实施例提供的技术方案,文件***接口获取到应用层传输的文件处理请求后,确定文件处理请求的目标文件所关联的文件基础键值对,并从文件基础键值对值域的寻址区域中确定目标数据对应键值对的逻辑地址;而后根据逻辑地址并对目标数据进行处理。本方案,文件***接口通过采用文件基础键值对来存储文件管理和寻址信息,从而与物理存储层中所存储的数据对应的键值对建立了关联,实现了基于键值对存储***的文件管理方式,提高了区块链***中文件的管理和寻址能力,为文件的快速查找、读取、写入等管理操作提供依据。
实施例五
图6为本发明实施例五提供的一种基于键值对的文件***实现装置的结构示意图,该装置可配置于计算设备中,特别是作为区块链节点的计算设备文件***接口中,可执行本发明任意实施例所提供的基于键值对的文件***实现方法,具备执行方法相应的功能模块和有益效果。如图6所示,该装置包括:
处理请求获取模块610,用于获取应用层的文件处理请求;
基础键值对确定模块620,用于确定文件处理请求的目标文件的文件基础键值对;
逻辑地址确定模块630,用于在文件基础键值对值域的寻址区域中确定目标数据对应键值对的逻辑地址;
数据处理模块640,用于根据逻辑地址,对目标数据进行数据处理操作。
本发明实施例提供的技术方案,文件***接口获取到应用层传输的文件处理请求后,确定文件处理请求的目标文件所关联的文件基础键值对,并从文件基础键值对值域的寻址区域中确定目标数据对应键值对的逻辑地址;而后根据逻辑地址并对目标数据进行处理。本方案,文件***接口通过采用文件基础键值对来存储文件管理和寻址信息,从而与物理存储层中所存储的数据对应的键值对建立了关联,实现了基于键值对存储***的文件管理方式,提高了区块链***中文件的管理和寻址能力,为文件的快速查找、读取、写入等管理操作提供依据。在物理存储层,可以不关注物理数据处理请求处理的是否为文件或其他形式,均可进行同样处理,因此文件处理请求不必收到物理存储层存储结构的制约。
示例性的,逻辑地址确定模块630可以具体用于:
根据文件处理请求中目标数据在文件中的位置,在文件基础键值对值域的寻址区域中确定目标数据对应键值对的逻辑地址。
示例性的,逻辑地址确定模块630还可以具体用于:
在文件基础键值对值域的直接寻址区域中确定目标数据对应键值对的逻辑地址。
示例性的,逻辑地址确定模块630还可以用于:
如果直接寻址区域所能存储的地址数量达到设定条件,则在文件基础键值对值域的间接寻址区域中确定一级地址键值对的地址;
在一级地址键值对值域中的寻址区域中确定目标数据对应键值对的逻辑地址。
示例性的,文件基础键值对值域中还包括双间接寻址区域和三间接寻址区域;
双间接寻址区域用于存储二级地址键值对的地址;
三间接寻址区域用于存储三级地址键值对的地址;
三级地址键值对的值域用于存储二级地址键值对的地址;
二级地址键值对的值域用于存储一级地址键值对的地址。
示例性的,上述装置还可以包括:
请求响应模块,用于在确定文件处理请求的目标文件的文件基础键值对之后,文件***接口根据文件基础键值对值域的权限区域中记录的权限,识别文件处理请求发起者的权限,并根据发起者的权限响应文件处理请求;其中,权限区域用于记录至少一种角色的读、写和权限管理的权限。
示例性的,文件基础键值对的键域用于存储文件名称。
示例性的,数据处理模块640可以包括:
请求传输单元,用于根据逻辑地址,产生物理数据处理请求,并传输给键值对存储***,以进行数据处理操作,其中,键值对存储***作为物理存储层;
数据处理单元,用于键值对存储***将逻辑地址转换为物理地址,并根据物理地址对物理键值对中的数据进行数据处理操作。
示例性的,请求传输单元可以具体用于:
根据文件处理请求确定目标数据的版本信息;
根据逻辑地址和版本信息,产生物理数据处理请求,并传输给多版本键值对存储***,以进行数据处理操作。
示例性的,上述装置还可以包括:
数据信息确定模块,用于在获取应用层的文件处理请求之前,区块链应用层在执行事务请求的过程中,确定事务请求所操作的目标数据,以及目标数据的版本信息,版本信息用于添加至文件处理请求中传输给文件***接口。
示例性的,版本信息可以包括:事务请求所属区块的区块标识;和/或目标数据最近被写入的事务请求所属区块的区块标识。
示例性的,上述装置还可以包括:
事务请求发起模块,用于在获取应用层的文件处理请求之前,区块链应用层根据文件智能合约,产生文件事务请求,向区块链网络发起,以请求区块链节点执行文件事务请求,对目标文件中的目标数据进行处理,其中,文件事务请求在执行过程中产生文件处理请求。
实施例六
图7为本发明实施例六提供的一种设备的结构示意图,图7示出了适于用来实现本发明实施例实施方式的示例性设备的框图。图7显示的设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。设备12典型可以是计算设备,也可以是承担区块链网络节点功能的计算设备。
如图7所示,设备12以通用计算设备的形式表现。设备12的组件可以包括但不限于:一个或者多个处理器16,***存储器28,连接不同***组件(包括***存储器28和处理器16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,***总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及***组件互连(PCI)总线。
设备12典型地包括多种计算机***可读介质。这些介质可以是任何能够被设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
***存储器28可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机***存储介质。仅作为举例,存储***34可以用于读写不可移动的、非易失性磁介质(图7未显示,通常称为“硬盘驱动器”)。尽管图7中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。***存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明实施例各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如***存储器28中,这样的程序模块42包括但不限于操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明实施例所描述的实施例中的功能和/或方法。
设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该设备12交互的设备通信,和/或与使得该设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与设备12的其它模块通信。应当明白,尽管图中未示出,可以结合设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
处理器16通过运行存储在***存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的基于键值对的文件***实现方法。
实施例七
本发明实施例七还提供一种计算机可读存储介质,其上存储有计算机程序(或称为计算机可执行指令),该程序被处理器执行时用于执行一种基于键值对的文件***实现方法,该方法包括:
获取应用层的文件处理请求;
确定文件处理请求的目标文件的文件基础键值对;
在文件基础键值对值域的寻址区域中确定目标数据对应键值对的逻辑地址;
根据逻辑地址,对目标数据进行数据处理操作。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明实施例操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或设备上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明实施例进行了较为详细的说明,但是本发明实施例不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (15)
1.一种基于键值对的文件***实现方法,其特征在于,应用于区块链节点,所述方法包括:
文件***接口获取应用层的文件处理请求;
文件***接口确定所述文件处理请求的目标文件的文件基础键值对;
文件***接口在所述文件基础键值对值域的寻址区域中确定目标数据对应键值对的逻辑地址;
文件***接口根据所述逻辑地址,对所述目标数据进行数据处理操作。
2.根据权利要求1所述的方法,其特征在于,文件***接口在所述文件基础键值对值域的寻址区域中确定目标数据对应键值对的逻辑地址,包括:
文件***接口根据所述文件处理请求中目标数据在文件中的位置,在所述文件基础键值对值域的寻址区域中确定目标数据对应键值对的逻辑地址。
3.根据权利要求1所述的方法,其特征在于,文件***接口在所述文件基础键值对值域的寻址区域中确定目标数据对应键值对的逻辑地址,包括:
所述文件***接口在所述文件基础键值对值域的直接寻址区域中确定目标数据对应键值对的逻辑地址。
4.根据权利要求3所述的方法,其特征在于,还包括:
如果所述直接寻址区域所能存储的地址数量达到设定条件,则文件***接口在所述文件基础键值对值域的间接寻址区域中确定一级地址键值对的地址;
所述文件***接口在所述一级地址键值对值域中的寻址区域中确定目标数据对应键值对的逻辑地址。
5.根据权利要求4所述的方法,其特征在于:
所述文件基础键值对值域中还包括双间接寻址区域和三间接寻址区域;
所述双间接寻址区域用于存储二级地址键值对的地址;
所述三间接寻址区域用于存储三级地址键值对的地址;
所述三级地址键值对的值域用于存储二级地址键值对的地址;
所述二级地址键值对的值域用于存储一级地址键值对的地址。
6.根据权利要求1-5中任一项所述的方法,其特征在于,文件***接口在确定所述文件处理请求的目标文件的文件基础键值对之后,还包括:
文件***接口根据所述文件基础键值对值域的权限区域中记录的权限,识别所述文件处理请求发起者的权限,并根据所述发起者的权限响应所述文件处理请求;
其中,所述权限区域用于记录至少一种角色的读、写和权限管理的权限。
7.根据权利要求1-5中任一项所述的方法,其特征在于:所述文件基础键值对的键域用于存储文件名称。
8.根据权利要求1所述的方法,其特征在于,文件***接口根据所述逻辑地址,对所述目标数据进行数据处理操作,包括:
文件***接口根据所述逻辑地址,产生物理数据处理请求,并传输给键值对存储***,以进行数据处理操作,其中,所述键值对存储***作为物理存储层;
所述键值对存储***将所述逻辑地址转换为物理地址,并根据物理地址对物理键值对中的数据进行数据处理操作。
9.根据权利要求8所述的方法,其特征在于,文件***接口根据所述逻辑地址,产生物理数据处理请求,并传输给键值对存储***,以进行数据处理操作,包括:
文件***接口根据所述文件处理请求确定目标数据的版本信息;
文件***接口根据所述逻辑地址和所述版本信息,产生所述物理数据处理请求,并传输给多版本键值对存储***,以进行数据处理操作。
10.根据权利要求9所述的方法,其特征在于,文件***接口获取应用层的文件处理请求之前,还包括:
区块链应用层在执行事务请求的过程中,确定所述事务请求所操作的目标数据,以及目标数据的版本信息,所述版本信息用于添加至文件处理请求中传输给文件***接口。
11.根据权利要求9所述的方法,其特征在于,所述版本信息包括:事务请求所属区块的区块标识;和/或所述目标数据最近被写入的事务请求所属区块的区块标识。
12.根据权利要求1所述的方法,其特征在于,文件***接口获取应用层的文件处理请求之前,还包括:
区块链应用层根据文件智能合约,产生文件事务请求,向区块链网络发起,以请求区块链节点执行所述文件事务请求,对目标文件中的目标数据进行处理,其中,所述文件事务请求在执行过程中产生所述文件处理请求。
13.一种基于键值对的文件***实现装置,其特征在于,所述装置配置于区块链节点的文件***接口中,所述装置包括:
处理请求获取模块,用于获取应用层的文件处理请求;
基础键值对确定模块,用于确定所述文件处理请求的目标文件的文件基础键值对;
逻辑地址确定模块,用于在所述文件基础键值对值域的寻址区域中确定目标数据对应键值对的逻辑地址;
数据处理模块,用于根据所述逻辑地址,对所述目标数据进行数据处理操作。
14.一种设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-12中任一项所述的基于键值对的文件***实现方法。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-12中任一项所述的基于键值对的文件***实现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811604242.6A CN109656886B (zh) | 2018-12-26 | 2018-12-26 | 基于键值对的文件***实现方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811604242.6A CN109656886B (zh) | 2018-12-26 | 2018-12-26 | 基于键值对的文件***实现方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109656886A true CN109656886A (zh) | 2019-04-19 |
CN109656886B CN109656886B (zh) | 2021-11-09 |
Family
ID=66116478
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811604242.6A Active CN109656886B (zh) | 2018-12-26 | 2018-12-26 | 基于键值对的文件***实现方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109656886B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111078139A (zh) * | 2019-11-14 | 2020-04-28 | 北京迈格威科技有限公司 | 一种实现s3标准对象存储接口的方法及装置 |
CN111400308A (zh) * | 2020-02-21 | 2020-07-10 | 中国平安财产保险股份有限公司 | 缓存数据的处理方法、电子装置及可读存储介质 |
CN111399759A (zh) * | 2019-11-07 | 2020-07-10 | 杭州海康威视***技术有限公司 | 读数据、写数据的方法、以及对象文件*** |
WO2021051830A1 (zh) * | 2019-09-17 | 2021-03-25 | 北京海益同展信息科技有限公司 | 区块链数据处理的方法、装置、设备及可读存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559027A (zh) * | 2013-10-22 | 2014-02-05 | 北京航空航天大学 | 一种key与value分开存储的key-value存储***设计方法 |
CN104142958A (zh) * | 2013-05-10 | 2014-11-12 | 华为技术有限公司 | 一种键值对***中数据的存储方法和相关装置 |
CN106462491A (zh) * | 2014-12-31 | 2017-02-22 | 华为技术有限公司 | 一种存储数据的管理方法、存储管理器及存储*** |
CN106708427A (zh) * | 2016-11-17 | 2017-05-24 | 华中科技大学 | 一种适用于键值对数据的存储方法 |
US20170262461A1 (en) * | 2016-03-08 | 2017-09-14 | International Business Machines Corporation | Key-value store for managing user files based on pairs of key-value pairs |
CN107766002A (zh) * | 2017-10-20 | 2018-03-06 | 华中科技大学 | 一种基于混合存储设备的虚拟混合文件*** |
CN107870940A (zh) * | 2016-09-28 | 2018-04-03 | 杭州海康威视数字技术股份有限公司 | 一种文件存储方法及装置 |
US20180246754A1 (en) * | 2015-08-10 | 2018-08-30 | Salesforce.Com, Inc. | Systems and methods of improving parallel functional processing |
CN108804510A (zh) * | 2017-04-26 | 2018-11-13 | 三星电子株式会社 | 键值文件*** |
-
2018
- 2018-12-26 CN CN201811604242.6A patent/CN109656886B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104142958A (zh) * | 2013-05-10 | 2014-11-12 | 华为技术有限公司 | 一种键值对***中数据的存储方法和相关装置 |
CN103559027A (zh) * | 2013-10-22 | 2014-02-05 | 北京航空航天大学 | 一种key与value分开存储的key-value存储***设计方法 |
CN106462491A (zh) * | 2014-12-31 | 2017-02-22 | 华为技术有限公司 | 一种存储数据的管理方法、存储管理器及存储*** |
US20180246754A1 (en) * | 2015-08-10 | 2018-08-30 | Salesforce.Com, Inc. | Systems and methods of improving parallel functional processing |
US20170262461A1 (en) * | 2016-03-08 | 2017-09-14 | International Business Machines Corporation | Key-value store for managing user files based on pairs of key-value pairs |
CN107870940A (zh) * | 2016-09-28 | 2018-04-03 | 杭州海康威视数字技术股份有限公司 | 一种文件存储方法及装置 |
CN106708427A (zh) * | 2016-11-17 | 2017-05-24 | 华中科技大学 | 一种适用于键值对数据的存储方法 |
CN108804510A (zh) * | 2017-04-26 | 2018-11-13 | 三星电子株式会社 | 键值文件*** |
CN107766002A (zh) * | 2017-10-20 | 2018-03-06 | 华中科技大学 | 一种基于混合存储设备的虚拟混合文件*** |
Non-Patent Citations (2)
Title |
---|
YANGWOOK KANG等: "Muninn: a Versioning Flash Key-Value Store Using an Object-based Storage Model", 《SYSTOR 2014: PROCEEDINGS OF INTERNATIONAL CONFERENCE ON SYSTEMS AND STORAGE》 * |
梅飞等: "SSDKV:一种SSD友好的键值对存储***", 《计算机工程与科学》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021051830A1 (zh) * | 2019-09-17 | 2021-03-25 | 北京海益同展信息科技有限公司 | 区块链数据处理的方法、装置、设备及可读存储介质 |
US11966412B2 (en) | 2019-09-17 | 2024-04-23 | Jingdong Technology Information Technology Co., Ltd. | Blockchain data processing method and apparatus, device, and readable storage medium |
CN111399759A (zh) * | 2019-11-07 | 2020-07-10 | 杭州海康威视***技术有限公司 | 读数据、写数据的方法、以及对象文件*** |
CN111399759B (zh) * | 2019-11-07 | 2023-02-10 | 杭州海康威视***技术有限公司 | 读数据、写数据的方法、以及对象文件*** |
CN111078139A (zh) * | 2019-11-14 | 2020-04-28 | 北京迈格威科技有限公司 | 一种实现s3标准对象存储接口的方法及装置 |
CN111078139B (zh) * | 2019-11-14 | 2023-10-20 | 北京迈格威科技有限公司 | 一种实现s3标准对象存储接口的方法及装置 |
CN111400308A (zh) * | 2020-02-21 | 2020-07-10 | 中国平安财产保险股份有限公司 | 缓存数据的处理方法、电子装置及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109656886B (zh) | 2021-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109656886A (zh) | 基于键值对的文件***实现方法、装置、设备和存储介质 | |
CN109684307A (zh) | 一种数据存储方法、装置、设备及存储介质 | |
CN110096857B (zh) | 区块链***的权限管理方法、装置、设备和介质 | |
EP3639465B1 (en) | Improved hardware security module management | |
CN103098070B (zh) | 用于监视网络服务中数据位置的方法、装置和*** | |
US11469891B2 (en) | Expendable cryptographic key access | |
CN109656889A (zh) | 基于区块链的文件***实现方法、装置、设备和存储介质 | |
CN108810006A (zh) | 资源访问方法、装置、设备及存储介质 | |
US8196208B2 (en) | Method and apparatus for creating and applying secure file identifier of rights object by using random numbers | |
CN108923908A (zh) | 授权处理方法、装置、设备及存储介质 | |
CN109710190A (zh) | 一种数据存储方法、装置、设备及存储介质 | |
CN104252375B (zh) | 用于位于不同主机的多个虚拟机共享USB Key的方法和*** | |
CN109684335A (zh) | 基于键值对的数据结构实现方法、装置、设备和存储介质 | |
CN110297689A (zh) | 智能合约执行方法、装置、设备及介质 | |
JP5365502B2 (ja) | ファイル管理装置、ファイル管理プログラム、およびファイル管理方法 | |
CN110414268A (zh) | 访问控制方法、装置、设备及存储介质 | |
CN109886693B (zh) | 区块链***的共识实现方法、装置、设备和介质 | |
CN109726206B (zh) | 区块链节点的数据处理方法、装置、设备和存储介质 | |
CN109491928A (zh) | 缓存控制方法、装置、终端及存储介质 | |
CN109241192A (zh) | 区块链的数据修改及区块验证方法、装置、设备和介质 | |
CN109344631A (zh) | 区块链的数据修改及区块验证方法、装置、设备和介质 | |
CN107004013A (zh) | 用于使用基于硬件的处理来提供分布式树遍历的***和方法 | |
CN104220987A (zh) | 应用安装 | |
CN110113188A (zh) | 跨子域通信运维方法、总运维服务器和介质 | |
CN109684414A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |