CN111104456A - 数据持久化存储方法、装置、计算机设备及存储介质 - Google Patents
数据持久化存储方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN111104456A CN111104456A CN201910968903.1A CN201910968903A CN111104456A CN 111104456 A CN111104456 A CN 111104456A CN 201910968903 A CN201910968903 A CN 201910968903A CN 111104456 A CN111104456 A CN 111104456A
- Authority
- CN
- China
- Prior art keywords
- channel
- channel object
- storage
- target
- information
- 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
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000002688 persistence Effects 0.000 title claims abstract description 32
- 238000012163 sequencing technique Methods 0.000 claims description 51
- 230000002085 persistent effect Effects 0.000 claims description 31
- 238000004590 computer program Methods 0.000 claims description 15
- 238000005516 engineering process Methods 0.000 abstract description 7
- 238000012795 verification Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 238000007726 management method Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
Abstract
本发明公开了数据持久化存储方法、装置、计算机设备及存储介质。方法包括:根据用户所输入的通道创建请求创建包含Channel对象的存储通道,对Channel对象进行序列化并持久化存储,根据所输入的通道对象获取请求获取对应的目标Channel对象,对目标Channel对象是否已被初始化进行判断,并将初始化后的目标Channel对象反馈至用户。本发明基于分级存储技术,可对序列化后的Channel对象进行持久化存储,且可快速获取得到目标Channel对象并进行初始化,可确保Channel对象的高可用性,解决了区块链技术对数据信息进行存储时可靠性不高的问题。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据持久化存储方法、装置、计算机设备及存储介质。
背景技术
在基于Fabric区块链对数据信息进行存储时,需通过每一用户终端对应SDK(Software Development Kit,软件开发工具包)节点的Channel对象执行智能合约,然而在用户终端运行过程中会发生错误导致用户终端重启,则用户终端的随机存储介质中所保存的Channel对象在重启后全部丢失,重启后的用户终端无法正确执行智能合约,导致对数据进行存储时可靠性不高。因而,现有的基于Fabric区块链对数据信息进行存储的方法存在可靠性不高的问题。
发明内容
本发明实施例提供了一种数据持久化存储方法、装置、计算机设备及存储介质,旨在解决现有技术方法中的区块链技术对数据信息进行存储时可靠性不高的问题。
第一方面,本发明实施例提供了一种数据持久化存储方法,其包括:
若接收到用户所输入的通道创建请求,根据所述通道创建请求在所述用户终端对应的SDK节点的随机存储介质中创建包含Channel对象的存储通道;
对所述Channel对象进行序列化后持久化存储至所述用户终端对应的SDK节点中;
若接收到用户所输入的通道对象获取请求,获取所述用户终端中与所述通道对象获取请求对应的Channel对象作为目标Channel对象;
对所述目标Channel对象是否已被初始化进行判断以得到初始化判断结果;
若所述初始化判断结果为是,将所述目标Channel对象反馈至所述用户;
若所述初始化判断结果为否,对所述目标Channel对象进行初始化后反馈至所述用户。
第二方面,本发明实施例提供了一种数据持久化存储装置,其包括:
存储通道创建单元,用于若接收到用户所输入的通道创建请求,根据所述通道创建请求在所述用户终端对应的SDK节点的随机存储介质中创建包含Channel对象的存储通道;
Channel对象持久化存储单元,用于对所述Channel对象进行序列化后持久化存储至所述用户终端对应的SDK节点中;
目标Channel对象获取单元,用于若接收到用户所输入的通道对象获取请求,获取所述用户终端中与所述通道对象获取请求对应的Channel对象作为目标Channel对象;
初始化判断单元,用于对所述目标Channel对象是否已被初始化进行判断以得到初始化判断结果;
第一反馈单元,用于若所述初始化判断结果为是,将所述目标Channel对象反馈至所述用户;
第二反馈单元,用于若所述初始化判断结果为否,对所述目标Channel对象进行初始化后反馈至所述用户。
第三方面,本发明实施例又提供了一种计算机设备,其包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的数据持久化存储方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其中所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行上述第一方面所述的数据持久化存储方法。
本发明实施例提供了一种数据持久化存储方法、装置、计算机设备及存储介质。根据用户所输入的通道创建请求创建包含Channel对象的存储通道,对Channel对象进行序列化并持久化存储,根据所输入的通道对象获取请求获取对应的目标Channel对象,对目标Channel对象是否已被初始化进行判断,并将初始化后的目标Channel对象反馈至用户。通过上述方法,可对序列化后的Channel对象进行持久化存储,且可快速获取得到目标Channel对象并进行初始化,可确保Channel对象的高可用性,解决了区块链技术对数据信息进行存储时可靠性不高的问题。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的数据持久化存储方法的流程示意图;
图2为本发明实施例提供的数据持久化存储方法的应用场景示意图;
图3为本发明实施例提供的数据持久化存储方法的子流程示意图;
图4为本发明实施例提供的数据持久化存储方法的另一流程示意图;
图5为本发明实施例提供的数据持久化存储方法的另一子流程示意图;
图6为本发明实施例提供的数据持久化存储方法的另一子流程示意图;
图7为本发明实施例提供的数据持久化存储装置的示意性框图;
图8为本发明实施例提供的数据持久化存储装置的子单元示意性框图;
图9为本发明实施例提供的数据持久化存储装置的另一示意性框图;
图10为本发明实施例提供的数据持久化存储装置的另一子单元示意性框图;
图11为本发明实施例提供的数据持久化存储装置的另一子单元示意性框图;
图12为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1,图1是本发明实施例提供的数据持久化存储方法的流程示意图;图2为本发明实施例提供的数据持久化存储方法的应用场景示意图。该数据持久化存储方法应用于用户终端10中,该方法通过安装于用户终端10中的应用软件进行执行,区块链网络20通过与用户终端10建立网络连接实现数据信息的传输。用户终端10即是用于执行数据持久化存储方法以实现对Channel对象进行持久化存储的终端设备,例如台式电脑、笔记本电脑、平板电脑或手机等,区块链网络30即是互联网中多台终端设备及管理服务器基于智能合约所组成的终端网络。图2中仅仅示意出一台用户终端10与区块链网络20进行信息传输,在实际应用中,该区块链网络20也可与多台用户终端10同时进行信息传输。
如图1所示,该方法包括步骤S110~S160。
S110、若接收到用户所输入的通道创建请求,根据所述通道创建请求在所述用户终端对应的SDK节点的随机存储介质中创建包含Channel对象的存储通道。
若接收到用户所输入的通道创建请求,根据所述通道创建请求在所述用户终端对应的SDK节点的随机存储介质中创建包含Channel对象的存储通道。区块链网络中包含多个用户终端以及对用户终端进行管理的管理服务器,管理服务器即为区块链网络中的排序服务节点,一台用户终端对应包含一个SDK节点,SDK节点即为用户终端中的软件开发工具包(Software Development Kit),一个SDK节点可对应区块链网络中的一个或多个Peer节点,一个存储通道可包含多个Peer节点,每一个Peer节点即与一台用户终端中的SDK节点关联,每一存储通道内所存储的数据互相隔离;排序服务节点可接收包含背书签名的交易、对交易进行排序或打包生成区块、将信息广播给Peer节点,排序服务节点可保证同一个存储通道内的节点接收到相同的消息并且有相同的逻辑顺序;SDK节点即可为用户提供服务,一个SDK节点中可创建一个或多个Channel对象,SDK节点中的一个Channel对象即与该SDK节点所包含的一个Peer节点相对应,也即是一个SDK节点可对应一个或多个Peer节点,每一Channel对象隶属于区块链网络中的一个存储通道,一个存储通道所隶属的所有Channel对象均相同,Channel对象即为所需进行持久化存储的数据,对Channel对象对应的数据进行持久化存储即可保持Channel对象的高可用性,通过一个存储通道内的多个Channel对象即可实现对信息进行分布式存储。用户可在用户终端中输入通道创建请求并通过该用户终端创建新的存储通道,具体的,通道创建请求中包含通道名称、排序服务节点信息、Peer节点信息、数据签名信息等,排序服务节点信息即是排序服务节点的节点信息,Peer节点信息即为该存储通道内所包含的Peer节点,数据签名信息即是用于对存储通道内数据进行签名的信息,通过通道创建请求中所包含的具体信息即可创建得到包含Channel对象的存储通道。
用户终端中包括与SDK节点对应的一个随机存储介质,随机存储介质即是用于对数据信息进行临时性存储的介质,例如用户终端中的内存,SDK节点中包括一个用于对通道记录信息进行记录的数据表以及一个或多个Channel对象,若某一SDK节点中包含一个Channel对象,则该SDK节点的数据表中仅包含一条与该Channel对象对应的通道记录信息;若某一SDK节点中包含多个Channel对象,则该SDK节点的数据表中包含多个对象分别对应的多条通道记录信息。根据通道创建请求即可创建对应的Channel对象,所创建的Channel对象存储于SDK节点的随机存储介质中;具体的,Channel对象中存储有所创建存储通道的信息,包括通道名称、排序服务节点信息、Peer节点信息、数据签名信息等。
在一实施例中,如图3所示,步骤S110之后还包括步骤S110a。
S110a、根据所述Channel对象中的排序服务节点信息将所述Channel对象发送至与所述排序服务节点信息对应的排序服务节点,以对所述Channel对象进行初始化。
根据所述Channel对象中的排序服务节点信息将所述Channel对象发送至与所述排序服务节点信息对应的排序服务节点,以对所述Channel对象进行初始化。创建存储通道后,所创建的存储通道的具体信息及Channel对象均只存储于生成该存储通道的SDK节点中,为使新创建的Channel对象实现对信息进行分布式存储的功能,需对新创建的Channel对象进行初始化,具体的,将Channel对象发送至与该Channel对象中的排序服务节点信息对应的排序服务节点,排序服务节点接收到Channel对象即可根据该Channel对象中的Peer节点信息,将Channel对象发送至Peer节点信息对应的SDK节点中,Peer节点信息中包含一个或多个Peer节点,每一个Peer节点与一台用户终端中的SDK节点关联,即可通过多个SDK节点所包含的同一Channel对象所组成的存储通道进行信息的存储及交互,也即是实现对信息进行分布式存储。
S120、对所述Channel对象进行序列化后持久化存储至所述用户终端对应的SDK节点中。
对所述Channel对象进行序列化后持久化存储至所述用户终端对应的SDK节点中。具体的,SDK节点包含与之对应的NAS网盘及数据库,NAS网盘用于对与Channel对象对应的Channel文件进行持久化存储,数据库用于对Channel对象所属存储通道对应的新增通道记录信息进行持久化存储。
在一实施例中,如图4所示,步骤S120包括子步骤S121、S122、S123和S124。
S121、对所述Channel对象进行序列化以得到Channel文件。
对所述Channel对象进行序列化以得到Channel文件。由于Channel对象为程序语言,为对Channel对象所包含的信息进行持久化保存,需将Channel对象序列化为Channel文件,Channel文件为一个二进制文件,因此可对Channel文件进行方便、持久化地存储。打开二进制文件用户只能看到一行乱码,因此对Channel文件进行反序列化生成相应的Channel对象才能正常使用。
S122、将所述Channel文件存储至所述SDK节点对应的NAS网盘中并获取存储路径信息。
将所述Channel文件存储至所述SDK节点对应的NAS网盘中并记录存储路径信息。NAS网盘为与SDK节点对应的一个可读写的存储介质,例如,每一SDK节点均对应一个共享的NAS网盘,NAS网盘可对数据进行持久化存储,可将所得到的Channel文件存储至对应的NAS网盘中并获取相应的存储路径信息。存储路径信息中包括Channel文件的文件名及存储地址。
例如,某一Channel文件对应的存储路径信息如表1所示。
文件名 | 存储地址 |
org1-mychannel | /network_resources/org1-mychannel.channel |
表1
S123、根据所述通道创建请求、存储路径信息生成新增通道记录信息。
根据所述通道创建请求、存储路径信息生成新增通道记录信息。具体的,获取通道创建请求中的具体信息以及存储路径信息,生成对应的新增通道记录信息,新增通道记录信息即为对所创建的存储通道进行记录的摘要信息,新增通道记录信息中包括通道名称、排序服务节点信息、Peer节点信息、Channel文件的文件名及存储地址等信息。
S124、将所述新增通道记录信息存储至所述SDK节点的数据库中。
将所述新增通道记录信息存储至所述SDK节点的数据库中。将新增通道记录信息存储至对应SDK节点的数据库中即可完成存储通道的创建,将新增通道记录信息进行存储后,即可通过数据库中所存储的新增通道记录信息对相应存储通道的信息进行检索,以方便用户的使用,其中,所述数据库可以是SQlite轻量级数据库,相比MySQL或SQLServer等传统类型的数据库,SQlite轻量级数据库对数据进行存储时更加简洁高效。此外,还可将随机存储介质中所缓存的Channel对象存储至数据库中,若随机存储介质断电信息丢失,可从数据库中获取某一存储通道对应Channel对象缓存至随机存储介质中,以使用户快捷方便地对Channel对象进行获取及使用。
S130、若接收到用户所输入的通道对象获取请求,获取所述用户终端中与所述通道对象获取请求对应的Channel对象作为目标Channel对象。
若接收到用户所输入的通道对象获取请求,根据所述通道对象获取请求获取所述用户终端中所存储的Channel对象。用户通过获取相应的Channel对象并进行使用,以实现对信息的分布式存储,用户可通过输入通道对象获取请求获取相应的Channel对象,通道对象获取请求中可以包括Channel对象名称或通道名称。
在一实施例中,如图5所示,步骤S130包括子步骤S131、S132、S133、S134和S135。
S131、判断所述用户终端对应的SDK节点的随机存储介质中是否存在与所述通道对象获取请求对应的Channel对象以得到存储判断结果。
判断所述用户终端对应的SDK节点的随机存储介质中是否存在与所述通道对象获取请求对应的Channel对象以得到存储判断结果。Channel对象创建于SDK节点的随机存储介质中,若用户终端重启导致随机存储介质中所存储的Channel对象丢失,在获取对应Channel对象之前,可先对SDK节点的随机存储介质中是否存在与所述通道对象获取请求对应的Channel对象进行判断,具体的,Channel对象中包括其所属的通道名称,可通过通道对象获取请求中所包含的Channel对象名称或通道名称对随机存储介质中的数据进行查询,若查询到随机存储介质的数据中包含与通道对象获取请求对应的Channel对象,则存储判断结果为存在;若未查询到与通道对象获取请求对应的Channel对象,则判断结果为不存在。
S132、若所述存储判断结果为是,获取所述随机存储介质中与所述通道对象获取请求对应的Channel对象作为目标Channel对象。
若存储判断结果为是,则表明当前SDK节点的随机存储介质中包含与通道对象获取请求对应的Channel对象,则可直接获取该Channel对象作为目标Channel对象。
S133、若所述存储判断结果为否,根据所述通道对象获取请求对所述SDK节点的数据库进行检索,以获取所述数据库中与所述通道对象获取请求对应的目标通道记录信息。
若所述存储判断结果为否,根据所述通道对象获取请求对所述SDK节点的数据库进行检索,以获取所述数据库中与所述通道对象获取请求对应的通道记录信息作为目标通道记录信息。若随机存储介质中不包含与通道对象获取请求对应的Channel对象,则可根据通道对象获取请求对SDK节点的数据库进行检索,数据库中记录了基于该SDK节点所创建的每一存储通道的通道记录信息,通道记录信息中包括通道名称、排序服务节点信息、Peer节点信息、Channel文件的文件名及存储地址等信息,因此可根据通道对象获取请求对数据库中的通道记录信息进行检索,以获取与通道对象获取请求对应的一条通道记录信息作为目标通道记录信息。若数据库中未检索到与通道对象获取请求对应的通道记录信息,则根据通道对象获取请求创建对应的存储通道。
S134、根据所述目标通道记录信息获取与所述SDK节点对应的NAS网盘中所存储的Channel文件作为目标Channel文件作为目标Channel文件。
根据所述目标通道记录信息获取与所述SDK节点对应的NAS网盘中所存储的Channel文件作为目标Channel文件作为目标Channel文件。通道记录信息中包括该通道对应的存储地址,每一存储地址均指向对应NAS网盘中的一个Channel文件,即可根据该存储地址获取对应NAS网盘中所存储的Channel文件,作为目标Channel文件。
S135、根据预置反序列化规则对所述目标Channel文件进行反序列化以得到目标Channel对象。
根据预置反序列化规则对所述目标Channel文件进行反序列化以得到目标Channel对象。每一Channel文件均为一个二进制文件,直接打开Channel文件则用户仅能看到一行乱码,因此需通过预置反序列化规则对该目标Channel文件进行反序列化,得到对应的目标Channel对象。反序列化规则即是用于对Channel文件进行反序列化以获取对应Channel对象的规则信息,具体的,反序列化规则包含与Channel对象对应的项目名称,根据项目名称对Channel文件进行反序列化即可得到Channel对象,项目名称包括通道名称、排序服务节点信息、Peer节点信息、数据签名信息等。
在一实施例中,如图6所示,步骤S130还包括子步骤S136。
S136、将所述目标Channel对象存储至所述SDK节点的随机存储介质中,以对所述目标Channel对象进行缓存。
在获取到目标Channel对象后,可将未存储于随机存储介质中的目标Channel对象存储至SDK节点的随机存储介质,也即是对目标Channel对象进行缓存,缓存至随机存储介质中的目标Channel对象可方便用户进行使用。
S140、对所述目标Channel对象是否已被初始化进行判断以得到初始化判断结果。
对所述目标Channel对象是否已被初始化进行判断以得到初始化判断结果。在将目标Channel对象反馈至用户之前,还需对目标Channel对象是否已被初始化进行判断,由于某些情况下(用户终端断开网络连接)虽然包含Channel对象的存储通道已在用户终端本地的SDK节点中创建,但由于Channel对象未进行初始化,区块链网络中该存储通道对应的排序服务节点及其他Peer节点并未获取到该存储通道的信息,也即是无法通过该存储通道进行信息的存储及交互。具体的,通过该目标Channel对象对应SDK节点的用户终端向目标Channel对象中排序服务节点信息所包含的排序服务节点(管理服务器)发送目标Channel对象的对象验证信息,对象验证信息中包括目标Channel对象所属通道的通道名称、目标Channel对象所属通道的创建时间,排序服务节点根据对象验证信息反馈对应的验证结果,验证结果中包括排序服务节点中是否已存储与目标Channel对象对应的信息,获取该验证结果即可对目标Channel对象是否已被初始化进行判断,若排序服务节点中已存储与目标Channel对象对应的信息,则初始化判断结果为是;若排序服务节点中未存储与目标Channel对象对应的信息,则初始化判断结果为否。
S150、若所述初始化判断结果为是,将所述目标Channel对象反馈至所述用户。
若所述初始化判断结果为是,将所述目标Channel对象反馈至所述用户。若目标Channel对象已完成初始化,即该Channel对象可进行使用,则将目标Channel对象反馈至用户进行使用。
S160、若所述初始化判断结果为否,对所述目标Channel对象进行初始化后反馈至所述用户。
若所述初始化判断结果为否,对所述目标Channel对象进行初始化后反馈至所述用户。若目标Channel对象未完成初始化,为确保用户所获取到的目标Channel对象可进行使用,则需对目标对象进行初始化后再反馈至用户进行使用,将目标Channel对象发送至与该目标Channel对象中的排序服务节点信息对应的排序服务节点,即可对目标Channel对象进行初始化,具体初始化过程与上述步骤相同,用户接收到已完成初始化的目标Channel对象后,即可使用该目标Channel对象对应的存储通道进行信息的存储及交互,也即是实现对信息进行分布式存储。
在本发明实施例所提供的数据持久化存储方法中,根据用户所输入的通道创建请求创建包含Channel对象的存储通道,对Channel对象进行序列化并持久化存储,根据所输入的通道对象获取请求获取对应的目标Channel对象,对目标Channel对象是否已被初始化进行判断,并将初始化后的目标Channel对象反馈至用户。通过上述方法,可对序列化后的Channel对象进行持久化存储,且可快速获取得到目标Channel对象并进行初始化,可确保Channel对象的高可用性,解决了区块链技术对数据信息进行存储时可靠性不高的问题。
本发明实施例还提供一种数据持久化存储装置,该数据持久化存储装置用于执行前述数据持久化存储方法的任一实施例。具体地,请参阅图7,图7是本发明实施例提供的数据持久化存储装置的示意性框图。该数据持久化存储装置可以配置于用户终端10中。
如图7所示,数据持久化存储装置100包括存储通道创建单元110、Channel对象持久化存储单元120、目标Channel对象获取单元130、初始化判断单元140、第一反馈单元150和第二反馈单元160。
存储通道创建单元110,用于若接收到用户所输入的通道创建请求,根据所述通道创建请求在所述用户终端对应的SDK节点的随机存储介质中创建包含Channel对象的存储通道。
若接收到用户所输入的通道创建请求,根据所述通道创建请求在所述用户终端对应的SDK节点的随机存储介质中创建包含Channel对象的存储通道。区块链网络中包含多个用户终端以及对用户终端进行管理的管理服务器,管理服务器即为区块链网络中的排序服务节点,一台用户终端对应包含一个SDK节点,SDK节点即为用户终端中的软件开发工具包(Software Development Kit),一个存储通道可包含多个Peer节点,每一个Peer节点即与一台用户终端中的SDK节点关联,每一存储通道内所存储的数据互相隔离;排序服务节点可接收包含背书签名的交易、对交易进行排序或打包生成区块、将信息广播给Peer节点,排序服务节点可保证同一个存储通道内的节点接收到相同的消息并且有相同的逻辑顺序;SDK节点即可为用户提供服务,一个SDK节点中可创建一个或多个Channel对象,SDK节点中的一个Channel对象即与该SDK节点所包含的一个Peer节点相对应,也即是一个SDK节点可对应一个或多个Peer节点,每一Channel对象隶属于区块链网络中的一个存储通道,一个存储通道所隶属的所有Channel对象均相同,Channel对象即为所需进行持久化存储的数据,对Channel对象对应的数据进行持久化存储即可保持Channel对象的高可用性,通过一个存储通道内的多个Channel对象即可实现对信息进行分布式存储。用户可在用户终端中输入通道创建请求并通过该用户终端创建新的存储通道,具体的,通道创建请求中包含通道名称、排序服务节点信息、Peer节点信息、数据签名信息等,排序服务节点信息即是排序服务节点的节点信息,Peer节点信息即为该存储通道内所包含的Peer节点,数据签名信息即是用于对存储通道内数据进行签名的信息,通过通道创建请求中所包含的具体信息即可创建得到包含Channel对象的存储通道。
用户终端中包括与SDK节点对应的一个随机存储介质,随机存储介质即是用于对数据信息进行临时性存储的介质,例如用户终端中的内存,SDK节点中包括一个用于对通道记录信息进行记录的数据表以及一个或多个Channel对象,若某一SDK节点中包含一个Channel对象,则该SDK节点的数据表中仅包含一条与该Channel对象对应的通道记录信息;若某一SDK节点中包含多个Channel对象,则该SDK节点的数据表中包含多个对象分别对应的多条通道记录信息。根据通道创建请求即可创建对应的Channel对象,所创建的Channel对象存储于SDK节点的随机存储介质中;具体的,Channel对象中存储有所创建存储通道的信息,包括通道名称、排序服务节点信息、Peer节点信息、数据签名信息等。
其他发明实施例中,如图8所示,所述数据持久化存储装100还包括子单元:Channel对象初始化单元110a。
Channel对象初始化单元110a,用于根据所述Channel对象中的排序服务节点信息将所述Channel对象发送至与所述排序服务节点信息对应的排序服务节点,以对所述Channel对象进行初始化。
根据所述Channel对象中的排序服务节点信息将所述Channel对象发送至与所述排序服务节点信息对应的排序服务节点,以对所述Channel对象进行初始化。创建存储通道后,所创建的存储通道的具体信息及Channel对象均只存储于生成该存储通道的SDK节点中,为使新创建的Channel对象实现对信息进行分布式存储的功能,需对新创建的Channel对象进行初始化,具体的,将Channel对象发送至与该Channel对象中的排序服务节点信息对应的排序服务节点,排序服务节点接收到Channel对象即可根据该Channel对象中的Peer节点信息,将Channel对象发送至Peer节点信息对应的SDK节点中,Peer节点信息中包含一个或多个Peer节点,每一个Peer节点与一台用户终端中的SDK节点关联,即可通过多个SDK节点所包含的同一Channel对象所组成的存储通道进行信息的存储及交互,也即是实现对信息进行分布式存储。
Channel对象持久化存储单元120,用于对所述Channel对象进行序列化后持久化存储至所述用户终端对应的SDK节点中。
对所述Channel对象进行序列化后持久化存储至所述用户终端对应的SDK节点中。具体的,SDK节点包含与之对应的NAS网盘及数据库,NAS网盘用于对与Channel对象对应的Channel文件进行持久化存储,数据库用于对Channel对象所属存储通道对应的新增通道记录信息进行持久化存储。
其他发明实施例中,如图9所示,所述Channel对象持久化存储单元120包括子单元:Channel文件获取单元121、Channel文件存储单元122、新增通道记录信息生成单元123和新增通道记录信息存储单元124。
Channel文件获取单元121,用于对所述Channel对象进行序列化以得到Channel文件。
对所述Channel对象进行序列化以得到Channel文件。由于Channel对象为程序语言,为对Channel对象所包含的信息进行持久化保存,需将Channel对象序列化为Channel文件,Channel文件为一个二进制文件,因此可对Channel文件进行方便、持久化地存储。打开二进制文件用户只能看到一行乱码,因此对Channel文件进行反序列化生成相应的Channel对象才能正常使用。
Channel文件存储单元122,用于将所述Channel文件存储至所述SDK节点对应的NAS网盘中并获取存储路径信息。
将所述Channel文件存储至所述SDK节点对应的NAS网盘中并记录存储路径信息。NAS网盘为与SDK节点对应的一个可读写的存储介质,例如,每一SDK节点均对应一个共享的NAS网盘,NAS网盘可对数据进行持久化存储,可将所得到的Channel文件存储至对应的NAS网盘中并获取相应的存储路径信息。存储路径信息中包括Channel文件的文件名及存储地址。
新增通道记录信息生成单元123,用于根据所述通道创建请求、存储路径信息生成新增通道记录信息。
根据所述通道创建请求、存储路径信息生成新增通道记录信息。具体的,获取通道创建请求中的具体信息以及存储路径信息,生成对应的新增通道记录信息,新增通道记录信息即为对所创建的存储通道进行记录的摘要信息,新增通道记录信息中包括通道名称、排序服务节点信息、Peer节点信息、Channel文件的文件名及存储地址等信息。
新增通道记录信息存储单元124,用于将所述新增通道记录信息存储至所述SDK节点的数据库中。
将所述新增通道记录信息存储至所述SDK节点的数据库中。将新增通道记录信息存储至对应SDK节点的数据库中即可完成存储通道的创建,将新增通道记录信息进行存储后,即可通过数据库中所存储的新增通道记录信息对相应存储通道的信息进行检索,以方便用户的使用,其中,所述数据库可以是SQlite轻量级数据库,相比MySQL或SQLServer等传统类型的数据库,SQlite轻量级数据库对数据进行存储时更加简洁高效。此外,还可将随机存储介质中所缓存的Channel对象存储至数据库中,若随机存储介质断电信息丢失,可从数据库中获取某一存储通道对应Channel对象缓存至随机存储介质中,以使用户快捷方便地对Channel对象进行获取及使用。
目标Channel对象获取单元130,用于若接收到用户所输入的通道对象获取请求,获取所述用户终端中与所述通道对象获取请求对应的Channel对象作为目标Channel对象。
若接收到用户所输入的通道对象获取请求,根据所述通道对象获取请求获取所述用户终端中所存储的Channel对象。用户通过获取相应的Channel对象并进行使用,以实现对信息的分布式存储,用户可通过输入通道对象获取请求获取相应的Channel对象,通道对象获取请求中可以包括Channel对象名称或通道名称。
其他发明实施例中,如图10所示,所述目标Channel对象获取单元130包括子单元:存储判断单元131、第一对象获取单元132、目标通道记录信息获取单元133、目标Channel文件获取单元134和第二对象获取单元135。
存储判断单元131,用于判断所述用户终端对应的SDK节点的随机存储介质中是否存在与所述通道对象获取请求对应的Channel对象以得到存储判断结果。
判断所述用户终端对应的SDK节点的随机存储介质中是否存在与所述通道对象获取请求对应的Channel对象以得到存储判断结果。Channel对象创建于SDK节点的随机存储介质中,若用户终端重启导致随机存储介质中所存储的Channel对象丢失,在获取对应Channel对象之前,可先对SDK节点的随机存储介质中是否存在与所述通道对象获取请求对应的Channel对象进行判断,具体的,Channel对象中包括其所属的通道名称,可通过通道对象获取请求中所包含的Channel对象名称或通道名称对随机存储介质中的数据进行查询,若查询到随机存储介质的数据中包含与通道对象获取请求对应的Channel对象,则存储判断结果为存在;若未查询到与通道对象获取请求对应的Channel对象,则判断结果为不存在。
第一对象获取单元132,用于若所述存储判断结果为是,获取所述随机存储介质中与所述通道对象获取请求对应的Channel对象作为目标Channel对象。
若存储判断结果为是,则表明当前SDK节点的随机存储介质中包含与通道对象获取请求对应的Channel对象,则可直接获取该Channel对象作为目标Channel对象。
目标通道记录信息获取单元133,用于若所述存储判断结果为否,根据所述通道对象获取请求对所述SDK节点的数据库进行检索,以获取所述数据库中与所述通道对象获取请求对应的目标通道记录信息。
若所述存储判断结果为否,根据所述通道对象获取请求对所述SDK节点的数据库进行检索,以获取所述数据库中与所述通道对象获取请求对应的通道记录信息作为目标通道记录信息。若随机存储介质中不包含与通道对象获取请求对应的Channel对象,则可根据通道对象获取请求对SDK节点的数据库进行检索,数据库中记录了基于该SDK节点所创建的每一存储通道的通道记录信息,通道记录信息中包括通道名称、排序服务节点信息、Peer节点信息、Channel文件的文件名及存储地址等信息,因此可根据通道对象获取请求对数据库中的通道记录信息进行检索,以获取与通道对象获取请求对应的一条通道记录信息作为目标通道记录信息。若数据库中未检索到与通道对象获取请求对应的通道记录信息,则根据通道对象获取请求创建对应的存储通道。
目标Channel文件获取单元134,用于根据所述目标通道记录信息获取与所述SDK节点对应的NAS网盘中所存储的Channel文件作为目标Channel文件作为目标Channel文件。
根据所述目标通道记录信息获取与所述SDK节点对应的NAS网盘中所存储的Channel文件作为目标Channel文件作为目标Channel文件。通道记录信息中包括该通道对应的存储地址,每一存储地址均指向对应NAS网盘中的一个Channel文件,即可根据该存储地址获取对应NAS网盘中所存储的Channel文件,作为目标Channel文件。
第二对象获取单元135,用于根据预置反序列化规则对所述目标Channel文件进行反序列化以得到目标Channel对象。
根据预置反序列化规则对所述目标Channel文件进行反序列化以得到目标Channel对象。每一Channel文件均为一个二进制文件,直接打开Channel文件则用户仅能看到一行乱码,因此需通过预置反序列化规则对该目标Channel文件进行反序列化,得到对应的目标Channel对象。反序列化规则即是用于对Channel文件进行反序列化以获取对应Channel对象的规则信息,具体的,反序列化规则包含与Channel对象对应的项目名称,根据项目名称对Channel文件进行反序列化即可得到Channel对象,项目名称包括通道名称、排序服务节点信息、Peer节点信息、数据签名信息等。
其他发明实施例中,如图11所示,所述目标Channel对象获取单元130还包括子单元:目标Channel对象缓存单元。
目标Channel对象缓存单元,用于将所述目标Channel对象存储至所述SDK节点的随机存储介质中,以对所述目标Channel对象进行缓存。
在获取到目标Channel对象后,可将未存储于随机存储介质中的目标Channel对象存储至SDK节点的随机存储介质,也即是对目标Channel对象进行缓存,缓存至随机存储介质中的目标Channel对象可方便用户进行使用。
初始化判断单元140,用于对所述目标Channel对象是否已被初始化进行判断以得到初始化判断结果。
对所述目标Channel对象是否已被初始化进行判断以得到初始化判断结果。在将目标Channel对象反馈至用户之前,还需对目标Channel对象是否已被初始化进行判断,由于某些情况下(用户终端断开网络连接)虽然包含Channel对象的存储通道已在用户终端本地的SDK节点中创建,但由于Channel对象未进行初始化,区块链网络中该存储通道对应的排序服务节点及其他Peer节点并未获取到该存储通道的信息,也即是无法通过该存储通道进行信息的存储及交互。具体的,通过该目标Channel对象对应SDK节点的用户终端向目标Channel对象中排序服务节点信息所包含的排序服务节点(管理服务器)发送目标Channel对象的对象验证信息,对象验证信息中包括目标Channel对象所属通道的通道名称、目标Channel对象所属通道的创建时间,排序服务节点根据对象验证信息反馈对应的验证结果,验证结果中包括排序服务节点中是否已存储与目标Channel对象对应的信息,获取该验证结果即可对目标Channel对象是否已被初始化进行判断,若排序服务节点中已存储与目标Channel对象对应的信息,则初始化判断结果为是;若排序服务节点中未存储与目标Channel对象对应的信息,则初始化判断结果为否。
第一反馈单元150,用于若所述初始化判断结果为是,将所述目标Channel对象反馈至所述用户。
若所述初始化判断结果为是,将所述目标Channel对象反馈至所述用户。若目标Channel对象已完成初始化,即该Channel对象可进行使用,则将目标Channel对象反馈至用户进行使用。
第二反馈单元160,用于若所述初始化判断结果为否,对所述目标Channel对象进行初始化后反馈至所述用户。
若所述初始化判断结果为否,对所述目标Channel对象进行初始化后反馈至所述用户。若目标Channel对象未完成初始化,为确保用户所获取到的目标Channel对象可进行使用,则需对目标对象进行初始化后再反馈至用户进行使用,将目标Channel对象发送至与该目标Channel对象中的排序服务节点信息对应的排序服务节点,即可对目标Channel对象进行初始化,具体初始化过程与上述步骤相同,用户接收到已完成初始化的目标Channel对象后,即可使用该目标Channel对象对应的存储通道进行信息的存储及交互,也即是实现对信息进行分布式存储。
在本发明实施例所提供的数据持久化存储装置用于执行上述数据持久化存储方法,根据用户所输入的通道创建请求创建包含Channel对象的存储通道,对Channel对象进行序列化并持久化存储,根据所输入的通道对象获取请求获取对应的目标Channel对象,对目标Channel对象是否已被初始化进行判断,并将初始化后的目标Channel对象反馈至用户。通过上述方法,可对序列化后的Channel对象进行持久化存储,且可快速获取得到目标Channel对象并进行初始化,可确保Channel对象的高可用性,解决了区块链技术对数据信息进行存储时可靠性不高的问题。
上述数据持久化存储装置可以实现为计算机程序的形式,该计算机程序可以在如图12所示的计算机设备上运行。
请参阅图12,图12是本发明实施例提供的计算机设备的示意性框图。
参阅图12,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032被执行时,可使得处理器502执行数据持久化存储方法。
该处理器502用于提供计算和控制能力,支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行数据持久化存储方法。
该网络接口505用于进行网络通信,如提供数据信息的传输等。本领域技术人员可以理解,图12中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下功能:若接收到用户所输入的通道创建请求,根据所述通道创建请求在所述用户终端对应的SDK节点的随机存储介质中创建包含Channel对象的存储通道;对所述Channel对象进行序列化后持久化存储至所述用户终端对应的SDK节点中;若接收到用户所输入的通道对象获取请求,获取所述用户终端中与所述通道对象获取请求对应的Channel对象作为目标Channel对象;对所述目标Channel对象是否已被初始化进行判断以得到初始化判断结果;若所述初始化判断结果为是,将所述目标Channel对象反馈至所述用户;若所述初始化判断结果为否,对所述目标Channel对象进行初始化后反馈至所述用户。
在一实施例中,处理器502在执行对所述Channel对象进行序列化后持久化存储至所述用户终端对应的SDK节点中的步骤时,执行如下操作:对所述Channel对象进行序列化以得到Channel文件;将所述Channel文件存储至所述SDK节点对应的NAS网盘中并获取存储路径信息;根据所述通道创建请求、存储路径信息生成新增通道记录信息;将所述新增通道记录信息存储至所述SDK节点的数据库中。
在一实施例中,处理器502在执行若接收到用户所输入的通道创建请求,根据所述通道创建请求在所述用户终端对应的SDK节点的随机存储介质中创建包含Channel对象的存储通道的步骤之后,还执行如下操作:根据所述Channel对象中的排序服务节点信息将所述Channel对象发送至与所述排序服务节点信息对应的排序服务节点,以对所述Channel对象进行初始化。
在一实施例中,处理器502在执行若接收到用户所输入的通道对象获取请求,获取所述用户终端中与所述通道对象获取请求对应的Channel对象作为目标Channel对象的步骤时,执行如下操作:判断所述用户终端对应的SDK节点的随机存储介质中是否存在与所述通道对象获取请求对应的Channel对象以得到存储判断结果;若所述存储判断结果为是,获取所述随机存储介质中与所述通道对象获取请求对应的Channel对象作为目标Channel对象;若所述存储判断结果为否,根据所述通道对象获取请求对所述SDK节点的数据库进行检索,以获取所述数据库中与所述通道对象获取请求对应的目标通道记录信息;根据所述目标通道记录信息获取与所述SDK节点对应的NAS网盘中所存储的Channel文件作为目标Channel文件;根据预置反序列化规则对所述目标Channel文件进行反序列化以得到目标Channel对象。
在一实施例中,处理器502在执行根据预置反序列化规则对所述目标Channel文件进行反序列化以得到目标Channel对象的步骤之后,执行如下操作:将所述目标Channel对象存储至所述SDK节点的随机存储介质中,以对所述目标Channel对象进行缓存。
本领域技术人员可以理解,图12中示出的计算机设备的实施例并不构成对计算机设备具体构成的限定,在其他实施例中,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图12所示实施例一致,在此不再赘述。
应当理解,在本发明实施例中,处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application SpecificIntegratedCircuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在本发明的另一实施例中提供计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质。该计算机可读存储介质存储有计算机程序,其中计算机程序被处理器执行时实现以下步骤:若接收到用户所输入的通道创建请求,根据所述通道创建请求在所述用户终端对应的SDK节点的随机存储介质中创建包含Channel对象的存储通道;对所述Channel对象进行序列化后持久化存储至所述用户终端对应的SDK节点中;若接收到用户所输入的通道对象获取请求,获取所述用户终端中与所述通道对象获取请求对应的Channel对象作为目标Channel对象;对所述目标Channel对象是否已被初始化进行判断以得到初始化判断结果;若所述初始化判断结果为是,将所述目标Channel对象反馈至所述用户;若所述初始化判断结果为否,对所述目标Channel对象进行初始化后反馈至所述用户。
在一实施例中,所述对所述Channel对象进行序列化后持久化存储至所述用户终端对应的SDK节点中的步骤,包括:对所述Channel对象进行序列化以得到Channel文件;将所述Channel文件存储至所述SDK节点对应的NAS网盘中并获取存储路径信息;根据所述通道创建请求、存储路径信息生成新增通道记录信息;将所述新增通道记录信息存储至所述SDK节点的数据库中。
在一实施例中,所述若接收到用户所输入的通道创建请求,根据所述通道创建请求在所述用户终端对应的SDK节点的随机存储介质中创建包含Channel对象的存储通道的步骤之后,还包括:根据所述Channel对象中的排序服务节点信息将所述Channel对象发送至与所述排序服务节点信息对应的排序服务节点,以对所述Channel对象进行初始化。
在一实施例中,所述若接收到用户所输入的通道对象获取请求,获取所述用户终端中与所述通道对象获取请求对应的Channel对象作为目标Channel对象的步骤,包括:判断所述用户终端对应的SDK节点的随机存储介质中是否存在与所述通道对象获取请求对应的Channel对象以得到存储判断结果;若所述存储判断结果为是,获取所述随机存储介质中与所述通道对象获取请求对应的Channel对象作为目标Channel对象;若所述存储判断结果为否,根据所述通道对象获取请求对所述SDK节点的数据库进行检索,以获取所述数据库中与所述通道对象获取请求对应的目标通道记录信息;根据所述目标通道记录信息获取与所述SDK节点对应的NAS网盘中所存储的Channel文件作为目标Channel文件;根据预置反序列化规则对所述目标Channel文件进行反序列化以得到目标Channel对象。
在一实施例中,所述根据预置反序列化规则对所述目标Channel文件进行反序列化以得到目标Channel对象的步骤之后,还包括:根据所述摘要信息生成规则生成与所述目标文件对应的待验证摘要信息;将所述目标Channel对象存储至所述SDK节点的随机存储介质中,以对所述目标Channel对象进行缓存。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个计算机可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的计算机可读存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种数据持久化存储方法,应用于用户终端,其特征在于,包括:
若接收到用户所输入的通道创建请求,根据所述通道创建请求在所述用户终端对应的SDK节点的随机存储介质中创建包含Channel对象的存储通道;
对所述Channel对象进行序列化后持久化存储至所述用户终端对应的SDK节点中;
若接收到用户所输入的通道对象获取请求,获取所述用户终端中与所述通道对象获取请求对应的Channel对象作为目标Channel对象;
对所述目标Channel对象是否已被初始化进行判断以得到初始化判断结果;
若所述初始化判断结果为是,将所述目标Channel对象反馈至所述用户;
若所述初始化判断结果为否,对所述目标Channel对象进行初始化后反馈至所述用户。
2.根据权利要求1所述的数据持久化存储方法,其特征在于,所述对所述Channel对象进行序列化后持久化存储至所述用户终端对应的SDK节点中,包括:
对所述Channel对象进行序列化以得到Channel文件;
将所述Channel文件存储至所述SDK节点对应的NAS网盘中并获取存储路径信息;
根据所述通道创建请求、存储路径信息生成新增通道记录信息;
将所述新增通道记录信息存储至所述SDK节点的数据库中。
3.根据权利要求1所述的数据持久化存储方法,其特征在于,所述根据所述通道创建请求在所述用户终端对应SDK节点的随机存储介质中创建包含Channel对象的存储通道之后,还包括:
根据所述Channel对象中的排序服务节点信息将所述Channel对象发送至与所述排序服务节点信息对应的排序服务节点,以对所述Channel对象进行初始化。
4.根据权利要求1所述的数据持久化存储方法,其特征在于,所述获取所述用户终端中与所述通道对象获取请求对应的Channel对象作为目标Channel对象,包括:
判断所述用户终端对应的SDK节点的随机存储介质中是否存在与所述通道对象获取请求对应的Channel对象以得到存储判断结果;
若所述存储判断结果为是,获取所述随机存储介质中与所述通道对象获取请求对应的Channel对象作为目标Channel对象;
若所述存储判断结果为否,根据所述通道对象获取请求对所述SDK节点的数据库进行检索,以获取所述数据库中与所述通道对象获取请求对应的目标通道记录信息;
根据所述目标通道记录信息获取与所述SDK节点对应的NAS网盘中所存储的Channel文件作为目标Channel文件;
根据预置反序列化规则对所述目标Channel文件进行反序列化以得到目标Channel对象。
5.根据权利要求4所述的数据持久化存储方法,其特征在于,所述根据预置反序列化规则对所述目标Channel文件进行反序列化以得到目标Channel对象之后,还包括:
将所述目标Channel对象存储至所述SDK节点的随机存储介质中,以对所述目标Channel对象进行缓存。
6.一种数据持久化存储装置,其特征在于,包括:
存储通道创建单元,用于若接收到用户所输入的通道创建请求,根据所述通道创建请求在所述用户终端对应的SDK节点的随机存储介质中创建包含Channel对象的存储通道;
Channel对象持久化存储单元,用于对所述Channel对象进行序列化后持久化存储至所述用户终端对应的SDK节点中;
目标Channel对象获取单元,用于若接收到用户所输入的通道对象获取请求,获取所述用户终端中与所述通道对象获取请求对应的Channel对象作为目标Channel对象;
初始化判断单元,用于对所述目标Channel对象是否已被初始化进行判断以得到初始化判断结果;
第一反馈单元,用于若所述初始化判断结果为是,将所述目标Channel对象反馈至所述用户;
第二反馈单元,用于若所述初始化判断结果为否,对所述目标Channel对象进行初始化后反馈至所述用户。
7.根据权利要求6所述的数据持久化存储装置,其特征在于,所述Channel对象持久化存储单元,包括:
Channel文件获取单元,用于对所述Channel对象进行序列化以得到Channel文件;
Channel文件存储单元,用于将所述Channel文件存储至所述SDK节点对应的NAS网盘中并获取存储路径信息;
新增通道记录信息生成单元,用于根据所述通道创建请求、存储路径信息生成新增通道记录信息;
新增通道记录信息存储单元,用于将所述新增通道记录信息存储至所述SDK节点的数据库中。
8.根据权利要求6所述的数据持久化存储装置,其特征在于,还包括:
Channel对象初始化单元,用于根据所述Channel对象中的排序服务节点信息将所述Channel对象发送至与所述排序服务节点信息对应的排序服务节点,以对所述Channel对象进行初始化。
9.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5中任一项所述的数据持久化存储方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行如权利要求1至5任一项所述的数据持久化存储方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910968903.1A CN111104456A (zh) | 2019-10-12 | 2019-10-12 | 数据持久化存储方法、装置、计算机设备及存储介质 |
PCT/CN2020/105434 WO2021068605A1 (zh) | 2019-10-12 | 2020-07-29 | 数据持久化存储方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910968903.1A CN111104456A (zh) | 2019-10-12 | 2019-10-12 | 数据持久化存储方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111104456A true CN111104456A (zh) | 2020-05-05 |
Family
ID=70421425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910968903.1A Pending CN111104456A (zh) | 2019-10-12 | 2019-10-12 | 数据持久化存储方法、装置、计算机设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111104456A (zh) |
WO (1) | WO2021068605A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021068605A1 (zh) * | 2019-10-12 | 2021-04-15 | 深圳壹账通智能科技有限公司 | 数据持久化存储方法、装置、计算机设备及存储介质 |
CN113741796A (zh) * | 2020-07-16 | 2021-12-03 | 北京沃东天骏信息技术有限公司 | 一种终端应用的数据持久化方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005029314A1 (en) * | 2003-08-21 | 2005-03-31 | Microsoft Corporation | Storage platform for organizing, searching, and sharing data |
CN105450679A (zh) * | 2014-08-06 | 2016-03-30 | 杭州海康威视系统技术有限公司 | 进行数据云存储的方法及系统 |
CN109391647A (zh) * | 2017-08-04 | 2019-02-26 | 杭州海康威视系统技术有限公司 | 存储资源回收方法、装置及系统 |
CN110196680A (zh) * | 2018-03-27 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置及存储介质 |
CN110245059A (zh) * | 2019-05-20 | 2019-09-17 | 平安普惠企业管理有限公司 | 一种数据处理方法、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111104456A (zh) * | 2019-10-12 | 2020-05-05 | 深圳壹账通智能科技有限公司 | 数据持久化存储方法、装置、计算机设备及存储介质 |
-
2019
- 2019-10-12 CN CN201910968903.1A patent/CN111104456A/zh active Pending
-
2020
- 2020-07-29 WO PCT/CN2020/105434 patent/WO2021068605A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005029314A1 (en) * | 2003-08-21 | 2005-03-31 | Microsoft Corporation | Storage platform for organizing, searching, and sharing data |
CN105450679A (zh) * | 2014-08-06 | 2016-03-30 | 杭州海康威视系统技术有限公司 | 进行数据云存储的方法及系统 |
CN109391647A (zh) * | 2017-08-04 | 2019-02-26 | 杭州海康威视系统技术有限公司 | 存储资源回收方法、装置及系统 |
CN110196680A (zh) * | 2018-03-27 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置及存储介质 |
CN110245059A (zh) * | 2019-05-20 | 2019-09-17 | 平安普惠企业管理有限公司 | 一种数据处理方法、设备及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021068605A1 (zh) * | 2019-10-12 | 2021-04-15 | 深圳壹账通智能科技有限公司 | 数据持久化存储方法、装置、计算机设备及存储介质 |
CN113741796A (zh) * | 2020-07-16 | 2021-12-03 | 北京沃东天骏信息技术有限公司 | 一种终端应用的数据持久化方法和装置 |
CN113741796B (zh) * | 2020-07-16 | 2024-04-16 | 北京沃东天骏信息技术有限公司 | 一种终端应用的数据持久化方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2021068605A1 (zh) | 2021-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20110197032A1 (en) | Cache coordination between data sources and data recipients | |
US11296940B2 (en) | Centralized configuration data in a distributed file system | |
US7536603B2 (en) | Maintaining functionality during component failures | |
JP2021523436A (ja) | 入力および出力スキーママッピング | |
CN111078147A (zh) | 一种缓存数据的处理方法、装置、设备及存储介质 | |
CN105872016A (zh) | 一种桌面云中虚拟机的运行方法 | |
CN105653198A (zh) | 数据处理方法及装置 | |
CN111274252A (zh) | 一种区块链的数据上链方法、装置、存储介质和服务器 | |
CN110389859B (zh) | 用于复制数据块的方法、设备和计算机程序产品 | |
US11036797B2 (en) | Efficient storage and utilization of a hierarchical data set | |
CN113051102B (zh) | 文件备份方法、装置、系统、存储介质和计算机设备 | |
CN111104456A (zh) | 数据持久化存储方法、装置、计算机设备及存储介质 | |
CN109254998B (zh) | 数据管理方法、物联网设备、数据库服务器及系统 | |
CN111651424B (zh) | 一种数据处理方法、装置、数据节点及存储介质 | |
CN110737681A (zh) | 处理请求的加锁处理方法、装置、计算机设备及存储介质 | |
CN109446225A (zh) | 数据缓存方法、装置、计算机设备及存储介质 | |
US20220129381A1 (en) | Blockchain cache system | |
CN108776665B (zh) | 一种数据处理方法及装置 | |
JP5149815B2 (ja) | メディア装置コンテンツの変更の識別 | |
WO2022134830A1 (zh) | 区块节点数据的处理方法、装置、计算机设备和存储介质 | |
CN107547605B (zh) | 一种基于节点队列的消息读写方法及节点设备 | |
CN110222046B (zh) | 列表数据的处理方法、装置、服务器和存储介质 | |
CN110765125B (zh) | 一种存储数据的方法及装置 | |
CN115470008B (zh) | 一种元数据访问方法、装置和存储介质 | |
CN108958967B (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 | ||
AD01 | Patent right deemed abandoned | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20240426 |