CN114003662A - 基于缓存策略的区块链性能优化机制 - Google Patents
基于缓存策略的区块链性能优化机制 Download PDFInfo
- Publication number
- CN114003662A CN114003662A CN202111359245.XA CN202111359245A CN114003662A CN 114003662 A CN114003662 A CN 114003662A CN 202111359245 A CN202111359245 A CN 202111359245A CN 114003662 A CN114003662 A CN 114003662A
- Authority
- CN
- China
- Prior art keywords
- node
- cache
- data
- user
- 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
- 238000005457 optimization Methods 0.000 title claims abstract description 46
- 230000007246 mechanism Effects 0.000 title claims abstract description 30
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 40
- 238000013500 data storage Methods 0.000 claims abstract description 8
- 238000000034 method Methods 0.000 claims description 23
- 230000008569 process Effects 0.000 claims description 18
- 230000000694 effects Effects 0.000 claims description 17
- 238000004891 communication Methods 0.000 claims description 15
- 238000012790 confirmation Methods 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 claims description 8
- 230000008030 elimination Effects 0.000 claims description 6
- 238000003379 elimination reaction Methods 0.000 claims description 6
- 230000002159 abnormal effect Effects 0.000 claims description 5
- 238000004458 analytical method Methods 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 claims description 4
- 238000013461 design Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 claims description 4
- 238000012544 monitoring process Methods 0.000 claims description 4
- 230000002085 persistent effect Effects 0.000 claims description 4
- 238000004806 packaging method and process Methods 0.000 claims description 3
- 230000035515 penetration Effects 0.000 claims description 3
- 238000010276 construction Methods 0.000 claims description 2
- 238000012423 maintenance Methods 0.000 claims description 2
- 238000012163 sequencing technique Methods 0.000 claims description 2
- 230000001360 synchronised effect Effects 0.000 claims description 2
- 238000013502 data validation Methods 0.000 claims 1
- 238000012545 processing Methods 0.000 abstract description 5
- 230000004044 response Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000033772 system development Effects 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
Abstract
本发明公开了基于缓存策略的区块链性能优化机制,所述优化机制包含3个步骤:S1:构建基于缓存策略的区块链的架构;S2:部署区块链存储优化策略;S3:部署区块链访问优化策略;本发明对传统Raft共识算法进行优化,对传统区块链系统架构调整,对区块链系统的存储与查询性能进行优化,确立了一个高效且稳定的区块链系统存储与查询方案,提高区块链系统存储与查询用户数据效率,降低网络时延,有效的解决了现有技术中存在的区块链系统存储与查询用户数据效率低,网络时延高,不能达到处理复杂数据以及提供复杂互联网服务的性能要求的问题。
Description
技术领域
本发明涉及区块链领域,特别是涉及基于缓存策略的区块链性能优化机制。
背景技术
随着计算机技术的发展,区块链技术因其去中心化、开放性、信息不可篡改等特征得到了广泛应用,传统的公有区块链,比如以太坊,提供了高强度的隐私和安全性,但无法以与其他分布式系统相同的效率处理交易,吞吐量受区块的各种参数限制,并且区块链的交易具有很大的交易延迟,性能受到了极大的限制,为解决现有技术存在的问题,对已有的文献进行检索,筛选出如下具有代表性的技术:
已有技术方案1:方案1(申请号:201610458361.X,公开日:2017.12.29) 中公开了raft分布式系统领导节点的切换方法、设备及系统,Raft分布式系统优点在于由领导节点发起共识,只需要超过半数节点支持决策便可以达成一致,高效的解决分布式系统中各个节点内容一致性问题,提高了分布式系统服务的性能,在传统Raft分布式系统基础上添加备用领导节点,当领导节点发生故障时,将切换备用领导节点为领导节点,解决了系统故障恢复较慢的问题。
已有技术方案2:方案2(申请号:202011390893.7,公开日:2021.03.12) 中公开了基于区块链电子交易的高效数据查询实现方法,将监听到的数据加载到数据仓库中,并存储到可提供丰富查询语义的数据库中,针对热数据,通过建立索引或者多节点备份以支持更快的查询;针对冷数据,将数据根据存储的数据库进一步压缩处理或者少备份以达到减少存储空间的目的,通过建立高效的索引机制,把产生的数据通过数据监听存储到可提供丰富查询语义的数据库中,提高了查询效率﹑扩展了查询功能。
技术方案1通过备用领导节点解决了采用Raft共识算法的区块链系统故障恢复效率较低的问题,但是技术方案1中区块链系统需要额外的空间进行备用领导节点的存储以及额外的时间开销保证主领导节点与备用领导节点的一致性;技术方案2虽然通过索引机制优化了数据查询,但是构建一个丰富查询语义的数据库会增加系统开发的成本,且用户对于数据库的访问效率始终是不如直接对于内存的访问。
现有技术的传统区块链的共识算法与数据存储在处理日益增长的用户数据与用户请求时很难实现高效率与低网络延迟,从而限制了区块链的应用范围,不能达到处理复杂数据以及提供复杂互联网服务的性能要求,因此需要提高区块链的整体性能,现有技术中存在区块链系统存储与查询用户数据效率低,网络时延高,不能达到处理复杂数据以及提供复杂互联网服务的性能要求的问题。
因此本发明提供一种新的方案来解决此问题。
发明内容
针对现有技术存在的不足,本发明的目的是提供基于缓存策略的区块链性能优化机制,有效的解决了现有技术中存在的区块链系统存储与查询用户数据效率低,网络时延高,不能达到处理复杂数据以及提供复杂互联网服务的性能要求的问题。
其解决的技术方案是,基于缓存策略的区块链性能优化机制,所述优化机制包含3个步骤:
S1:构建基于缓存策略的区块链的架构;
S2:部署区块链存储优化策略;
S3:部署区块链访问优化策略;
所述步骤S1:构建基于缓存策略的区块链的架构包括构建系统整体架构和构建缓存通信机制;
所述步骤S2:部署区块链存储优化策略包含2部分内容,分别为存储优化流程和安全性分析;所述存储优化流程包含信息提交、数据接收、数据确认、特征存储四个步骤;
所述步骤S3:部署区块链访问优化策略包含查询请求调优和查询流程设计。
本发明所实现的有益效果:
本发明通过对基础Raft算法进行改进,提出了COR共识算法,将共识过程中持久化部分和线性化部分相分离,降低了共识流程中用户等待确认所需要的时间,在用户层与存储层之间加入了缓存层,通过设置三种类型的信息缓存节点,可以帮助用户自动检测与替换异常节点,提高系统的稳定性,通过Supervisor 节点维护的资源利用率队列,更好的实现了负载均衡,此外,以用户数据标识为键维护一个数据标识缓存表,表中的键对应的是用户数据标识T,值为数据提交的时间戳以及用户活跃度标识,其中用户数据标识T与时间戳可以帮助用户进行数据合法性确认以及快速定位数据在区块链中的位置,用户活跃度标识主要用来优化缓存,能够有效防止缓存溢出。
附图说明
图1为系统架构图。
图2为COR共识流程图。
图3为通信时延测试图。
图4为查询响应时延测试图。
具体实施方式
为有关本发明的前述及其他技术内容、特点与功效,在以下配合参考附图 1-4对实施例的详细说明中,将可清楚的呈现,以下实施例中所提到的结构内容,均是以说明书附图为参考。
以下将参照附图,通过实施方式详细的描述本发明提供的基于缓存策略的区块链性能优化机制。
基于缓存策略的区块链性能优化机制,所述优化机制包含3个步骤:
S1:构建基于缓存策略的区块链的架构;
S2:部署区块链存储优化策略;
S3:部署区块链访问优化策略。
所述步骤S1:构建基于缓存策略的区块链的架构包含2部分内容,分别为构建系统整体架构以及构建缓存通信机制;
S1.1:所述构建系统整体架构具体包含以下内容:
系统整体架构主要包括四个部分:客户端、信息缓存节点、主节点、备份节点,其中客户端存在于用户层,信息缓存节点存在于缓存层,主节点和备份节点存在于存储层,在区块链系统中,客户端主要负责将用户数据提交给区块链主节点以及信息缓存节点,信息缓存节点主要负责缓存两部分信息,分别是用户提交信息与用户查询信息,用户提交信息在用户数据成功上链后便会释放,用户查询信息则需要根据用户内存以及缓存算法进行释放,主节点主要负责数据合法性验证与打包,而备份节点主要负责对主节点生成区块合法性进行检验以及故障恢复;
S1.2:所述构建缓存通信机制具体包含以下内容:
存在于缓存层的信息缓存节点分为信息缓存主节点、信息缓存从节点,采用主从复制的缓存机制,将一个信息缓存节点的数据复制到其他节点上,前者称为信息缓存主节点,后者称为信息缓存从节点,数据的复制是单向的,只能由信息缓存主节点向信息缓存从节点复制,信息缓存主节点以写为主,信息缓存从节点以读为主,这样可以有效的提高服务器的请求并发量,除此之外,主从复制的缓存机制还可以实现数据的热备份,当信息缓存主节点出现问题时,可以由从信息缓存从节点提供服务,实现快速的故障恢复,信息缓存主节点用Master节点表示,信息缓存从节点用Follower节点表示;
为了提升信息缓存节点的稳定性与高可用性,引入第三类节点,为监督者节点,也即Supervisor节点,监督者节点可以通过发送状态请求命令,让其它信息缓存节点服务器返回运行状态,当Supervisor节点监测到Master宕机,会自动将Follower节点切换成Master节点,并修改配置文件,然后通过发布订阅模式通知其它服务器让其切换主机,当Supervisor节点监测到Follower节点宕机,会自动通知用户层,由用户层控制改变缓存信息访问节点。
所述步骤S2:部署区块链存储优化策略包含2部分内容,分别为存储优化流程以及安全性分析;
所述存储优化流程包含以四个步骤:分别为信息提交、数据接收、数据确认、特征存储;
S2.1.1:所述信息提交具体包含以下内容:
客户端通过与主节点、信息缓存节点之间的通信来提交用户数据,首先,客户端向主节点发送数据上传请求,下文中也称储存层的主节点为主共识节点,如果主共识节点无法提供服务,客户端需要等待选举完成并向新的主共识节点提交数据,选举过程由信息缓存从节点自主发起,当信息缓存从节点在系统设置的选举控制时间内没有收到主节点心跳包,便会进入候选状态,向其他节点发送选举请求,如果候选节点存储最新数据时间大于等于投票节点,投票节点会同意投票,候选者获取一半以上投票便可以成为主节点,客户端可以向新的主节点提交数据,在正式提交数据之前,客户端需要对其数据合法性进行验证,验证内容主要包括字段的合法性,签名的合法性,内容的合法性;
S2.1.2:所述数据接收具体包含以下内容:
相比于传统Raft算法,COR算法新增了信息缓存节点的角色,COR为CacheOptimization Raft的简称,为缓存优化Raft共识算法,主节点与信息缓存节点在确认用户合法性之后,都会返回给客户端一个通过sha256算法加密得到的用户数据标识T,标识T计算公式如下:
T=sha256(userinfo) 公式(1)
公式1中,T表示用户数据唯一标识,userinfo为用户数据实际内容,sha256 算法使用的哈希值长度是256位,需要注意的是标识T同样也是区块Merkle树的叶子节点,Merkle为默克尔树,代表区块中所有交易的摘要,能够帮助用户在区块链中定位用户数据,除此之外,当信息缓存节点接收到客户端的用户数据时,信息缓存节点会将客户端的用户数据持久化到内存中,在区块链完成共识之后,信息缓存节点会响应主节点的请求,根据情况进行存储空间的回收,将已经持久化的用户数据进行清除,最后,信息缓存节点会在主节点切换并且恢复用户数据的时候,提供暂存在信息缓存节点中并且新的主共识节点没有接收到的用户数据;
S2.1.3:所述数据确认具体包含以下内容:
在数据确认阶段,如果主节点确认用户数据的合法性,则会立刻向客户端回复计算得到的用户数据标识T并且进入待打包阶段,如果客户端收到主节点与信息缓存节点回复的用户数据标识T相同,则代表客户端的请求在主节点与信息缓存节点中已经达成了数据一致性;如果主节点与信息缓存节点返回给客户端的用户数据标识T不一致,则由客户端判断异常节点,选择关闭节点或者进行数据重传,直到返回的用户数据标识T完全一致为止;由于信息缓存节点完成了对于数据的持久性存储,所以不必担心在接下来的共识过程中数据会丢失,可以直接视为数据提交成功,客户端的这次提交到确认经历了1个RTT时间,RTT为 Round-Trip Time的缩写,表示往返时延;
如果缓存层失效,则客户端需要等待2个RTT时间才能进行信息确认,如附图2所示,这是因为共识过程的操作和普通Raft算法类似,主共识节点对客户端提交的用户数据进行验证,如果达到一定数量则打包成区块并分发复制到备份共识节点,如果信息缓存节点失效或者主节点与信息缓存节点中的用户数据产生冲突,缓存层则无法对主节点数据进行修复,为了避免验证通过的待打包用户数据由于主共识节点停止服务而出现一致性问题,主共识节点需要等待共识完成,半数备份节点收到成功数据后再返回给客户端成功信息;
如果缓存层正常工作但是主共识节点停止服务,则会进行节点的重新选举,并且新的主节点会从信息缓存节点中找寻上个共识阶段的用户数据缓存,这种情况需要3个RTT时间;
S2.1.4:所述特征存储具体包含以下内容:
由于每一条成功上链的数据都拥有自己的特征,因此Master节点会在本地维护一个用户数据标识缓存表来记录这些特征,在用户数据标识缓存表中,数据以键值对<k,v>的形式进行存储,其中k为用户数据标识T,v为一个包含时间戳与用户活跃度标识的二元组(t,a),其中t为时间戳,a为用户活跃度标识,时间戳t用于快速定位区块,用户活跃度标识a则用于缓存淘汰策略对于数据活跃度的计算,由于用户数据标识缓存表中的数据存储方式与传统缓存数据存储方式相同,因此可以采用与传统缓存数据相同的方式来进行Master节点与 Follower节点之间数据的实时传输,将用户数据标识缓存表同步到信息缓存从节点中;
S2.2:所述安全性分析包含选举安全、数据安全、状态机安全;
所述选举安全为:
COR算法使用了和Raft算法相同的选举机制,选举的安全性和Raft算法相同,在同一时间只有一个主节点提供数据存储服务;
所述数据安全为:
COR算法的数据安全性主要由两方面来保证,一方面是由用户数据标识判断当前节点数据是否在传输过程中发生篡改,这里利用的是哈希算法的(也即前文提到的sha256算法)防碰撞性,另一方面,如果COR算法主节点一旦失效,信息缓存节点能够帮助新的主节点恢复原主节点中没有及时上链的数据,保证了数据的完整性;
所述状态机安全为:
在COR共识算法中,当超过半数节点成功复制了主节点的数据后,即代表共识完成,保证了一旦一个主节点达成共识过程产生区块,其他服务器在当前区块达成一致前不会产生其他数据冲突的区块。
所述步骤S3:部署区块链访问优化策略包含查询请求调优、查询流程设计、缓存异常处理;
前述通过对于传统共识算法以及区块链系统结构的改进,减少了用户等待区块打包与共识的时间,提升了区块链对于用户数据写入的效率,在此基础上,考虑到信息缓存节点将数据存储在内存中,缓存层的访问效率要高于存储层,因此本申请将部分查询任务由存储层迁移到缓存层,完成对于区块链系统查询性能的优化;
S3.1:所述查询请求调优包含以下内容:
区块链系统缓存层是由信息缓存主节点也即Master节点、信息缓存从节点也即Follower节点以及监督者节点也即Supervisor节点这些信息缓存节点构成,在存储优化策略中,Supervisor节点的主要职能是对于异常节点的检测,在查询优化的过程中,考虑到大部分节点除了作为数据缓存之外,还需要参与区块链的维护等其它工作中,因此为了更好的实现负载均衡,为此类节点新增了对于其它类型节点资源利用率监控的新职能;
在资源利用率监控过程中,Supervisor节点需要在本地维护一个节点队列链表,队列中存储了不同信息缓存从节点的端口数据,并且根据不同节点的资源利用率进行排序,距离队首越近的节点系统资源利用率越低,资源利用率计算公式如公式2:
RU=w1*u1+w2*u2 公式(2)
公式2中,RU表示区块链节点资源利用率,u1、u2分别表示CPU与内存利用率,w1、w2为权重,表示不同资源对于总资源利用率的影响;
当用户向区块链系统发出查询请求时,该请求会优先被Supervisor节点接收,Supervisor节点会根据其维护的资源利用率队列将查询请求发送到RU最低端口对应的Follower节点进行数据查询,当Supervisor节点转发请求达到一定数量时,需要重新对不同Follower节点进行RU统计,根据最新统计信息重新调整队列;
S3.2:所述查询流程设计包含以下步骤:
S3.2.1:在查询阶段,用户需要将用户数据标识T分别提交到Supervisor 节点,由Supervisor节点根据资源利用率队列选择请求转发到资源利用率较低的Follower节点,Follower节点可以在缓存中根据用户数据标识T查找对应数据,查找成功便可以将数据返回给用户,并令用户数据标识缓存表中该标识对应的活跃度加1;
S3.2.2:当Follower节点没有在缓存中找到相应用户数据标识时,会在用户数据标识缓存表中查询该标识对应的特征信息,由于内存限制,信息缓存节点可能会根据数据活跃度进行缓存淘汰,所以存在用户数据标识无法在用户数据标识缓存表中查找成功的可能性;
S3.2.3:如果用户数据标识在用户数据标识缓存表中,则节点需要将用户数据标识以及标识对应的时间戳提交给区块链进行二次查询,区块链节点利用时间戳快速定位数据所在区块,并根据用户数据标识确定数据的最终位置,将查询结果返回给用户同时备份到信息缓存节点中,并设置用户数据标识缓存表中该节点活跃度为1;
S3.2.4:如果用户数据标识不在用户数据标识缓存表中,则直接将用户数据标识提交给区块链进行数据查询,将查询结果返回给用户同时备份到信息缓存节点中,并根据查询结果将用户数据标识以及时间戳添加到用户数据标识缓存表中,并设置标识对应的活跃度为1;
S3.3:所述缓存异常处理具体包含以下内容:
在用户数据查询中,针对于大多数情况,用户查询效率能够得到显著地提高,但是随着用户规模的扩大,恶意请求的增加,可能会导致内存溢出、缓存穿透等问题,因此为了进一步提升区块链系统信息查询的稳定性,系统结合用户数据标识缓存表以及LRU缓存淘汰策略来删除使用不太频繁的数据,通过布隆过滤器 (Bloom Filter)保护机制防止系统收到一波冷数据,导致缓存大量击穿,威胁到底层区块链的稳定性,布隆过滤器的大小计算公式为公式3:
公式3中,m为布隆过滤器的大小,n表示存储样本最大容量,p表示允许失误率;LRU为Least Recently Used的简写,最近最少使用。
仿真实验:
利用COR算法在本地的虚拟机集群中进行测试,各共识节点配置如表1所示;
在表1中,将分布式网络设置4个节点,每个节点都有双重身份,对于缓存层,系统设置了4个信息缓存节点,其中Master节点负责记录缓存数据,两个 Follower节点主要用来读取数据,监督者节点Supervisor用来进行故障检测;对于存储层,系统设置4个共识节点,其中主节点负责数据记录,三个备份节点用于区块链故障备份与主节点合法性验证;
表1共识节点配置表
结果分析:
假设系统每个数据请求的大小设为100byte,每个区块包含50个数据请求;
1.通信时延结果分析:
对于通信时延,分别对Raft算法场景、COR共识算法两类场景进行分析,实验结果如附图3所示,图3为通信时延测试图,实验结果证明,在信息缓存节点正常工作情况下,COR共识算法通信时延明显低于Raft算法,而在信息缓存节点出现故障的情况下,COR共识算法退化成Raft算法,二者通信时延相差不大;
2.查询响应时延结果分析:
对于用户查询响应时延,实验分别对有无缓存层以及有缓存层情况下不同查询重复率进行10次实验,区块链占用空间大小为10MB,缓存空间占用为1MB,实验的结果如附图4所示,图4中20%、50%、80%表示不同查询重复率,图4为查询响应时延测试图,结果表明,在相同请求次数的情况下有缓存层能有效降低数据查询时延,并且伴随着查询重复率以及并发请求数的增加,响应性能优化更加明显。
采用以上结合附图描述的本发明,在具体使用时,所述优化机制包含3个步骤:
S1:构建基于缓存策略的区块链的架构;
S2:部署区块链存储优化策略;
S3:部署区块链访问优化策略;
本发明所实现的有益效果为:
1.传统区块链的共识算法与数据存储在处理日益增长的用户数据与用户请求时很难实现高效率与低网络延迟,不能达到处理复杂数据以及提供复杂互联网服务的性能要求,本发明对传统Raft共识算法进行优化,对传统区块链系统架构调整,对区块链系统的存储与查询性能进行优化,确立一个高效且稳定的区块链系统存储与查询方案,提高区块链系统存储与查询用户数据效率,降低网络时延;
2.本发明使用的COR算法,由用户数据标识判断当前节点数据是否在传输过程中发生篡改,利用Hash算法的防碰撞性构造用户数据标识,如果COR算法主节点一旦失效,数据缓存节点能够帮助新的主节点恢复原主节点中没有及时上链的数据,保证数据的安全完整性;
本发明基于传统Raft共识算法提出的COR共识算法,将共识过程中持久化部分和线性化部分相分离,缩短了用户等待确认时间,减少通信开销,降低通信时延;
3.随着用户规模的扩大,恶意请求的增加,可能会导致内存溢出、缓存穿透等问题,系统结合用户数据标识缓存表以及LRU缓存淘汰策略来删除使用不太频繁的数据,通过布隆过滤器(Bloom Filter)保护机制防止系统收到一波冷数据,导致缓存大量击穿,威胁底层区块链的稳定性的现象发生,进一步提升区块链系统信息查询的稳定性,以数据标识为键提出了一个用来维护数据特征的数据标识缓存表,可以有效提高客户端对于区块链的查询效率以及防止缓存溢出;
4.对传统区块链系统架构进行改进,引入由信息缓存节点构成的缓存层,并且设置了Master、Follower以及Supervisor三类角色保证缓存节点数据一致性的同时,通过Supervisor维护的资源利用率队列实现了缓存系统的负载均衡;
本发明提出的基于缓存策略的区块链性能优化机制有效的解决了现有技术中存在的区块链系统存储与查询用户数据效率低,网络时延高,不能达到处理复杂数据以及提供复杂互联网服务的性能要求的问题。
Claims (4)
1.基于缓存策略的区块链性能优化机制,其特征在于,所述优化机制包含3个步骤:
S1:构建基于缓存策略的区块链的架构;
S2:部署区块链存储优化策略;
S3:部署区块链访问优化策略。
2.如权利要求1所述的基于缓存策略的区块链性能优化机制,其特征在于,所述步骤S1:构建基于缓存策略的区块链的架构包括构建系统整体架构和构建缓存通信机制;
所述构建系统整体架构的具体内容为:
所述系统整体架构主要包括四个部分,分别为:客户端、信息缓存节点、主节点、备份节点,其中客户端存在于用户层,信息缓存节点存在于缓存层,主节点和备份节点存在于存储层,客户端主要负责将用户数据提交给区块链主节点以及信息缓存节点,信息缓存节点主要负责缓存两部分信息,分别是用户提交信息与用户查询信息,用户提交信息在用户数据成功上链后会释放,用户查询信息则需要根据用户内存以及缓存算法进行释放,主节点主要负责数据合法性验证与打包,而备份节点主要负责对主节点生成区块合法性进行检验以及故障恢复;
所述构建缓存通信机制具体包含以下内容:
存在于缓存层的信息缓存节点分为信息缓存主节点、信息缓存从节点,采用主从复制的缓存机制,数据的复制是单向的,只能由信息缓存主节点向信息缓存从节点复制,信息缓存主节点以写为主,信息缓存从节点以读为主,当信息缓存主节点出现问题时,可以由从信息缓存从节点提供服务,信息缓存主节点用Master节点表示,信息缓存从节点用Follower节点表示;
引入第三类节点,为监督者节点,也即Supervisor节点,监督者节点可以通过发送状态请求命令,让其它信息缓存节点服务器返回运行状态,当Supervisor节点监测到Master宕机,会自动将Follower节点切换成Master节点,并修改配置文件,然后通过发布订阅模式通知其它服务器让其切换主机,当Supervisor节点监测到Follower节点宕机,会自动通知用户层,由用户层控制改变缓存信息访问节点。
3.如权利要求1所述的基于缓存策略的区块链性能优化机制,其特征在于,所述步骤S2:部署区块链存储优化策略包含2部分内容,分别为存储优化流程和安全性分析;
所述存储优化流程包含以下步骤:
S2.1.1:信息提交
客户端通过与主节点、信息缓存节点之间的通信来提交用户数据,首先,客户端向主节点发送数据上传请求,如果主节点无法提供服务,客户端需要等待选举完成并向新的主节点提交数据,选举过程由信息缓存从节点自主发起,当信息缓存从节点在系统设置的选举控制时间内没有收到主节点心跳包,便会进入候选状态,向其他节点发送选举请求,如果候选节点存储最新数据时间大于等于投票节点,投票节点会同意投票,候选者获取一半以上投票便可以成为主节点,客户端可以向新的主节点提交数据,在正式提交数据之前,客户端需要对其数据合法性进行验证,验证内容主要包括字段的合法性,签名的合法性,内容的合法性;
S2.1.2:数据接收
采用COR算法,COR为Cache Optimization Raft的简称,为缓存优化Raft共识算法,COR算法新增了信息缓存节点的角色,主节点与信息缓存节点在确认用户合法性之后,都会返回给客户端一个通过sha256算法加密得到的用户数据标识T,标识T计算公式如下:
T=sha256(userinfo) 公式(1)
公式1中,T表示用户数据唯一标识,userinfo为用户数据实际内容,sha256算法使用的哈希值长度是256位,标识T同样也是区块Merkle树的叶子节点,Merkle为默克尔树,代表区块中所有交易的摘要,可以定位用户数据,当信息缓存节点接收到客户端的用户数据时,信息缓存节点会将客户端的用户数据持久化到内存中,在区块链完成共识之后,信息缓存节点会响应主节点的请求,根据情况进行存储空间的回收,将已经持久化的用户数据进行清除,最后,信息缓存节点会在主节点切换并且恢复用户数据的时候,提供暂存在信息缓存节点中并且新的主共识节点没有接收到的用户数据;
S2.1.3:数据确认
在数据确认阶段,如果主节点确认用户数据的合法性,则会立刻向客户端回复计算得到的用户数据标识T并且进入待打包阶段,如果客户端收到主节点与信息缓存节点回复的用户数据标识T相同,则代表客户端的请求在主节点与信息缓存节点中已经达成了数据一致性;如果主节点与信息缓存节点返回给客户端的用户数据标识T不一致,则由客户端判断异常节点,选择关闭节点或者进行数据重传,直到返回的用户数据标识T完全一致为止;
信息缓存节点完成对于数据的持久性存储,客户端的提交到确认经历了1个RTT时间,RTT为Round-Trip Time的缩写,表示往返时延;
如果缓存层失效,则客户端需要等待2个RTT时间才能进行信息确认,如果缓存层正常工作但是主节点停止服务,则会进行主节点的重新选举,并且新的主节点会从信息缓存节点中找寻上个共识阶段的用户数据缓存,这种情况需要3个RTT时间;
S2.1.4:特征存储
每一条成功上链的数据都拥有自己的特征,Master节点会在本地维护一个用户数据标识缓存表来记录这些特征,在用户数据标识缓存表中,数据以键值对<k,v>的形式进行存储,其中k为用户数据标识T,v为一个包含时间戳与用户活跃度标识的二元组(t,a),其中t为时间戳,a为用户活跃度标识,时间戳t用于快速定位区块,用户活跃度标识a则用于缓存淘汰策略对于数据活跃度的计算,在Master节点与Follower节点之间进行数据的实时传输,将用户数据标识缓存表同步到信息缓存从节点中;
所述安全性分析包括选举安全、数据安全、状态机安全。
4.如权利要求1所述的基于缓存策略的区块链性能优化机制,其特征在于,所述步骤S3:部署区块链访问优化策略包含以下步骤:
S3.1:查询请求调优
区块链系统缓存层是由信息缓存主节点也即Master节点、信息缓存从节点也即Follower节点以及监督者节点也即Supervisor节点这些信息缓存节点构成,Supervisor节点主要是对于异常节点的检测,在查询优化的过程中,大部分节点除了作为数据缓存之外,还需要参与区块链的维护工作,为此类节点新增了对于其它类型节点资源利用率监控的新职能;
在资源利用率监控过程中,Supervisor节点在本地维护一个节点队列链表,队列中存储了不同信息缓存从节点的端口数据,并且根据不同节点的资源利用率进行排序,距离队首越近的节点系统资源利用率越低,资源利用率计算公式如公式2:
RU=w1*u1+w2*u2 公式(2)
公式2中,RU表示区块链节点资源利用率,u1、u2分别表示CPU与内存利用率,w1、w2为权重,表示不同资源对于总资源利用率的影响;
当用户向区块链系统发出查询请求时,该请求会优先被Supervisor节点接收,Supervisor节点会根据其维护的资源利用率队列将查询请求发送到RU最低端口对应的Follower节点进行数据查询,当Supervisor节点转发请求达到一定数量时,需要重新对不同Follower节点进行RU统计,根据最新统计信息重新调整队列;
S3.2:查询流程设计
S3.2.1:在查询阶段,用户需要将用户数据标识T分别提交到Supervisor节点,由Supervisor节点根据资源利用率队列选择请求转发到资源利用率较低的Follower节点,Follower节点可以在缓存中根据用户数据标识T查找对应数据,查找成功便可以将数据返回给用户,并令用户数据标识缓存表中该标识对应的活跃度加1;
S3.2.2:当Follower节点没有在缓存中找到相应用户数据标识时,会在用户数据标识缓存表中查询该标识对应的特征信息;
S3.2.3:如果用户数据标识在用户数据标识缓存表中,则节点需要将用户数据标识以及标识对应的时间戳提交给区块链进行二次查询,区块链节点利用时间戳快速定位数据所在区块,并根据用户数据标识确定数据的最终位置,将查询结果返回给用户同时备份到信息缓存节点中,并设置用户数据标识缓存表中该节点活跃度为1;
S3.2.4:如果用户数据标识不在用户数据标识缓存表中,则直接将用户数据标识提交给区块链进行数据查询,将查询结果返回给用户同时备份到信息缓存节点中,并根据查询结果将用户数据标识以及时间戳添加到用户数据标识缓存表中,并设置标识对应的活跃度为1;
S3.3:缓存异常处理
在用户数据查询中,随着用户规模的扩大,恶意请求的增加,可能会导致内存溢出、缓存穿透,系统结合用户数据标识缓存表以及LRU缓存淘汰策略删除使用不太频繁的数据,利用布隆过滤器保护机制阻止系统收到一波冷数据,布隆过滤器的大小计算公式为公式3:
公式3中,m为布隆过滤器的大小,n表示存储样本最大容量,p表示允许失误率;
所述LRU为Least Recently Used的简写,最近最少使用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111359245.XA CN114003662A (zh) | 2021-11-12 | 2021-11-12 | 基于缓存策略的区块链性能优化机制 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111359245.XA CN114003662A (zh) | 2021-11-12 | 2021-11-12 | 基于缓存策略的区块链性能优化机制 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114003662A true CN114003662A (zh) | 2022-02-01 |
Family
ID=79929241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111359245.XA Pending CN114003662A (zh) | 2021-11-12 | 2021-11-12 | 基于缓存策略的区块链性能优化机制 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114003662A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114490781A (zh) * | 2022-04-01 | 2022-05-13 | 中国信息通信研究院 | 区块链数据的处理方法和装置 |
CN115037755A (zh) * | 2022-04-27 | 2022-09-09 | 东北大学 | 基于数据重分布和动态节点策略的区块链轻量存储方法 |
-
2021
- 2021-11-12 CN CN202111359245.XA patent/CN114003662A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114490781A (zh) * | 2022-04-01 | 2022-05-13 | 中国信息通信研究院 | 区块链数据的处理方法和装置 |
CN115037755A (zh) * | 2022-04-27 | 2022-09-09 | 东北大学 | 基于数据重分布和动态节点策略的区块链轻量存储方法 |
CN115037755B (zh) * | 2022-04-27 | 2023-04-07 | 东北大学 | 基于数据重分布和动态节点策略的区块链轻量存储方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11388043B2 (en) | System and method for data replication using a single master failover protocol | |
US11120044B2 (en) | System and method for maintaining a master replica for reads and writes in a data store | |
US10929240B2 (en) | System and method for adjusting membership of a data replication group | |
US10248704B2 (en) | System and method for log conflict detection and resolution in a data store | |
EP2435916B1 (en) | Cache data processing using cache cluster with configurable modes | |
US10169169B1 (en) | Highly available transaction logs for storing multi-tenant data sets on shared hybrid storage pools | |
JP4461147B2 (ja) | リモートデータミラーリングを用いたクラスタデータベース | |
US20150120658A1 (en) | System and method for splitting a replicated data partition | |
JP2016517124A (ja) | 効率的な読み取り用レプリカ | |
EP3262512B1 (en) | Application cache replication to secondary application(s) | |
CN111143389A (zh) | 事务执行方法、装置、计算机设备及存储介质 | |
CN114003662A (zh) | 基于缓存策略的区块链性能优化机制 | |
US9330153B2 (en) | System, method, and computer readable medium that coordinates between devices using exchange of log files | |
CN103294167A (zh) | 一种基于数据行为的低能耗集群存储复制装置和方法 | |
JP2023541298A (ja) | トランザクション処理方法、システム、装置、機器、及びプログラム | |
CN113377868A (zh) | 一种基于分布式kv数据库的离线存储系统 | |
EP3786802B1 (en) | Method and device for failover in hbase system | |
CN111404737B (zh) | 一种容灾处理方法以及相关装置 | |
Du et al. | Fast one-sided RDMA-based state machine replication for disaggregated memory | |
CN113342480B (zh) | 一种事务处理系统、事务处理方法及主机系统 | |
CN112579650A (zh) | 基于Redis缓存的数据处理方法及系统 | |
Kniep et al. | Pilotfish: Distributed Transaction Execution for Lazy Blockchains | |
Hildred | Efficient Geo-Distributed Transaction Processing | |
CN114579514B (zh) | 一种基于多计算节点的文件处理方法、装置及设备 | |
CN113157494B (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 |