System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于跨合约调用的资源分配方法、装置、设备和存储介质制造方法及图纸_技高网

基于跨合约调用的资源分配方法、装置、设备和存储介质制造方法及图纸

技术编号:40546897 阅读:5 留言:0更新日期:2024-03-05 19:04
本申请实施例提供了一种基于跨合约调用的资源分配方法、装置、设备和存储介质,用于使得交易任务中的每个合约均可以分配到进程资源,从而避免资源卡死无法释放的情况。包括:获取第一虚拟机的标识信息和交易任务对应的合约调用信息;根据合约调用信息和第一虚拟机的标识信息确定第一合约的目标进程池,目标进程池为跨合约进程池或者原始合约进程池,跨合约进程池为在第一虚拟机上第二次或之后执行交易任务的合约的进程资源池,原始合约进程池为在第一虚拟机上第一次执行交易任务的合约的进程资源池;在目标进程池存在空闲进程资源时,为第一合约分配进程资源。本申请可应用于区块链、大数据以及云技术领域。

【技术实现步骤摘要】

本申请涉及计算机,尤其涉及一种基于跨合约调用的资源分配方法、装置、设备和存储介质


技术介绍

1、区块链是一种分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,主要用于对数据按时间顺序进行整理,并加密成账本,使其不可被篡改和伪造,同时可进行数据的验证、存储和更新。区块链还可以进行数据加密传输、节点识别和安全访问,是一种先进的分布式基础架构。目前,因为区块链的不可篡改性与真实性,对于区块链的应用也越来越多。或者在区块链上维护一个公共的账本,该公共账本位于存储区块上任何节点可见,从而保证其不可伪造和篡改。合约是编程在区块链上的汇编语言,即在区块链系统中,合约是一种区块链上的各个节点可以理解并执行的代码,可以执行任意逻辑并得到结果。智能合约可以理解为是可执行程序,而区块链可以理解为是提供程序运行环境的操作系统。

2、基于上述功能,区块链的主程序通过调用合约来实现各种功能。其中区块链主程序调用合约的过程类似于web服务器调用外部程序所采用的公共网关接口(commongateway interface,cgi)模型。具体的,在主程序调用合约的一次调用生命周期内,该合约有完整的数据流,从磁盘加载数据、执行数据计算、而后将计算结果写回磁盘。调用生命周期结束后,智能合约从内存中清空数据。

3、在合约调用执行过程,在一个合约占用一个进程且交易任务并不会进行进程资源限制的情况下,若面临大规模合约执行,则容易出现资源卡死无法释放的情况。


技术实现思路

1、本申请实施例提供了一种基于跨合约调用的资源分配方法、装置、设备和存储介质,用于使得交易任务中的每个合约均可以分配到进程资源,从而避免资源卡死无法释放的情况。

2、有鉴于此,本申请一方面提供一种基于跨合约调用的资源分配方法,包括:获取第一虚拟机的标识信息和交易任务对应的合约调用信息,该合约调用信息用于指示该交易任务的合约执行过程中虚拟机的调用情况,该第一虚拟机为该交易任务中执行第一合约时调用的虚拟机;根据该合约调用信息和该第一虚拟机的标识信息确定该第一合约的目标进程池,该目标进程池为跨合约进程池或者原始合约进程池,该跨合约进程池为在该第一虚拟机上第二次或之后执行该交易任务的合约的进程资源池,该原始合约进程池为在该第一虚拟机上第一次执行该交易任务的合约的进程资源池;在该目标进程池存在空闲进程资源时,为该第一合约分配进程资源。

3、本申请另一方面提供一种资源分配装置,包括:获取模块,用于获取第一虚拟机的标识信息和交易任务对应的合约调用信息,该合约调用信息用于指示该交易任务的合约执行过程中虚拟机的调用情况,该第一虚拟机为该交易任务中执行第一合约时调用的虚拟机;

4、处理模块,用于根据该合约调用信息和该第一虚拟机的标识信息确定该第一合约的目标进程池,该目标进程池为跨合约进程池或者原始合约进程池,该跨合约进程池为在该第一虚拟机上第二次或之后执行该交易任务的合约的进程资源池,该原始合约进程池为在该第一虚拟机上第一次执行该交易任务的合约的进程资源池;

5、分配模块,用于在该目标进程池存在空闲进程资源时,为该第一合约分配进程资源。

6、在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,该处理模块,具体用于根据该合约调用信息得到该交易任务的执行过程中调用的虚拟机的标识信息集合;将该第一虚拟机的标识信息与该标识信息集合进行比对得到比对结果;根据该比对结果确定该第一合约的目标进程池。

7、在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,该合约调用信息包括第一字段;该第一字段用于记录该交易任务中调用的虚拟机的标识信息;

8、该处理模块,具体用于读取该合约调用信息中的第一字段得到该交易任务的执行过程中调用的虚拟机的标识信息集合。

9、在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,该合约调用信息还包括第二字段和第三字段;

10、其中,该第二字段用于记录该交易任务的合约调用次数;

11、该第三字段用于记录该交易任务中调用虚拟机的调用队列。

12、在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,该处理模块,还用于读取该合约调用信息中的第二字段得到该交易任务中合约调用次数,并读取该合约调用信息中的第三字段得到该交易任务的执行过程中虚拟机调用顺序。

13、在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,该合约调用信息包括64个比特位,该64比特位采用二进制取值,其中,该第一字段包括8个比特位,该第二字段包括4个比特位,该第三字段包括52个比特位;

14、该第一字段中每个比特位指示一个虚拟机的标识信息,该第二字段中比特位取值为1时,用于指示该取值为1的比特位对应的虚拟机已被调用过;

15、该第三字段中使用4个比特位指示虚拟机的标识信息,该第三字段的52个比特位按照交易任务的执行过程中的虚拟机调用顺序插入虚拟机标识信息队列。

16、在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,该处理模块,具体用于在该比对结果指示该第一虚拟机在该交易任务的执行过程已调用过,则确定该第一合约的目标进程池为该跨合约进程池。

17、在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,该处理模块,还用于在该目标进程池存在空闲进程资源时,为该第一合约分配进程资源之前,将该第一合约加入跨合约任务队列。

18、在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,该处理模块,具体用于在根据该合约调用信息确定该第一虚拟机在该交易任务的执行过程中未调用,则确定该第一合约的目标进程池为该原始合约进程池。

19、在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,该处理模块,还用于在该目标进程池存在空闲进程资源时,为该第一合约分配进程资源之前,将该第一合约加入原始合约任务队列。

20、在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,该跨合约进程池的进程资源数量大于该原始合约进程池的进程资源数量。

21、在一种可能的设计中,在本申请实施例的另一方面的另一种实现方式中,该跨合约进程池的进程资源数量等于该原始合约进程池的进程资源数量与第一预设值的乘值,该第一预设值等于预设合约调用层数减去1。

22、本申请另一方面提供一种计算机设备,包括:存储器、处理器以及总线系统;

23、其中,存储器用于存储程序;

24、处理器用于执行存储器中的程序,处理器用于根据程序代码中的指令执行上述各方面的方法;

25、总线系统用于连接存储器以及处理器,以使存储器以及处理器进行通信。

26、本申请的另一方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上本文档来自技高网...

【技术保护点】

1.一种基于跨合约调用的资源分配方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述根据所述合约调用信息和所述第一虚拟机的标识信息确定所述第一合约的目标进程池包括:

3.根据权利要求2所述的方法,其特征在于,所述合约调用信息包括第一字段;所述第一字段用于记录所述交易任务中调用的虚拟机的标识信息;

4.根据权利要求3所述的方法,其特征在于,所述合约调用信息还包括第二字段和第三字段;

5.根据权利要求4所述的方法,其特征在于,在获取交易任务对应的合约调用信息之后,所述方法还包括:

6.根据权利要求4所述的方法,其特征在于,所述合约调用信息包括64个比特位,所述64比特位采用二进制取值,其中,所述第一字段包括8个比特位,所述第二字段包括4个比特位,所述第三字段包括52个比特位;

7.根据权利要求2至6中任一项所述的方法,所述根据所述比对结果确定所述第一合约的目标进程池包括:

8.根据权利要求7所述的方法,其特征在于,在所述目标进程池存在空闲进程资源时,为所述第一合约分配进程资源之前,所述方法还包括:

9.根据权利要求2至6中任一项所述的方法,其特征在于,所述根据所述合约调用信息和所述第一虚拟机的标识信息确定所述第一合约的目标进程池包括:

10.根据权利要求9所述的方法,其特征在于,在所述目标进程池存在空闲进程资源时,为所述第一合约分配进程资源之前,所述方法还包括:

11.根据权利要求1至6或者9或者10中任一项所述的方法,其特征在于,所述跨合约进程池的进程资源数量大于所述原始合约进程池的进程资源数量。

12.根据权利要求11所述的方法,其特征在于,所述跨合约进程池的进程资源数量等于所述原始合约进程池的进程资源数量与第一预设值的乘值,所述第一预设值等于预设合约调用层数减去1。

13.一种资源分配装置,其特征在于,包括:

14.一种计算机设备,其特征在于,包括:存储器、处理器以及总线系统;

15.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至12中任一项所述的方法。

...

【技术特征摘要】

1.一种基于跨合约调用的资源分配方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述根据所述合约调用信息和所述第一虚拟机的标识信息确定所述第一合约的目标进程池包括:

3.根据权利要求2所述的方法,其特征在于,所述合约调用信息包括第一字段;所述第一字段用于记录所述交易任务中调用的虚拟机的标识信息;

4.根据权利要求3所述的方法,其特征在于,所述合约调用信息还包括第二字段和第三字段;

5.根据权利要求4所述的方法,其特征在于,在获取交易任务对应的合约调用信息之后,所述方法还包括:

6.根据权利要求4所述的方法,其特征在于,所述合约调用信息包括64个比特位,所述64比特位采用二进制取值,其中,所述第一字段包括8个比特位,所述第二字段包括4个比特位,所述第三字段包括52个比特位;

7.根据权利要求2至6中任一项所述的方法,所述根据所述比对结果确定所述第一合约的目标进程池包括:

8.根据权利要求7所述的方法,其特征在于,在所述目标进程池存在空闲进程资...

【专利技术属性】
技术研发人员:卢光宏韩天乐
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1