CN111291018B - 数据管理方法、装置、设备及存储介质 - Google Patents
数据管理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111291018B CN111291018B CN201811492678.0A CN201811492678A CN111291018B CN 111291018 B CN111291018 B CN 111291018B CN 201811492678 A CN201811492678 A CN 201811492678A CN 111291018 B CN111291018 B CN 111291018B
- Authority
- CN
- China
- Prior art keywords
- data
- database
- state
- state data
- slicing
- 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
-
- 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
Abstract
本申请提供一种数据管理方法、装置、设备及存储介质,该方法包括:获取区块链系统的第一状态数据,所述第一状态数据为所述区块链系统的当前状态的数据;根据预设切片规则,对所述第一状态数据进行切分,获得至少一种类型的第一切片数据,不同类型的切片数据对应不同的KV数据库;将各类型的所述第一切片数据存储到对应的第一KV数据库。通过将区块链系统的状态数据切分,存储到多个KV数据库中,可以减小每个KV数据库的数据规模,提升每个KV数据库的管理效率。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种数据管理方法、装置、设备及存储介质。
背景技术
状态数据是区块链系统中刻画当前“世界”状态的数据,是区块链系统的核心数据之一。区块链系统中的交易执行是基于当前状态进行的,通常情况下,状态数据比按时序组织的链块式历史痕迹数据有着更高的访问频率,因此,状态数据的管理的性能对保障区块链系统的整体性能尤为重要。
当前区块链系统中,通常是获取到区块链系统的状态数据后,将其存储到KV数据库,但是,随着区块链的发展,尤其智能合约的出现,区块链系统中状态数据的规模急速增长,现有的状态数据管理方法很难满足区块链系统的性能需求。
发明内容
本申请提供一种数据管理方法、装置、设备及存储介质,以解决现有技术状态数据管理效率低等缺陷。
本申请第一个方面提供一种数据管理方法,包括:
获取区块链系统的第一状态数据,所述第一状态数据为所述区块链系统的当前状态的数据;
根据预设切片规则,对所述第一状态数据进行切分,获得至少一种类型的第一切片数据,不同类型的切片数据对应不同的KV数据库;
将各类型的所述第一切片数据存储到对应的第一KV数据库。
本申请第二个方面提供一种数据管理装置,包括:
获取模块,用于获取区块链系统的第一状态数据,所述第一状态数据为所述区块链系统的当前状态的数据;
处理模块,用于根据预设切片规则,对所述第一状态数据进行切分,获得至少一种类型的第一切片数据,不同类型的切片数据对应不同的KV数据库;
存储模块,用于将各类型的所述第一切片数据存储到对应的第一KV数据库。
本申请第三个方面提供一种计算机设备,包括:至少一个处理器和存储器;
所述存储器存储计算机程序;所述至少一个处理器执行所述存储器存储的计算机程序,以实现第一个方面提供的方法。
本申请第四个方面提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时实现第一个方面提供的方法。
本申请提供的数据管理方法、装置、设备及存储介质,通过将区块链系统的状态数据切分,存储到多个KV数据库中,可以减小每个KV数据库的数据规模,提升每个KV数据库的管理效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的数据管理方法的流程示意图;
图2为本申请一实施例提供的存储设备的架构示意图;
图3为本申请再一实施例提供的数据管理方法的流程示意图;
图4为本申请一实施例提供的数据管理装置的结构示意图;
图5为本申请一实施例提供的计算机设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
首先对本申请所涉及的名词进行解释:
状态数据:是区块链系统中刻画当前“世界”状态的数据,是区块链系统的核心数据之一。区块链系统中的交易执行是基于当前状态进行。比如区块链链系统中完成一笔交易后,各账户的最新的状态,区块链的最新状态,智能合约的最新状态等等。
KV数据库:是使用键值(Key-Value)存储数据的数据库,这是一种NoSQL(非关系型数据库)模型,其数据按照键值对的形式进行组织、索引和存储。KV数据库非常适合不涉及过多数据关系业务关系的业务数据,同时能有效减少读写磁盘的次数,比SQL数据库存储拥有更好的读写性能。
存储桶:用于支持存储数据对象的存储设备。
本申请实施例提供的数据管理方法,适用于区块链系统中的区块链节点对区块链系统的状态数据进行管理的场景。区块链节点可以获取区块链系统的状态数据,切分成不同的切片数据,存储到不同的KV数据库。即可以将区块链系统的状态数据存储到多个KV数据库,提升对KV数据库的管理效率。
此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在以下各实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。
下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
实施例一
本实施例提供一种数据管理方法,用于管理区块链系统的状态数据。本实施例的执行主体为数据管理装置,该装置可以设置在区块链节点中。
如图1所示,为本实施例提供的数据管理方法的流程示意图,该方法包括:
步骤101,获取区块链系统的第一状态数据,第一状态数据为区块链系统的当前状态的数据。
具体的,当区块链系统有更新时,区块链节点(为了区分,也称第一区块链节点)可以获取区块链系统更新后的最新的状态数据,为了区分称为第一状态数据。
可选地,还可以是区块链系统中的其他区块链节点(称为第二区块链节点)向第一区块链节点发送状态数据管理指令,该状态数据管理指令中包括区块链系统的第一状态数据。
步骤102,根据预设切片规则,对第一状态数据进行切分,获得至少一种类型的第一切片数据,不同类型的切片数据对应不同的KV数据库。
具体的,在获取到区块链系统的第一状态数据后,可以根据预设切片规则,对第一状态数据进行切分,获得至少一种类型的第一切片数据,不同类型的切片数据对应不同的KV数据库。
其中,预设切片规则可以根据实际需求进行设置,比如可以是按照区块链、智能合约、业务数据等来切分,也可以按照更细粒度进行切分,比如按照区块链中的区块、智能合约中的数据实体等进行切分。将状态数据中相同类型的数据存储到该类型对应的KV数据库中。
示例性的,根据第一状态数据中包括的区块链标识、智能合约标识、业务数据主键等来识别进行切分。
可选地,一种类型的切片数据可以对应一个KV数据库,也可以对应多个KV数据库。实际存储时,具体存储到哪个KV数据库,可以根据当时待存储的状态数据的资源需求来确定。
可选地,各KV数据库可以是本机KV数据库。
可选地,不同类型的切片数据对应的各KV数据库可以挂载在不同的存储设备上,将数据访问压力分流到不同的存储设备,从而进一步提升状态数据操作效率。可以以存储桶Bucket(也称存储Bucket)来抽象描述存储设备。如图2所示,为本实施例提供的存储设备的架构示意图。
可选地,也可以是在同一存储设备上挂载有至少两个存储不同类型切片数据的KV数据库。具体可以根据实际需求设置,本实施例不做限定。
步骤103,将各类型的第一切片数据存储到对应的第一KV数据库。
具体的,在切分获得各类型的第一切片数据后,则将各第一切片数据存储到其类型对应的第一KV数据库中。
这里的第一KV数据库只是为了清楚地说明,为了在引用时指代清楚,并非对其限定,其实质就是KV数据库。
示例性的,有3个KV数据库,分别存储状态数据中的区块链状态数据、智能合约状态数据和业务数据的状态数据。
本实施例提供的数据管理方法,通过将区块链系统的状态数据切分,存储到多个KV数据库中,可以减小每个KV数据库的数据规模,提升每个KV数据库的管理效率。
实施例二
本实施例对实施例一提供的方法做进一步补充说明。
如图3所示,为本实施例提供的数据管理方法的流程示意图。
作为一种可实施的方式,在上述实施例一的基础上,可选地,步骤103具体包括:
步骤1031,对于每种类型的第一切片数据,获取第一切片数据对应的第一KV数据库的第一标识信息。
具体的,可以预先配置有切片数据类型与KV数据库的标识信息的对应关系。在对第一状态数据切分后,可以知道每个第一切片数据的类型,可以根据各第一切片数据的类型获取该第一切片数据对应的第一KV数据库的第一标识信息。
步骤1032,根据各第一标识信息获取各第一切片数据对应的第一KV数据库的对象。
具体的,在获取到了各第一切片数据对应的第一KV数据库的第一标识信息后,则可以根据各第一标识信息获取其对应的第一KV数据库的对象。
示例性的,可以设置有数据库管理模块,监控各KV数据库的状态,管理各KV数据库的对象。可以配置有KV数据库的标识信息与KV数据库的对象的对应关系,KV数据库的对象也可称为KV数据库的实例。从而可以根据各第一标识信息获取其对应的第一KV数据库的对象。
步骤1033,基于第一KV数据库的对象,将各第一切片数据存储到对应的第一KV数据库。
具体的,在获取到各第一切片数据对应的第一KV数据库的对象后,则可以基于第一KV数据库的对象,将各第一切片数据存储到对应的第一KV数据库。
可选地,具体的存储形式可以是KV键值对的形式存储。具体以KV键值对存储的操作为现有技术,在此不再赘述。
作为另一种可实施的方式,在上述实施例一的基础上,可选地,步骤102具体包括:
步骤1021,基于第一状态数据中包括的区块链标识、智能合约标识及业务数据主键,对第一状态数据进行切分。
可选地,还可以是基于第一状态数据中更细粒度的数据标识来进行切分。具体的切分规则可以根据实际需求设置,及可以按照实际需求的任意粒度来切分第一状态数据。
作为另一种可实施的方式,在上述实施例一的基础上,可选地,在步骤103之前,该方法还可以包括:
步骤2011,判断各第一切片数据对应的第一KV数据库是否初始化。
步骤2012,若未初始化,则进行初始化处理。
具体的,KV数据库需要初始化后才能进行数据操作,若第一切片数据对应的第一KV数据库未初始化,则需要先进行初始化处理,才能获取到该第一KV数据库的对象。
作为另一种可实施的方式,在上述实施例一的基础上,可选地,在步骤103之前,该方法还可以包括:
步骤2021,判断各第一切片数据对应的第一KV数据库的存储资源是否充足。
步骤2022,对于每个第一KV数据库,若该第一KV数据库的存储资源不充足,则根据预设资源调度规则,为该第一KV数据库分配存储资源。
具体的,对于存储设备上挂载的一个或多个KV数据库,由于各KV数据库中数据量不断增长,占用的该存储设备的存储空间逐渐增多,达到一定程度,会导致该存储设备存储空间不足以存储新的数据,或影响数据访问性能。因此在将第一状态数据的各第一切片数据存储到对应的第一KV数据库前,需要判断该第一KV数据库的存储资源是否满足需求,若不满足需求,则需要根据预设资源调度规则,为该第一KV数据库分配存储资源。
其中,预设资源调度规则可以根据实际需求设置,本实施例不做限定。
示例性的,可以根据区块链系统处理的业务的性质划分业务类型,不同业务性质,对状态数据的访问效率要求不同,不同业务的业务发生规律也不同,则不同的业务类型对应不同的资源需求等级,资源需求等级可以包括数据量、读写效率、安全性等不同方面的等级划分,比如根据数据量划分为3个等级,根据读写效率划分为4个等级,根据安全性划分为3个等级等等。不同业务类型对资源需求的侧重不同,有的业务侧重数据量,有的业务侧重读写效率,有的业务侧重安全性等等。根据不同资源需求等级可以分配或调度相应的存储资源。比如,当业务侧重安全性时,可以为其调度安全性较高的存储资源,当业务侧重读写效率时,可以为其调度读写效率较高的存储资源。对于存储资源的性能,可以根据存储设备的描述信息来确定,比如设备型号、介质、容量、存储方案等等。具体不再赘述。
可选地,若某第一KV数据库的存储资源不充足时,可以根据该第一KV数据库存储的数据的业务类型与存储资源需求等级的对应关系来确定为该第一KV数据库分配那种存储资源。
可选地,为该第一KV数据库分配存储资源,也可以是分配新的存储设备,将该第一KV数据库迁移到新的存储设备。
通过按照实际需求预设的资源调度规则为存储资源不充足的第一KV数据库调度分配存储资源,可以优化利用存储设备,提升区块链系统状态数据管理的综合性能。
作为另一种可实施的方式,在上述实施例一的基础上,可选地,在步骤103之后,该方法还可以包括:
步骤2031,向区块链系统返回存储结果信息。
具体的,由于存储操作是区块链系统中某一区块链节点(第一区块链节点)操作的,存储结果需要返回到区块链系统,共享给其他区块链节点。
作为另一种可实施的方式,在上述实施例一的基础上,可选地,该方法还可以包括:
步骤2041,接收区块链系统的数据请求,数据请求包括请求的第二状态数据的第二标识信息;
步骤2042,根据第二标识信息,确定第二状态数据的各第二切片数据对应的第一KV数据库;
步骤2043,从各第二切片数据对应的第一KV数据库获取第二状态数据的各第二切片数据;
步骤2044,将各第二切片数据形成第二状态数据返回给区块链系统。
具体的,当区块链系统再发生新的交易或更新时,需要基于当前的状态数据进行,因此需要获取当前的状态数据,可以向第一区块链节点或其他区块链节点发出数据请求,该数据请求包括请求的第二状态数据的第二标识信息,这里的第二状态数据及第二标识信息,只是为了与上述的第一状态数据和第一标识信息区分,并非对其限定。实际应用中,请求的第二状态数据可以是在上一次更新完存储的第一状态数据。本实施例不做限定。
在获取到数据请求后,根据数据请求中包括的第二标识信息,确定第二状态数据的各第二切片数据所对应的第一KV数据库,即确定该第二标识信息对应的第二状态数据之前被切分的各第二切片数据被存储到了哪些第一KV数据库中。可选地,在状态数据被切分存储时,每个切片数据可以存储有状态数据的第二标识信息,并存储有状态数据的第二标识信息与KV数据库的标识信息的对应关系。具体可以根据实际需求设置,本实施例不做限定。
在确定了第二状态数据的各第二切片数据所在的第一KV数据库后,则可以从各第一KV数据库获取第二状态数据的各第二切片数据,并将其形成第二状态数据返回给区块链系统。
作为另一种可实施的方式,在上述实施例一的基础上,可选地,该方法还可以包括:
步骤2051,监控各KV数据库的存储资源状态。
步骤2052,针对每个KV数据库,若其存储资源状态不足,则按照预设资源调度规则分配新的存储资源,将KV数据库迁移到新的存储资源。
具体的,可以设置数据库管理模块,实时或定期监控各KV数据库的存储资源状态,当某个KV数据库的存储资源状态达到一定限度后,比如对存储设备的存储空间占用超过预设比例,确定该KV数据库存储资源状态不足,为该KV数据库分配新的存储资源,将该KV数据库迁移到新的存储设备。
通过实时或定期监控各KV数据库的存储资源状态,并在其存储资源状态不足时,按照预设资源调度规则分配新的存储资源,将该KV数据库迁移到新的存储设备,可以优化利用存储设备,提升区块链系统状态数据管理的综合性能。
作为另一种可实施的方式,在上述实施例一的基础上,可选地,各KV数据库分组挂载在至少两个存储桶Bucket上。
需要说明的是,本实施例中各可实施的方式可以单独实施,也可以在不冲突的情况下以任意组合方式结合实施本申请不做限定。
本实施例提供的数据管理方法,通过将区块链系统的状态数据切分,存储到多个KV数据库中,可以减小每个KV数据库的数据规模,提升每个KV数据库的管理效率。并且,通过按照实际需求预设的资源调度规则为存储资源不充足的第一KV数据库调度分配存储资源,可以优化利用存储设备,提升区块链系统状态数据管理的综合性能。还通过实时或定期监控各KV数据库的存储资源状态,并在其存储资源状态不足时,按照预设资源调度规则分配新的存储资源,将该KV数据库迁移到新的存储设备,可以优化利用存储设备,提升区块链系统状态数据管理的综合性能。通过提供灵活可配的数据切片规则和存储资源调度规则,可适用于不同的业务应用场景。
实施例三
本实施例提供一种数据管理装置,用于执行上述实施例一的方法。
如图4所示,为本实施例提供的数据管理装置的结构示意图。该数据管理装置30包括获取模块31、处理模块32和存储模块33。
其中,获取模块31用于获取区块链系统的第一状态数据,第一状态数据为区块链系统的当前状态的数据;处理模块32用于根据预设切片规则,对第一状态数据进行切分,获得至少一种类型的第一切片数据,不同类型的切片数据对应不同的KV数据库;存储模块33用于将各类型的第一切片数据存储到对应的第一KV数据库。
关于本实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
根据本实施例提供的装置,通过将区块链系统的状态数据切分,存储到多个KV数据库中,可以减小每个KV数据库的数据规模,提升每个KV数据库的管理效率。
实施例四
本实施例对上述实施例三提供的装置做进一步补充说明。
作为一种可实施的方式,在上述实施例三的基础上,可选地,存储模块,具体用于:
对于每种类型的第一切片数据,获取第一切片数据对应的第一KV数据库的第一标识信息;
根据各第一标识信息获取各第一切片数据对应的第一KV数据库的对象;
基于第一KV数据库的对象,将各第一切片数据存储到对应的第一KV数据库。
作为另一种可实施的方式,在上述实施例三的基础上,可选地,处理模块,具体用于:
基于第一状态数据中包括的区块链标识、智能合约标识及业务数据主键,对第一状态数据进行切分。
作为另一种可实施的方式,在上述实施例三的基础上,可选地,处理模块,还用于:
判断各第一切片数据对应的第一KV数据库是否初始化;
若未初始化,则进行初始化处理。
作为另一种可实施的方式,在上述实施例三的基础上,可选地,处理模块,还用于:
判断各第一切片数据对应的第一KV数据库的存储资源是否充足;
对于每个第一KV数据库,若该第一KV数据库的存储资源不充足,则根据预设资源调度规则,为该第一KV数据库分配存储资源。
作为另一种可实施的方式,在上述实施例三的基础上,可选地,处理模块,还用于向区块链系统返回存储结果信息。
作为另一种可实施的方式,在上述实施例三的基础上,可选地,获取模块,还用于接收区块链系统的数据请求,数据请求包括请求的第二状态数据的第二标识信息;
处理模块,还用于根据第二标识信息,确定第二状态数据的各第二切片数据对应的第一KV数据库;
处理模块,还用于从各第二切片数据对应的第一KV数据库获取第二状态数据的各第二切片数据;
处理模块,还用于将各第二切片数据形成第二状态数据返回给区块链系统。
作为另一种可实施的方式,在上述实施例三的基础上,可选地,处理模块,还用于:
监控各KV数据库的存储资源状态;
针对每个KV数据库,若其存储资源状态不足,则按照预设资源调度规则分配新的存储资源,将KV数据库迁移到新的存储资源。
作为另一种可实施的方式,在上述实施例三的基础上,可选地,各KV数据库分组挂载在至少两个存储桶Bucket上。
关于本实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
需要说明的是,本实施例中各可实施的方式可以单独实施,也可以在不冲突的情况下以任意组合方式结合实施本申请不做限定。
根据本实施例的数据管理装置,通过将区块链系统的状态数据切分,存储到多个KV数据库中,可以减小每个KV数据库的数据规模,提升每个KV数据库的管理效率。并且,通过按照实际需求预设的资源调度规则为存储资源不充足的第一KV数据库调度分配存储资源,可以优化利用存储设备,提升区块链系统状态数据管理的综合性能。还通过实时或定期监控各KV数据库的存储资源状态,并在其存储资源状态不足时,按照预设资源调度规则分配新的存储资源,将该KV数据库迁移到新的存储设备,可以优化利用存储设备,提升区块链系统状态数据管理的综合性能。通过提供灵活可配的数据切片规则和存储资源调度规则,可适用于不同的业务应用场景。
在一些实施例中,可选地,在实际示例中,该数据管理装置可以由状态数据管理引擎、状态数据路由器、数据库管理器、存储资源调度器和数据操作执行器五个功能模块构成。
其中,状态数据管理引擎提供状态数据管理系统对外访问接口,并调度其他组件完成状态数据管理指令的执行。状态数据路由器根据数据管理指令中的区块链标识、智能合约标识和业务数据主键,基于预设切片规则将数据请求路由到对应的KV数据库或数据库集合。数据库管理器主要负责KV数据库实例集的管理,使用存储资源调度器分配的存储资源初始化KV数据库实例,并提供实例获取功能。存储资源调度器根据预配置的资源调度规则,为KV数据库实例动态调度分配存储资源。数据操作执行器适配不同的KV数据库系统,提供统一的KV数据操作接口,将KV数据操作指令落实到K-V数据库。
实施例五
本实施例提供一种计算机设备,用于执行上述实施例提供的方法。
如图5所示,为本实施例提供的计算机设备的结构示意图。该计算机设备50包括:至少一个处理器51和存储器52;
存储器存储计算机程序;至少一个处理器执行存储器存储的计算机程序,以实现上述实施例提供的方法。
根据本实施例的计算机设备,通过将区块链系统的状态数据切分,存储到多个KV数据库中,可以减小每个KV数据库的数据规模,提升每个KV数据库的管理效率。并且,通过按照实际需求预设的资源调度规则为存储资源不充足的第一KV数据库调度分配存储资源,可以优化利用存储设备,提升区块链系统状态数据管理的综合性能。还通过实时或定期监控各KV数据库的存储资源状态,并在其存储资源状态不足时,按照预设资源调度规则分配新的存储资源,将该KV数据库迁移到新的存储设备,可以优化利用存储设备,提升区块链系统状态数据管理的综合性能。通过提供灵活可配的数据切片规则和存储资源调度规则,可适用于不同的业务应用场景。
实施例六
本实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,计算机程序被执行时实现上述任一实施例提供的方法。
根据本实施例的计算机可读存储介质,通过将区块链系统的状态数据切分,存储到多个KV数据库中,可以减小每个KV数据库的数据规模,提升每个KV数据库的管理效率。并且,通过按照实际需求预设的资源调度规则为存储资源不充足的第一KV数据库调度分配存储资源,可以优化利用存储设备,提升区块链系统状态数据管理的综合性能。还通过实时或定期监控各KV数据库的存储资源状态,并在其存储资源状态不足时,按照预设资源调度规则分配新的存储资源,将该KV数据库迁移到新的存储设备,可以优化利用存储设备,提升区块链系统状态数据管理的综合性能。通过提供灵活可配的数据切片规则和存储资源调度规则,可适用于不同的业务应用场景。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (18)
1.一种数据管理方法,其特征在于,包括:
获取区块链系统的第一状态数据,所述第一状态数据为所述区块链系统的当前状态的数据;
根据预设切片规则,对所述第一状态数据进行切分,获得至少一种类型的第一切片数据,不同类型的切片数据对应不同的KV数据库;
将各类型的所述第一切片数据存储到对应的第一KV数据库;
所述根据预设切片规则,对所述第一状态数据进行切分,包括:
基于所述第一状态数据中包括的区块链标识、智能合约标识及业务数据主键,对所述第一状态数据进行切分。
2.根据权利要求1所述的方法,其特征在于,所述将各类型的所述第一切片数据存储到对应的第一KV数据库,包括:
对于每种类型的第一切片数据,获取所述第一切片数据对应的第一KV数据库的第一标识信息;
根据各所述第一标识信息获取各所述第一切片数据对应的第一KV数据库的对象;
基于所述第一KV数据库的对象,将各所述第一切片数据存储到对应的第一KV数据库。
3.根据权利要求1所述的方法,其特征在于,在将各类型的所述第一切片数据存储到对应的第一KV数据库之前,所述方法还包括:
判断各所述第一切片数据对应的第一KV数据库是否初始化;
若未初始化,则进行初始化处理。
4.根据权利要求1所述的方法,其特征在于,在将各类型的所述第一切片数据存储到对应的第一KV数据库之前,所述方法还包括:
判断各所述第一切片数据对应的第一KV数据库的存储资源是否充足;
对于每个第一KV数据库,若该第一KV数据库的存储资源不充足,则根据预设资源调度规则,为该第一KV数据库分配存储资源。
5.根据权利要求1所述的方法,其特征在于,在将各类型的所述第一切片数据存储到对应的第一KV数据库之后,所述方法还包括:
向所述区块链系统返回存储结果信息。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述区块链系统的数据请求,所述数据请求包括请求的第二状态数据的第二标识信息;
根据所述第二标识信息,确定所述第二状态数据的各第二切片数据对应的第一KV数据库;
从各第二切片数据对应的第一KV数据库获取所述第二状态数据的各第二切片数据;
将各所述第二切片数据形成所述第二状态数据返回给所述区块链系统。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
监控各KV数据库的存储资源状态;
针对每个KV数据库,若其存储资源状态不足,则按照预设资源调度规则分配新的存储资源,将所述KV数据库迁移到新的存储资源。
8.根据权利要求1-7任一项所述的方法,其特征在于,各KV数据库分组挂载在至少两个存储桶Bucket上。
9.一种数据管理装置,其特征在于,包括:
获取模块,用于获取区块链系统的第一状态数据,所述第一状态数据为所述区块链系统的当前状态的数据;
处理模块,用于根据预设切片规则,对所述第一状态数据进行切分,获得至少一种类型的第一切片数据,不同类型的切片数据对应不同的KV数据库;
存储模块,用于将各类型的所述第一切片数据存储到对应的第一KV数据库;
所述处理模块,具体用于:
基于所述第一状态数据中包括的区块链标识、智能合约标识及业务数据主键,对所述第一状态数据进行切分。
10.根据权利要求9所述的装置,其特征在于,所述存储模块,具体用于:
对于每种类型的第一切片数据,获取所述第一切片数据对应的第一KV数据库的第一标识信息;
根据各所述第一标识信息获取各所述第一切片数据对应的第一KV数据库的对象;
基于所述第一KV数据库的对象,将各所述第一切片数据存储到对应的第一KV数据库。
11.根据权利要求9所述的装置,其特征在于,所述处理模块,还用于:
判断各所述第一切片数据对应的第一KV数据库是否初始化;
若未初始化,则进行初始化处理。
12.根据权利要求9所述的装置,其特征在于,所述处理模块,还用于:
判断各所述第一切片数据对应的第一KV数据库的存储资源是否充足;
对于每个第一KV数据库,若该第一KV数据库的存储资源不充足,则根据预设资源调度规则,为该第一KV数据库分配存储资源。
13.根据权利要求9所述的装置,其特征在于,所述处理模块,还用于向所述区块链系统返回存储结果信息。
14.根据权利要求9所述的装置,其特征在于,所述获取模块,还用于接收所述区块链系统的数据请求,所述数据请求包括请求的第二状态数据的第二标识信息;
所述处理模块,还用于根据所述第二标识信息,确定所述第二状态数据的各第二切片数据对应的第一KV数据库;
所述处理模块,还用于从各第二切片数据对应的第一KV数据库获取所述第二状态数据的各第二切片数据;
所述处理模块,还用于将各所述第二切片数据形成所述第二状态数据返回给所述区块链系统。
15.根据权利要求9所述的装置,其特征在于,所述处理模块,还用于:
监控各KV数据库的存储资源状态;
针对每个KV数据库,若其存储资源状态不足,则按照预设资源调度规则分配新的存储资源,将所述KV数据库迁移到新的存储资源。
16.根据权利要求9-15任一项所述的装置,其特征在于,各KV数据库分组挂载在至少两个存储桶Bucket上。
17.一种计算机设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机程序;所述至少一个处理器执行所述存储器存储的计算机程序,以实现权利要求1-8中任一项所述的方法。
18.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时实现权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811492678.0A CN111291018B (zh) | 2018-12-07 | 2018-12-07 | 数据管理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811492678.0A CN111291018B (zh) | 2018-12-07 | 2018-12-07 | 数据管理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111291018A CN111291018A (zh) | 2020-06-16 |
CN111291018B true CN111291018B (zh) | 2023-06-23 |
Family
ID=71023040
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811492678.0A Active CN111291018B (zh) | 2018-12-07 | 2018-12-07 | 数据管理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111291018B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112905606B (zh) * | 2021-05-07 | 2021-08-03 | 中建电子商务有限责任公司 | 一种基于位图的考勤标识算法 |
CN113254537A (zh) * | 2021-06-17 | 2021-08-13 | 支付宝(杭州)信息技术有限公司 | 区块链状态的存储、读取方法和区块链节点 |
CN113438645A (zh) * | 2021-06-29 | 2021-09-24 | 恒安嘉新(北京)科技股份公司 | 一种5g网络下数据安全保护方法、装置、介质及电子设备 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103514222B (zh) * | 2012-06-29 | 2017-09-19 | 无锡江南计算技术研究所 | 虚拟机映像的存储方法、管理方法、存储管理装置及系统 |
CN104424210B (zh) * | 2013-08-22 | 2017-11-14 | 腾讯科技(深圳)有限公司 | 一种信息推荐方法、系统及服务器 |
CN104598459B (zh) * | 2013-10-30 | 2019-01-15 | 阿里巴巴集团控股有限公司 | 数据库处理、数据访问方法及系统 |
US9351124B1 (en) * | 2015-06-29 | 2016-05-24 | Cognizant Business Services Limited | Location detection and communication through latent dynamic network interactions |
CA3019642C (en) * | 2016-04-01 | 2023-03-07 | Jpmorgan Chase Bank, N.A. | Systems and methods for providing data privacy in a private distributed ledger |
CN108460041B (zh) * | 2017-02-20 | 2022-12-23 | 腾讯科技(深圳)有限公司 | 数据的处理方法和装置 |
CN106980649B (zh) * | 2017-02-28 | 2020-07-10 | 创新先进技术有限公司 | 写入区块链业务数据的方法和装置及业务子集合确定方法 |
CN107203344A (zh) * | 2017-05-31 | 2017-09-26 | 郑州云海信息技术有限公司 | 一种数据存储方法及数据存储系统 |
CN107332847B (zh) * | 2017-07-05 | 2019-04-26 | 武汉凤链科技有限公司 | 一种基于区块链的访问控制方法和系统 |
CN108647361B (zh) * | 2018-05-21 | 2021-12-03 | 中国工商银行股份有限公司 | 一种基于区块链的数据存储方法、装置及系统 |
CN108734028B (zh) * | 2018-05-24 | 2020-10-09 | 中国联合网络通信集团有限公司 | 基于区块链的数据管理方法、区块链节点及存储介质 |
-
2018
- 2018-12-07 CN CN201811492678.0A patent/CN111291018B/zh active Active
Non-Patent Citations (1)
Title |
---|
基于区块链技术的电子数据存证系统;孙国梓;冒小乐;陈鼎洁;雷鹏;李华康;;西安邮电大学学报(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111291018A (zh) | 2020-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11586673B2 (en) | Data writing and reading method and apparatus, and cloud storage system | |
US9552231B2 (en) | Client classification-based dynamic allocation of computing infrastructure resources | |
CN111291018B (zh) | 数据管理方法、装置、设备及存储介质 | |
CN111522636B (zh) | 应用容器的调整方法、调整系统、计算机可读介质及终端设备 | |
CN107656807B (zh) | 一种虚拟资源的自动弹性伸缩方法及装置 | |
CN105812175B (zh) | 一种资源管理方法及资源管理设备 | |
US20100138627A1 (en) | Efficient alert mechanism for overutilization of storage resources | |
US8443369B1 (en) | Method and system for dynamically selecting a best resource from each resource collection based on resources dependencies, prior selections and statistics to implement an allocation policy | |
CN111399761B (zh) | 存储资源分配方法、装置及设备、存储介质 | |
CN115291806A (zh) | 一种处理方法、装置、电子设备及存储介质 | |
CN108595251B (zh) | 动态图更新方法、装置、存储引擎接口和程序介质 | |
US11252121B2 (en) | Message sending method and terminal device | |
CN112860387A (zh) | 分布式任务调度方法、装置、计算机设备及存储介质 | |
US8527565B2 (en) | Selecting and reassigning a blade for a logical partition for service scheduling of a blade server | |
CN116643704A (zh) | 存储管理方法、装置、电子设备及存储介质 | |
CN109213769B (zh) | 一种数据对象的数据冲突识别方法 | |
CN109144689B (zh) | 任务调度方法、装置及计算机程序产品 | |
CN114327862B (zh) | 一种内存分配方法、装置、电子设备及存储介质 | |
CN114518848B (zh) | 存储数据的处理方法、装置、设备和介质 | |
CN107422991B (zh) | 一种存储策略管理系统 | |
CN111885159B (zh) | 数据采集方法、装置、电子设备及存储介质 | |
CN115756955A (zh) | 一种数据备份、数据恢复的方法、装置及计算机设备 | |
CN112685334A (zh) | 一种分块缓存数据的方法、装置及存储介质 | |
WO2019196595A1 (zh) | 管理应用程序的方法与装置 | |
CN112788768A (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 |