CN112131226A - 索引获得方法、数据查询方法、及相关装置 - Google Patents

索引获得方法、数据查询方法、及相关装置 Download PDF

Info

Publication number
CN112131226A
CN112131226A CN202011045451.9A CN202011045451A CN112131226A CN 112131226 A CN112131226 A CN 112131226A CN 202011045451 A CN202011045451 A CN 202011045451A CN 112131226 A CN112131226 A CN 112131226A
Authority
CN
China
Prior art keywords
index
data
index set
indexes
target
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
Application number
CN202011045451.9A
Other languages
English (en)
Inventor
金辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN202011045451.9A priority Critical patent/CN112131226A/zh
Publication of CN112131226A publication Critical patent/CN112131226A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • G06F16/24528Standardisation; Simplification

Abstract

本申请实施例公开了一种索引获得方法、数据查询方法及相关装置,其中所述索引获得方法应用于区块链网络中的至少一个节点,包括:获取所述节点储存的第一索引集,所述第一索引集中的任一第一索引均用于指示区块链中其对应的目标数据的存储位置;根据所述第一索引集中的至少部分所述第一索引,生成第二索引集;其中,所述第二索引集中的每一第二索引均对应至少两个所述第一索引,且能够通过所述第二索引确定其对应的至少两个所述第一索引。

Description

索引获得方法、数据查询方法、及相关装置
技术领域
本申请涉及索引存储技术,具体涉及到一种索引获得方法、数据查询方法及相关装置。
背景技术
目前区块链技术已经成为研究热点,区块链网络中通过区块存储数据,并记录数据的存储位置。在进行数据查询时,先确定该数据的存储位置,再从该存储位置中读取出该数据。可以理解,区块链网络中需要存储的数量很多,且存在有不断增加的数据,这种存储方法过于粗糙,想要查询按照这种存储方式进行存储的数据时,需要先从所有数据的存储位置中确定出待查询数据的存储位置,相当于每进行一次查询均需要对全部数据的存储位置均进行一次遍历,再从确定出的存储位置将待查询数据读取出。显然这种查询方式的查询效率不够高。
发明内容
为解决现有存在的技术问题,本申请实施例提供一种索引获得方法、数据查询方法及相关装置。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种索引获得方法,应用于区块链网络中的至少一个节点,所述方法包括:
获取所述节点储存的第一索引集,所述第一索引集中的任一第一索引均用于指示区块链中其对应的目标数据的存储位置;
根据所述第一索引集中的至少部分所述第一索引,生成第二索引集;
其中,所述第二索引集中的每一第二索引均对应至少两个所述第一索引,且能够通过所述第二索引确定其对应的至少两个所述第一索引。
前述方案中,所述第一索引集中的至少部分第一索引之间在所述第一索引集中分层设置;所述第二索引集基于在所述第一索引集的至少部分分层中的第一索引生成;且所述第二索引集对应所述第一索引集中的至少两个分层。
前述方案中,所述第二索引用于指示目标第一索引在第一索引集中的存储位置;所述第二索引表征为范围值,与所述第二索引对应的至少两个第一索引对应的数值均在所述范围值内;其中,所述目标第一索引为与所述第二索引对应的至少两个第一索引中的任一第一索引。
前述方案中,将第一索引集存储到第一存储模块;将第二索引集存储到第二存储模块;其中,所述第二存储模块的读取性能大于所述第一存储模块的读取性能。
前述方案中,所述第一索引用于指示区块链中其对应的目标数据在所述节点或区块链中的存储位置。
前述方案中,所述方法还包括:
获得待查询数据的标识;
依据待查询数据的标识,确定第二索引集中的目标第二索引;
确定第一索引集中与所述目标第二索引对应的至少两个第一索引;
依据所述待查询数据的标识和所述至少两个第一索引,确定目标第一索引;
根据所述目标第一索引获取待查询数据。
本申请实施例还提供一种数据查询方法,应用于区块链网络中的至少一个节点,所述方法包括:
获得待查询数据的标识;
依据待查询数据的标识,确定第二索引集中的目标第二索引;其中,第二索引集为根据第一索引集中的至少部分第一索引而生成,且第二索引集中的每一第二索引均对应至少两个所述第一索引;第一索引集中的任一第一索引均用于指示区块链中其对应的目标数据的存储位置;
确定第一索引集中与所述目标第二索引对应的至少两个第一索引;
依据所述待查询数据的标识和所述至少两个第一索引,确定目标第一索引;
根据所述目标第一索引获取待查询数据。
前述方案中,所述第一索引用于指示所述待查询数据在节点或区块链中的存储位置;
所述第一索引集存储于第一存储模块;所述第二索引集存储于第二存储模块;其中,所述第二存储模块的读取性能大于所述第一存储模块的读取性能。
本申请实施例还提供一种索引获得装置,包括:
获取单元,用于获取所述节点储存的第一索引集,所述第一索引集中的任一第一索引均用于指示区块链中其对应的目标数据的存储位置;
生成单元,用于根据所述第一索引集中的至少部分所述第一索引,生成第二索引集;
其中,所述第二索引集中的每一第二索引均对应至少两个所述第一索引,且能够通过所述第二索引确定其对应的至少两个所述第一索引。
本申请实施例还提供一种数据查询装置,包括:
第一获得单元,用于获得待查询数据的标识;
第一确定单元,用于依据待查询数据的标识,确定第二索引集中的目标第二索引;其中,第二索引集为根据第一索引集中的至少部分第一索引而生成,且第二索引集中的每一第二索引均对应至少两个所述第一索引;第一索引集中的任一第一索引均用于指示区块链中其对应的目标数据的存储位置;
第二确定单元,用于确定第一索引集中与所述目标第二索引对应的至少两个第一索引;
第三确定单元,用于依据所述待查询数据的标识和所述至少两个第一索引,确定目标第一索引;
第二获得单元,用于根据所述目标第一索引获取待查询数据。
本申请实施例提供一种索引获得方法、数据查询方法及相关装置,其中所述索引获得方法应用于区块链网络中的至少一个节点,所述方法包括:获取所述节点储存的第一索引集,所述第一索引集中的任一第一索引均用于指示区块链中其对应的目标数据的存储位置;根据所述第一索引集中的至少部分所述第一索引,生成第二索引集;其中,所述第二索引集中的每一第二索引,均对应至少两个所述第一索引,且能够通过所述第二索引确定其对应的至少两个所述第一索引。
利用本申请实施例中的第一和第二索引集,在想要查询某个数据时,无需遍历所有数据的存储位置,只需先遍历第二索引集中的第二索引,再依据遍历结果到第一索引集中查找待查询数据的存储位置,从查找到的存储位置读取想要查询的数据即可,可大大减少遍历工作量,提高查询效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例中索引获得方法的实现流程示意图一;
图2为本申请实施例中索引获得方法的实现流程示意图二;
图3为本申请实施例中数据查询方法的实现流程示意图;
图4为本申请实施例中第一索引集中部分第一索引的分层示意图;
图5为本申请实施例中第二索引集中部分第二索引的分层示意图;
图6为本申请实施例中一应用示意图;
图7为本申请实施例中索引获得装置的组成结构示意图;
图8为本申请实施例中数据查询装置的组成结构示意图;
图9为本申请实施例中索引获得装置和/或数据查询装置的硬件构成示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例提供一种索引获得方法,利用第一索引集中的第一索引对数据的存储位置进行记录,利用第一索引集中的至少部分第一索引生成第二索引集,如此生成的第二索引集可方便对存储数据的快速查询。本申请实施例还提供了一种数据查询方法,该查询方法结合第二索引集和第一索引集实现对存储数据的快速查询,从而提高对数据的查询效率。
本申请实施例提供一种索引获得方法,应用于区块链网络中的至少一个节点。节点可以是区块链网络中的任何合理设备,如存储设备、服务器等。如图1所示,所述方法包括:
S101:获取所述节点储存的第一索引集,所述第一索引集中的任一第一索引均用于指示区块链中其对应的目标数据的存储位置;
本步骤中,目标数据可以指的是区块链网络中产生的需要存储和/或已被区块存储的数据。第一索引可以用于指示需要存储和/或已被区块存储的数据在节点本地和/或区块链上的存储位置。示例性地,需要存储的数据包括目标数据1和2,目标数据1存储在(节点)本地的位置A处,目标数据2存储在(节点)本地上的位置B处,则第一索引集中存在一个这样的(第一)索引用于指示目标数据1在(节点)本地的存储位置为位置A;还存在一个这样的(第一)索引用于指示目标数据2在(节点)本地的存储位置为位置B。在技术层面上,第一索引可以记录为目标数据1或目标数据1的标识与位置A(目标数据1在节点本地的存储位置)之间的对应关系,第一索引可以记录为目标数据2或目标数据2的标识与位置B(目标数据2在节点本地的存储位置)之间的对应关系,以用于指示目标数据1、目标数据2在本地的存储位置为位置A、位置B。其中,目标数据的标识可以是任何能够唯一标识该目标数据的信息,如目标数据的ID。考虑到本申请实施例中需要存储的数据通常为区块链网络中的交易数据,则目标数据的标识可以为交易ID。
本步骤中,可通过对第一索引集进行构建的方式获取第一索引集。进一步地,可以读取区块链网络中产生的交易数据在区块链上或(节点)本地的存储位置,读取该交易数据的标识,依据读取的位置和交易数据的标识,进行第一索引的构建。示例性地,记录该交易数据的标识和该交易数据在区块链上或(节点)本地的对应关系,该对应关系可通过(第一)索引来表示。按照如上过程进行多个交易数据的(第一)索引的构建,即形成了第一索引集。
本步骤中,第一索引集可以是区块链网络中的除本地节点之外的其它节点已建立好的,这种情况下直接对建立好的第一索引集进行读取即可获取到第一索引集。
S102:根据所述第一索引集中的至少部分所述第一索引,生成第二索引集;其中,所述第二索引集中的每一第二索引均对应至少两个所述第一索引,且能够通过所述第二索引确定其对应的至少两个所述第一索引。
在实际应用中,第一索引集中的第一索引的数量通常为多个,第二索引集根据第一索引集中的部分第一索引或全部第一索引而生成。第二索引集中包括两个或两个以上的第二索引,每个第二索引与第一索引集中的至少两个第一索引对应。可以认为,每个第二索引是根据第一索引集中与其对应的至少两个第一索引而生成的,生成的多个第二索引的集合即构成了第二索引集。由于第二索引集的第二索引与第一索引集中的至少两个第一索引对应,所以通过第二索引能从第一索引集中确定出与其对应的至少两个第一索引。
前述S201和S202的方案提供了一种索引获得方法,该方法利用用于指示各目标数据的存储位置的第一索引集生成第二索引集。如果将第一索引集视为一种直接指示目标数据的存储位置的方案,那么依据第一索引集生成的第二索引集可视为一种间接指示目标数据的存储位置的方案。且因为第二索引集中的每个第二索引与第一索引集中的至少两个第一索引对应,第一索引集中的每个第一索引用于指示对应的目标数据的存储位置,所以第二索引集中的每个第二索引可间接对两个或两个以上的目标数据的存储位置进行指示,相当于每个第二索引可间接对多个目标数据的存储位置进行指示。这种利用一个(第二)索引进行多个目标数据(在本地或链上)的存储位置的间接指示的方案,在想要查询某个数据时,无需遍历所有数据的存储位置,只需先遍历第二索引集中的第二索引,再依据遍历结果到第一索引集中查找待查询数据的存储位置,从查找到的存储位置读取想要查询的数据即可,可大大减少遍历工作量,提高查询效率。
本申请实施例中,第一索引集中的第一索引用于指示对应的目标数据在节点本地或链上的存储位置。依据第一索引集中的至少部分(第一)索引生成的第二索引用于指示目标第一索引在第一索引集中的存储位置;其中,所述目标第一索引为与第二索引对应的至少两个第一索引中的任一第一索引。相当于,第二索引用于指示在第一索引集中与其对应的各个第一索引在第一索引集中的存储位置。示例性地,假定第二索引集中的第二索引-索引21与第一索引集中的第一索引-索引11和索引12对应,则第二索引用于指示索引11和索引12在第一索引集中的位置。在技术层面上,确定索引11和索引12在第一索引集中的位置,将索引11和索引12在第一索引集中的位置进行记录,形成索引21。可以认为,第二索引集中的索引21基于第一索引集中的索引11和索引12在第一索引集中的位置而得到,即依据索引11和索引12在第一索引集中的位置信息生成索引21。第一索引集中与某个第二索引对应的两个或两个以上的第一索引为可供生成第二索引的两个或两个以上(第一)索引。这种利用第二索引对第一索引在第一索引集中的存储位置进行指示的方案,在后续想要查询某个数据时,无需遍历所有数据的存储位置,只需先遍历第二索引集中的第二索引,再依据遍历结果到第一索引集中查找即可确定待查询数据的存储位置,从该存储位置将数据读取出即可,可大大减少遍历工作量,提高查询效率。
在一个可选的方案中,所述第一索引集中的至少部分第一索引之间在所述第一索引集中分层设置。以第一索引集中的部分第一索引在第一索引集中以树的形式进行分层为例,如图4所示,索引10~索引19为第一索引集中的部分索引,以树的形式将这些索引进行分层,一共分为四个分层。其中,第一分层,也就是树的根节点(节点0)代表索引11~18,第二分层也就是根节点的子节点,数量为二个,其中一个是节点01(代表索引11~索引14),另一个是节点02(代表索引15~18)。第三分层是根节点的子子节点(节点000~006)。第三分层共有7个节点,节点000代表索引11,节点001代表索引12,节点002代表索引13,节点003代表索引14。节点004代表索引15和索引16,节点005代表索引17,节点006代表索引18。第四分层共有2个节点,节点0001代表索引15,节点0002代表索引16。可以理解,图4中分层仅是一种具体举例而已,并不限定于本申请实施例的所有覆盖范围,任何合理的均位于本申请的覆盖范围内。图4中所表示的分层仅是第一索引集中的部分层结构,第一索引集中的其它层结构也可以如图4所示,这些层结构组成在一起形成第一索引集的整体层结构。
本申请实施例中的第二索引集可基于在第一索引集的至少部分分层中的第一索引生成。示例性地,结合图4所示,第二索引集可基于图4中的第3分层中的节点000~003和第四分层中的节点0001和节点0002而生成。或者基于图4中的第2分层的节点02和第三分层的节点000~003而生成。可以理解,由于图4所示为4个分层,而在实际应用中,第二索引集的分层数有很多,第二索引集可基于第一索引集中的至少两个分层中的至少部分第一索引而生成,如基于第一索引集中的第20-25个分层(共5个分层)中的至少部分第一索引而生成,如基于第一索引集中的第11~13个分层(共3个分层)中的至少部分第一索引而生成。这种情况下生成的第二索引集对应第一索引集中的至少两个分层。这种利用第一索引集中的至少两个分层中的至少部分第一索引生成第二索引集的方案,在后续想要查询某个数据时,无需遍历第一索引集中的所有分层,只需先遍历第二索引集查找到可间接指示有待查询数据的存储位置的第二索引,再依据查找到的第二索引到第一索引集中确定待查询数据的存储位置,从该存储位置将数据读取出即可,可大大减少遍历工作量,提高查询效率。
本申请实施例中,在第一索引集以分层形式进行呈现的方案中,第二索引集相当于对至少部分分层的第一索引其在第一索引集中的位置进行指示。由于第二索引是基于第一索引集中的至少两个第一索引而生成的,与第一索引集中的第一索引的数量相比,一般情况下第二索引集中的第二索引的数量少于第一索引集中第一索引的数量。在对第一、二索引集进行存储的方案中,可将第一和第二索引集存储在不同的存储模块中。具体的,将第一索引集存储到第一存储模块;将第二索引集存储到第二存储模块;其中,所述第二存储模块的读取性能大于所述第一存储模块的读取性能。示例性地,第一存储模块可以为磁盘、硬盘等存储模块。第二存储模块可以为内存或节点外接的存储器等存储模块。可以理解,在数量存储量上,磁盘或硬盘等存储模块可存储的数量通常多于内存或外接存储器的存储容量;而在读取速度上,内存的读取速度要快于磁盘或硬盘的读取速度。基于此,本申请实施例中,将数据量较大的第一索引集存储到磁盘或硬件等(第一)存储模块中。将第二索引集存储到内存或外接存储器中。之所以将第二索引集存储到内存或外接存储器中,是利用了内存或外接存储器的读取快速特性,读取速度快可加速第二索引集中对期望数据的查询,进而提高查询效率。
本申请实施例中,第二索引集中的每个第二索引是依据第一索引集中的至少两个第一索引而生成,用于指示其所依据的至少两个第一索引中的各个第一索引在第一索引集中的位置。基于此,可以认为,第二索引表征为范围值,该范围值可以是连续值,还可以是离散值,视具体情况而定。在第二索引表征为范围值的情况下,与第二索引对应的至少两个第一索引对应的数值均在所述范围值内。其中,第一索引对应的数值可以是用于表示第一索引在第一索引集中的位置的数据。示例性地,假定第二索引集中的索引21与第一索引集中的第一索引-索引11和索引12对应;且假定索引11在第一索引集中的位置为位置A,索引12在第一索引集中的位置为位置B。索引11可以为[目标数据1的标识,目标数据1在节点本地或链上的存储位置1];索引12可以为[目标数据2的标识,目标数据2在节点本地或链上的存储位置2]。在索引11和索引12为如上情形的情况下,依据索引11和索引12生成的第二索引-索引21可以为[位置1,位置2];其中,位置1指的是索引11在第一索引集中的位置;位置2指的是索引12在第一索引集中的位置。第二索引还可以为[交易ID1、位置1;交易ID2、位置2];其中,交易ID1为索引11对应的目标数据1的标识;交易ID 2为索引12对应的目标数据2的标识。第二索引还可以为[交易ID1、指针1;交易ID2、指针2];其中,指针1用于指向索引11在第一索引集中的位置;指针2用于指向索引12在第一索引集中的位置。这种利用第二索引对第一索引在第一索引集中的位置进行指示的方案,可在对待查询数据进行查询时,先通过第二索引集对第一索引在第一索引集中的位置进行确定,再利用确定的第一索引进行待查询数据的读取或查询,可提高查询效率。
本申请实施例中,第一索引集中与第二索引对应的至少两个第一索引可以是具有一定特性的索引。示例性地,(第一)索引对应的目标数据的交易ID具有一定的特性,如交易ID的哈希值能被5整除、交易ID的哈希值能被3整除、或交易ID的哈希值被5除后余数为2等。将具有这样特性(相当于具有一定的共性)的第一索引在第一索引集中的位置信息利用同一第二索引进行指示。从这个方面来看,可以认为第二索引集中的各个第二索引用于将第一索引集中的具有一定共性的两个或两个以上第一索引在第一索引集中的位置指示出。在后续查询某个数据的情况下,结合第二索引集和第一索引集进行查询,可提高查询效率。
在图1所示的方案的基础上,如图2所示,所述方法还包括:
S201:获得待查询数据的标识;
本步骤中,待查询数据可以是存储到节点本地或链上的任意数据。待查询数据的标识可以是任何能够唯一表示该数据的信息,如待查询数据的交易ID。
S202:依据待查询数据的标识,确定第二索引集中的目标第二索引;
本步骤中,目标第二索引指的是第二索引集中指示有待查询数据的第一索引在第一索引集中的位置信息的索引。从第二索引集中,查找具有待查询数据的标识的索引,将查找到的索引视为目标第二索引。
S203:确定第一索引集中与所述目标第二索引对应的至少两个第一索引;
本步骤中,在获得索引的方案中,目标第二索引是依据第一索引集与其对应的至少两个第一索引而生成的。即在第二索引集中,每个第二索引均有与其对应的至少两个第一索引。而在查询的方案中,利用这种对应关系,确定第一索引集中与目标第二索引对应的第一索引为哪个/些第一索引。
S204:依据所述待查询数据的标识和所述至少两个第一索引,确定目标第一索引;
本步骤中,从至少两个第一索引中,查找出具有待查询数据标识的第一索引为目标第一索引。
S205:根据所述目标第一索引获取待查询数据。
本步骤中,按照目标第一索引指示的待查询数据在本地或链上的存储地址去读取待查询数据,从而实现对待查询数据的查询。
在前述S201~S205中,在获取第一索引集并依据第一索引集生成第二索引集的情况下,在对待查询数据进行查询时,依据待查询数据的标识从第二索引集中确定出目标第二索引,在与目标第二索引对应的至少两个第一索引中确定出目标第一索引,按照目标第一索引指示的待查询数据在本地或链上的存储地址读取待查询数据。相当于,在查询时,先从第二索引集中确定出目标第二索引,再从与目标第二索引对应的至少两个第一索引中确定出目标第一索引。与相关技术中需要遍历所有数据的存储位置的技术方案相比,可大大减少遍历工作量,加快查询速度,提高查询效率。
本申请实施例还提供一种数据查询方法,如图3所示,所述方法还包括:
S301:获得待查询数据的标识;
S302:依据待查询数据的标识,确定第二索引集中的目标第二索引;
S303:确定第一索引集中与所述目标第二索引对应的至少两个第一索引;
S304:依据所述待查询数据的标识和所述至少两个第一索引,确定目标第一索引;
S305:根据所述目标第一索引获取待查询数据。
本申请实施例中的S301~S305为数据查询方法,在依据第一索引集生成第二索引集的情况下,可利用生成的第二索引集和获取到的第一索引集进行待查询数据的查询。在查询的方案中,先从第二索引集中确定出目标第二索引,再从与目标第二索引对应的至少两个第一索引中确定出目标第一索引,按照目标第一索引指示的存储位置进行待查询数据的读取。与相关技术中需要遍历所有数据的存储位置的技术方案相比,可大大减少遍历工作量,加快查询速度,提高查询效率。具体的关于S301~S305的描述请参见前述相关说明,重复之处不赘述。
下面结合具体的应用场景对本申请实施例的技术方案做详细说明。
以第一索引集是以图4所示的分层方式进行呈现的为例,第一索引集中的每个(第一)索引均可以以[目标数据的交易ID,目标数据在账本数据库的存储位置]的形式对目标数据在账本数据库的存储位置进行指示。其中,目标数据可视为是区块链网络中的任意数据,如区块链网络的账本数据库中的数据。如果采用相关技术进行存储到账本数据库的某个数据(待查询数据)的查询,在已知待查询数据的标识如交易ID的情况下进行待查询数据的查询,则采用的方案是:从第一索引集的第一个分层向下进行多个分层的遍历,查找遍历到的各分层的第一索引中是否具有待查询数据的交易ID,当其遍历到的某个分层中存在有一个具有待查询数据的交易ID的第一索引时,按照该第一索引指示的该待查询数据在账本数据库的存储位置,将待查询数据读取出,进而实现对待查询数据的查询。可见采用相关技术进行待查询数据的查询,需要遍历的第一索引集的各个分层直至查找到具有待查询数据的交易ID的第一索引(目标第一索引),在某些极端的情况下可能在遍历所有分层的情况下才能查找到目标第一索引,可见相关技术中利用第一索引集进行数据查询的方案的查询效率低。
发明人在研究区块链网络中的存储技术中发现,由于第一索引集已记载有各存储数据的存储位置,所以可将第一索引集作为主键索引,并依据主键索引可以构建一个辅助索引,通过主键索引和辅助索引的结合进行数据的查询。利用本申请实施例中的索引获得方法进行辅助索引的构建或生成。辅助索引即为第二索引集。具体的,取第二索引集的部分分层中的(第一)索引,示例性地,取第一索引集中的第3层~第12层中的至少部分(第一)索引。将这些(第一)索引中数据的交易ID的哈希值除5,将除5后余数为1的各个索引对应的数据交易ID以及所述各个索引在第一索引集中的位置信息进行对应记录,形成一个第二索引。将除5后余数为2、3、4的各个索引对应的数据交易ID以及所述各个索引在第一索引集中的位置信息进行对应记录,形成第2个、第3个、第4个第二索引。本应用场景中,假定目标数据1~目标数据3的交易ID除5后余数为1,则第一索引集中存在一个用于指示目标数据1在账本数据库中的存储位置的第一索引(索引11),第一索引可以为[目标数据1的交易ID1、目标数据1在账本数据库中的存储位置11]。用于指示目标数据2在账本数据库中的存储位置的第一索引(索引12)为[目标数据2的交易ID2、目标数据2在账本数据库中的存储位置12]。用于指示目标数据3在账本数据库中的存储位置的第一索引(索引13)为[目标数据3的交易ID3、目标数据3在账本数据库中的存储位置13]。依据具有一定共性的索引11、索引12和索引13生成第二索引-索引21。示例性地,索引21可以为[目标数据1的交易ID1、索引11在第一索引集中的存储位置21;目标数据2的交易ID2、索引12在第一索引集中的存储位置22;目标数据3的交易ID3、索引13在第一索引集中的的存储位置23]。其中,交易ID1、2和交易ID3为交易ID的哈希值除以5后余数为1的交易ID。前述方案中,是以交易ID的哈希值除以5后余数为1为例进行的第二索引-索引21的生成过程。以交易ID的哈希值除以5后余数为2、3或4生成对应第二索引的过程请参见前述生成索引21的过程,重复之处不赘述。以上方案可视为依据主键索引进行辅助索引构建的方案。根据该构建方案构建出的辅助索引,可辅助主键索引实现对数据的快速查询。
在具体实现上,第二索引集中的部分第二索引也可以采用如图5所示的分层结构,以共有三个分层为例。第一分层包括节点50,节点50表示交易ID的哈希值除以5后余数为0~4的第二索引;第二分层包括节点501-节点503。其中,节点501表示交易ID的哈希值除以5后余数为0的第二索引;节点502表示交易ID的哈希值除以5后余数为1和3的第二索引;节点503表示交易ID的哈希值除以5后余数为2和4的第二索引。第三分层包括节点5020、5021和5030、5031。其中,节点5020表示交易ID的哈希值除以5后余数为1的第二索引;节点5021表示交易ID的哈希值除以5后余数为3的第二索引。节点5030表示交易ID的哈希值除以5后余数为2的第二索引;节点5031表示交易ID的哈希值除以5后余数为4的第二索引。可以理解,图5仅是一种具体举例而已,并不代表第二索引集的所有分层形式,所有类似于图5所示的分层结构均覆盖在本申请实施例的保护范围内。
在实际应用中,由于指针具有可指向某个位置的作用,本应用场景中可采用指针对各个第一索引(索引11、12和索引13)在第一索引集中的位置进行指向。第二索引-索引21可以为[交易ID1、指针1;交易ID2、指针2;交易ID2、指针3]。其中,指针1用于指向第一索引集中的索引11,即指向索引11在第一索引集中的位置。指针2用于指向第一索引集中的索引12,即指向索引12在第一索引集中的位置。指针3用于指向第二索引集中的索引13,即指向索引13在第一索引集中的位置。参照图6所示,包括第一索引集和第二索引集,其中第一索引集中的第三个分层中的节点003表示索引11,节点006表示索引12,第四个分层中的节点0002表示索引13。第二索引集中第二分层中的节点501表示索引21。可以理解,图6仅是一种具体举例而已,所有类似的变型均位于本申请实施例的保护范围内。可以理解,在前述的索引21的举例中,如果将交易ID1和指针1视为索引11对应的数值,交易ID2和指针2视为索引12对应的数值,交易ID3和指针3视为索引13对应的数值,则可以认为前述的索引21是以范围值的形式来指示索引11、12和索引13在主键索引中的位置。
在本应用场景中,以区块链网络为HyperLedger-Fabric区块链(一种联盟链)为例,该区块链网络中的账本数据可存储在账本数据库如LevelDB和/或CoucuDB中,本应用场景的主键索引用于指示账本数据库中的各数据在账本数据库中的位置,并依据主键索引指示的位置从账本数据库中读取待查询的数据。在依据第一索引集构建或生成有第二索引集之后,可利用第一索引集和第二索引集进行账本数据中的数据(待查询数据)的查询。假定查询人员要查询数据A(待查询数据),接收查询人员向本地节点输入的数据A的标识如交易ID,假定数据A的交易ID为ID3,节点接收到待查询数据A的交易ID,到内存中进行查询,查找内存中存储的辅助索引(第二索引集中)哪个第二索引中包括有ID3这个交易ID。作为一个优选的方案,在节点接收到待查询数据A的交易ID之后,可以先利用布隆滤波器进行第二索引集中是否包括有该交易ID的确认。如果确认第二索引集中包括有该待查询数据的交易ID,则到内存中进行包括有ID3这个交易ID的第二索引的查找。如果确认出第二索引集中未包括有该待查询数据的交易ID,则节点按照相关技术从第一索引集中查找具有该交易ID的第一索引的查找,并按照查找到的第一索引指示的数据A在账本数据库的存储位置进行数据A的读取,由此实现对数据A的查询。
在查找内存中存储的辅助索引(第二索引集中)哪个第二索引中包括有ID3这个交易ID的方案中,如果在第二索引集中查找到第二索引-索引21中包括有ID3这个交易值,则第二索引集中索引21为目标第二索引。目标第二索引中的各个指针指向有第一索引集中对应的第一索引,这些指针指向的第一索引即为第一索引集中与索引21对应的至少两个第一索引。判断这些第一索引中哪个第一索引具有交易ID3,包括有交易ID3的第一索引即为目标索引。本应用场景中,索引13具有ID3,则索引13为目标第一索引。按照索引13指示的数据A在账本数据库中的存储位置如存储位置13,从账本数据库的存储位置13处将数据A读取出,由此实现对数据A的查询。
从前面的描述可以看出,本申请实施例中依据主键索引生成或构建出辅助索引,在辅助索引的辅助下,利用主键索引可将待查询数据快速查询出来。在想要查询某个数据时,无需遍历所有数据的存储位置,只需先遍历第二索引集中的第二索引以确定出目标第二索引,再依据目标第二索引中的指针指向确定出目标第一索引,按照目标第一索引的指示即可将待查询数据读取出。可大大减少遍历工作量,提高查询效率。
本应用场景中,还需要对主键索引和依据主键索引生成的辅助索引进行存储,在存储主键索引(第一索引集)和辅助索引(第二索引集)时,由于主键索引涉及的数据量较多,可将主键索引存储到本地的硬盘或磁盘中。可以理解,本申请实施例中的辅助索引是用来辅助主键索引进行数据查询的,其用于指示的是具有一定共性的第一索引在第一索引集中的位置信息。本应用场景中,为缩短查询时间,加快查询速度,可将第二索引集存储到本地的内存中。内存的读取速度要快于硬盘或磁盘的读取速度。从内存存储的第二索引集中读取出目标第二索引的速度较快,从而可加快对待查询数据的查询。
本申请实施例提供一种索引获得装置,如图7所示,包括:获取单元1001、生成单元1002;其中,
获取单元1001,用于获取所述节点储存的第一索引集,所述第一索引集中的任一第一索引均用于指示区块链中其对应的目标数据的存储位置;
生成单元1002,用于根据所述第一索引集中的至少部分所述第一索引,生成第二索引集;
其中,所述第二索引集中的每一第二索引均对应至少两个所述第一索引,且能够通过所述第二索引确定其对应的至少两个所述第一索引。
在一个可选的方案中,所述第一索引集中的至少部分第一索引之间在所述第一索引集中分层设置;所述第二索引集基于在所述第一索引集的至少部分分层中的第一索引生成;且所述第二索引集对应所述第一索引集中的至少两个层。
在一个可选的方案中,所述第二索引用于指示目标第一索引在第一索引集中的存储位置;其中,所述目标第一索引为与所述第二索引对应的至少两个第一索引中的任一第一索引。
在一个可选的方案中,所述第二索引表征为范围值,与所述第二索引对应的至少两个第一索引对应的数值均在所述范围值内。
在一个可选的方案中,将第一索引集存储到第一存储模块;将第二索引集存储到第二存储模块;其中,所述第二存储模块的读取性能大于所述第一存储模块的读取性能。
在一个可选的方案中,所述第一索引用于指示区块链中其对应的目标数据在所述节点或区块链中的存储位置。
在一个可选的方案中,所述装置还包括:第一获得单元、第一确定单元、第二确定单元、第三确定单元及第二获得单元;其中,
所述第一获得单元,用于获得待查询数据的标识;
所述第一确定单元,用于依据待查询数据的标识,确定第二索引集中的目标第二索引;
所述第二确定单元,用于确定第一索引集中与所述目标第二索引对应的至少两个第一索引;
所述第三确定单元,用于依据所述待查询数据的标识和所述至少两个第一索引,确定目标第一索引;
所述第二获得单元,用于根据所述目标第一索引获取待查询数据。
可以理解,所述装置中的获取单元1001、生成单元1002在实际应用中均可由索引获得装置的中央处理器(CPU,Central Processing Unit)、数字信号处理器(DSP,DigitalSignal Processor)、微控制单元(MCU,Microcontroller Unit)或可编程门阵列(FPGA,Field-Programmable Gate Array)实现。
本申请实施例提供一种数据查询装置,如图8所示,包括:第一获得单元1101、第一确定单元1102、第二确定单元1103、第三确定单元1104及第二获得单元1105;其中,
第一获得单元1101,用于获得待查询数据的标识;
第一确定单元1102,用于依据待查询数据的标识,确定第二索引集中的目标第二索引;其中,第二索引集为根据第一索引集中的至少部分第一索引而生成,且第二索引集中的每一第二索引均对应至少两个所述第一索引;第一索引集中的任一第一索引均用于指示区块链中其对应的目标数据的存储位置;
第二确定单元1103,用于确定第一索引集中与所述目标第二索引对应的至少两个第一索引;
第三确定单元1104,用于依据所述待查询数据的标识和所述至少两个第一索引,确定目标第一索引;
第二获得单元1105,用于根据所述目标第一索引获取待查询数据。
在一个可选的方案中,所述第一索引用于指示所述待查询数据在节点或区块链中的存储位置;所述第一索引集存储于第一存储模块;所述第二索引集存储于第二存储模块;其中,所述第二存储模块的读取性能大于所述第一存储模块的读取性能。
可以理解,所述数据查询装置中的第一获得单元1101、第一确定单元1102、第二确定单元1103、第三确定单元1104及第二获得单元1105在实际应用中均可由数据查询装置的中央处理器(CPU,Central Processing Unit)、数字信号处理器(DSP,Digital SignalProcessor)、微控制单元(MCU,Microcontroller Unit)或可编程门阵列(FPGA,Field-Programmable Gate Array)实现。
需要说明的是,本申请实施例的索引获得装置和数据查询装置,由于该索引获得装置和数据查询装置解决问题的原理与前述的索引获得方法和数据查询方法相似,因此,索引获得装置和数据查询装置的实施过程及实施原理均可以参见前述方法的实施过程及实施原理描述,重复之处不再赘述。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时至少用于执行图1至图6任一所示方法的步骤。所述计算机可读存储介质具体可以为存储器。所述存储器可以为如图9所示的存储器62。
图9为本申请实施例的索引获得装置和/或数据查询装置的硬件结构示意图,如图9所示,索引获得装置和/或数据查询装置包括:用于进行数据传输的通信组件63、至少一个处理器61和用于存储能够在处理器61上运行的计算机程序的存储器62。终端中的各个组件通过总线系统64耦合在一起。可理解,总线系统64用于实现这些组件之间的连接通信。总线系统64除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图9中将各种总线都标为总线系统64。
其中,所述处理器61执行所述计算机程序时至少执行图1至图6任一所示方法的步骤。
可以理解,存储器62可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本申请实施例描述的存储器62旨在包括但不限于这些和任意其它适合类型的存储器。
上述本申请实施例揭示的方法可以应用于处理器61中,或者由处理器61实现。处理器61可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器61中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器61可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器61可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器62,处理器61读取存储器62中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,索引获得装置和/或数据查询装置可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex ProgrammableLogic Device)、FPGA、通用处理器、控制器、MCU、微处理器(Microprocessor)、或其他电子元件实现,用于执行前述的索引获得方法和/或数据查询方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种索引获得方法,应用于区块链网络中的至少一个节点,所述方法包括:
获取所述节点储存的第一索引集,所述第一索引集中的任一第一索引均用于指示区块链中其对应的目标数据的存储位置;
根据所述第一索引集中的至少部分所述第一索引,生成第二索引集;
其中,所述第二索引集中的每一第二索引均对应至少两个所述第一索引,且能够通过所述第二索引确定其对应的至少两个所述第一索引。
2.根据权利要求1所述的方法,所述第一索引集中的至少部分第一索引之间在所述第一索引集中分层设置;所述第二索引集基于在所述第一索引集的至少部分分层中的第一索引生成;且所述第二索引集对应所述第一索引集中的至少两个分层。
3.根据权利要求1所述的方法,所述第二索引用于指示目标第一索引在第一索引集中的存储位置;所述目标第一索引为与所述第二索引对应的至少两个第一索引中的任一第一索引;
所述第二索引表征为范围值,与所述第二索引对应的至少两个第一索引对应的数值均在所述范围值内。
4.根据权利要求1至3任一项所述的方法,将第一索引集存储到第一存储模块;将第二索引集存储到第二存储模块;其中,所述第二存储模块的读取性能大于所述第一存储模块的读取性能。
5.根据权利要求4所述的方法,所述第一索引用于指示区块链中其对应的目标数据在所述节点或区块链中的存储位置。
6.根据权利要求1所述的方法,还包括:
获得待查询数据的标识;
依据待查询数据的标识,确定第二索引集中的目标第二索引;
确定第一索引集中与所述目标第二索引对应的至少两个第一索引;
依据所述待查询数据的标识和所述至少两个第一索引,确定目标第一索引;
根据所述目标第一索引获取待查询数据。
7.一种数据查询方法,应用于区块链网络中的至少一个节点,所述方法包括:
获得待查询数据的标识;
依据待查询数据的标识,确定第二索引集中的目标第二索引;其中,第二索引集为根据第一索引集中的至少部分第一索引而生成,且第二索引集中的每一第二索引均对应至少两个所述第一索引;第一索引集中的任一第一索引均用于指示区块链中其对应的目标数据的存储位置;
确定第一索引集中与所述目标第二索引对应的至少两个第一索引;
依据所述待查询数据的标识和所述至少两个第一索引,确定目标第一索引;
根据所述目标第一索引获取待查询数据。
8.根据权利要求7所述的方法,所述第一索引用于指示所述待查询数据在节点或区块链中的存储位置;
所述第一索引集存储于第一存储模块;所述第二索引集存储于第二存储模块;其中,所述第二存储模块的读取性能大于所述第一存储模块的读取性能。
9.一种索引获得装置,包括:
获取单元,用于获取所述节点储存的第一索引集,所述第一索引集中的任一第一索引均用于指示区块链中其对应的目标数据的存储位置;
生成单元,用于根据所述第一索引集中的至少部分所述第一索引,生成第二索引集;
其中,所述第二索引集中的每一第二索引均对应至少两个所述第一索引,且能够通过所述第二索引确定其对应的至少两个所述第一索引。
10.一种数据查询装置,包括:
第一获得单元,用于获得待查询数据的标识;
第一确定单元,用于依据待查询数据的标识,确定第二索引集中的目标第二索引;其中,第二索引集为根据第一索引集中的至少部分第一索引而生成,且第二索引集中的每一第二索引均对应至少两个所述第一索引;第一索引集中的任一第一索引均用于指示区块链中其对应的目标数据的存储位置;
第二确定单元,用于确定第一索引集中与所述目标第二索引对应的至少两个第一索引;
第三确定单元,用于依据所述待查询数据的标识和所述至少两个第一索引,确定目标第一索引;
第二获得单元,用于根据所述目标第一索引获取待查询数据。
CN202011045451.9A 2020-09-28 2020-09-28 索引获得方法、数据查询方法、及相关装置 Pending CN112131226A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011045451.9A CN112131226A (zh) 2020-09-28 2020-09-28 索引获得方法、数据查询方法、及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011045451.9A CN112131226A (zh) 2020-09-28 2020-09-28 索引获得方法、数据查询方法、及相关装置

Publications (1)

Publication Number Publication Date
CN112131226A true CN112131226A (zh) 2020-12-25

Family

ID=73844435

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011045451.9A Pending CN112131226A (zh) 2020-09-28 2020-09-28 索引获得方法、数据查询方法、及相关装置

Country Status (1)

Country Link
CN (1) CN112131226A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113986134A (zh) * 2021-10-27 2022-01-28 北京百度网讯科技有限公司 存储数据的方法、读取数据的方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040167874A1 (en) * 2001-06-04 2004-08-26 Oracle International Corporation Supporting Bindexes on primary Bstructures with large primary keys
CN108427736A (zh) * 2018-02-28 2018-08-21 华为技术有限公司 一种用于查询数据的方法
CN111708825A (zh) * 2020-06-11 2020-09-25 腾讯科技(深圳)有限公司 基于区块链的数据处理方法、装置、设备及可读存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040167874A1 (en) * 2001-06-04 2004-08-26 Oracle International Corporation Supporting Bindexes on primary Bstructures with large primary keys
CN108427736A (zh) * 2018-02-28 2018-08-21 华为技术有限公司 一种用于查询数据的方法
CN111708825A (zh) * 2020-06-11 2020-09-25 腾讯科技(深圳)有限公司 基于区块链的数据处理方法、装置、设备及可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王千阁等: "区块链系统的数据存储与查询技术综述", 《计算机科学》, vol. 45, no. 12, pages 12 - 17 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113986134A (zh) * 2021-10-27 2022-01-28 北京百度网讯科技有限公司 存储数据的方法、读取数据的方法和装置
CN113986134B (zh) * 2021-10-27 2024-02-27 北京百度网讯科技有限公司 存储数据的方法、读取数据的方法和装置

Similar Documents

Publication Publication Date Title
CN110149803B (zh) 数据存储方法、系统及终端设备
KR102099544B1 (ko) 스트리밍 데이터의 분배 처리 방법 및 디바이스
KR100856245B1 (ko) 파일 시스템 장치 및 그 파일 시스템의 파일 저장 및 파일 탐색 방법
CN110019004B (zh) 一种数据处理方法、装置及系统
CN110168532B (zh) 数据更新方法和存储装置
KR20090048624A (ko) 데이터 구조를 가지는 하나 이상의 장치 판독가능 매체, 및장치 실행가능 명령어를 구비한 하나 이상의 장치 판독가능 매체
CN111241108B (zh) 基于键值对kv系统的索引方法、装置、电子设备和介质
CN111177143B (zh) 键值数据存储方法、装置、存储介质与电子设备
CN112148928A (zh) 一种基于指纹家族的布谷鸟过滤器
WO2022241813A1 (zh) 一种基于图压缩的图数据库构建方法、装置及相关组件
WO2021179488A1 (zh) 监控数据存储方法、设备、服务器及存储介质
CN104598652B (zh) 一种数据库查询方法及装置
CN108399175B (zh) 一种数据存储、查询方法及其装置
CN112131226A (zh) 索引获得方法、数据查询方法、及相关装置
CN112306957A (zh) 获取索引节点号的方法、装置、计算设备和存储介质
CN114625696A (zh) 文件恢复方法、装置、电子设备及存储介质
CN110765073B (zh) 分布式存储系统的文件管理方法、介质、设备及装置
CN108595482B (zh) 一种数据索引方法及装置
CN114254164B (zh) 一种图数据存储方法及装置
CN112307272B (zh) 确定对象之间关系信息的方法、装置、计算设备及存储介质
CN115543993A (zh) 数据处理方法、装置、电子设备及存储介质
CN105095283A (zh) 网络社交系统中准好友的推荐方法和系统
CN112015672A (zh) 一种存储系统中数据处理方法、装置、设备及存储介质
CN116910051B (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
CN111858603B (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