当前位置: 首页 > news >正文

智能合约语言(eDSL)—— 并行化方案——调度算法

3、调度算法

处理区块的时候,我们会同时启动多个线程去执行多个交易,这个时候我们需要一个良好的调度策略,来决定当前的线程是应该执行交易还是验证交易、提前结束还是立刻重新执行交易等,只有有一个良好调度策略才能保证所有交易都稳定有序的执行;

线程数量

这是一个不太容易确定的变量,因为这不单单和机器的核数有关,也与我们需要处理的而区块有关系;由于我们是处理计算类型的任务,所以肯定不会使用tokio这种类似协程的轻量级线程,所以与核数又密切关系;如果我们处理的区块中,交易依赖程度很高,那么大量的并行时,重复执行的概率肯定非常大;基于上述两者的考虑,我们可以选择机器的最大核数80%或者(txs-dep_txs)/2,选择较大的一个值;

任务划分

在并行处理交易的时候,算法需要调度的任务并不是只有执行交易这一种,还有一种任务是验证交易,这是因为我们并行的执行交易,不能保证执行完的交易,它依赖的状态都是正确的,所以需要进行验证,如果出现错误,可能就需要重新执行与验证;所以我们需要调度的任务有两种类型,执行和验证,下面我们分别讲一下:

http://www.lryc.cn/news/404109.html

相关文章:

  • vue2.0中如何实现数据监听
  • kafka开启kerberos和ACL
  • QT+winodow 代码适配调试总结(三)
  • Linux之旅:常用的指令,热键和权限管理
  • 简单实用的企业舆情安全解决方案
  • 【中项】系统集成项目管理工程师-第2章 信息技术发展-2.1信息技术及其发展-2.1.1计算机软硬件与2.1.2计算机网络
  • SpringBoot集成Sharding-JDBC-5.3.0实现按月动态建表分表
  • ubuntu 上安装中文输入法
  • Postman导出excel文件
  • 你还在手动构建Python项目吗?PyBuilder让一切自动化!
  • WebRTC音视频-前言介绍
  • centos/rocky容器中安装xfce、xrdp记录
  • 实战:Eureka的概念作用以及用法详解
  • jupyter_contrib_nbextensions安装失败问题
  • 设计模式-Git-其他
  • 【C#】计算两条直线的交点坐标
  • 在项目服务器部署git 并实现自动提交
  • 前缀匹配工具之IP-Prefix
  • 等级保护测评案例分享及合规建议
  • GOLLIE : ANNOTATION GUIDELINES IMPROVE ZERO-SHOT INFORMATION-EXTRACTION
  • 2024-07-19 Unity插件 Odin Inspector9 —— Validation Attributes
  • 跨平台WPF音乐商店应用程序
  • 设计模式简述(一)
  • OSI参考模型:解析网络通信的七层框架
  • QT通用配置文件库(QPreferences)
  • 如何搭建一个RADIUS服务器?
  • 双机热备综合实验
  • Java和Python的图结构如何实现图的深度优先搜索算法
  • Web学习day05
  • LINUX客户端client(socket、connect)实现客户端发送,服务器接收