CN114896080B - 基于区块链技术的分布式系统避免死锁处理方法及装置 - Google Patents
基于区块链技术的分布式系统避免死锁处理方法及装置 Download PDFInfo
- Publication number
- CN114896080B CN114896080B CN202210660510.6A CN202210660510A CN114896080B CN 114896080 B CN114896080 B CN 114896080B CN 202210660510 A CN202210660510 A CN 202210660510A CN 114896080 B CN114896080 B CN 114896080B
- Authority
- CN
- China
- Prior art keywords
- resource
- distributed system
- lookup table
- block chain
- chain
- 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
Classifications
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
-
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Multi Processors (AREA)
Abstract
本发明提供一种基于区块链技术的分布式系统避免死锁处理方法及装置,该方法包括执行以下步骤:步骤1:根据分布式系统的规模和耦合程度,选取某一区块链,然后把分布式系统所有节点都加到该区块链;步骤2:在分布式系统中建立一张资源查询表;步骤3:把该资源查询表广播到整个区块链,验证成功后放到该区块链当前最高区块;步骤4:当分布式系统中的某一个进程准备请求某一个资源时,先从当前最高区块里读取资源查询表,然后判断资源状态是否被占用;步骤5:当分布式系统中的某一个进程释放某一个资源后,就把区块链当前最高区块里的资源查询表的资源状态进行更新,并广播到区块链。本发明的有益效果是:弥补了分布式系统没有全局时钟的不足。
Description
技术领域
本发明涉及区块链领域,尤其涉及一种基于区块链技术的分布式系统避免死锁处理方法及装置。
背景技术
区块链是一种去中心化的链式数据结构,它由一系列有序的区块链接而成,它本质上是一个去中心化的数据库,是一串使用密码学方法关联产生的数据区块。每隔一段时间,区块链网络中最先解出密码学难题的节点生成的区块被当成最新的区块,并广播同步给其他节点进行验证和确认,经确认有效的新区块将加入链中,作为该区块链当前的最高区块。这个最高区块将可以使得整个区块链网络节点中的区块保持实时一致性。区块链通过维护数据块的链式结构,可以维持持续增长的、不可篡改的实时全局一致性数据记录。
在分布式系统中,当一组进程中的某些成员由于无法访问到组中其他成员占用的资源而被无限期阻塞时,就产生了死锁。死锁浪费了满足其他请求所需要的资源,从而极大地阻碍了系统性能。而避免死锁就需要知道如何请求资源,如何动态检查资源分配状态,以保证没有无限期阻塞发生。因此,死锁避免的一个潜在问题是要能实时地收集到分布式系统资源的一致性全局状态信息,以便能实时检查资源分配状态,从而避免死锁。然而,由于分布式系统没有全局时钟,从而各个节点资源状态信息很难保持实时全局一致性,因此分布式系统很少使用死锁避免。
发明内容
本发明提供了一种基于区块链技术的分布式系统避免死锁处理方法,包括执行以下步骤:
步骤1:根据分布式系统的规模和耦合程度,选取某一个区块链,然后把分布式系统所有节点都加入到该区块链。
步骤2:在分布式系统中建立一张资源查询表。
步骤3:把该资源查询表广播到整个区块链,验证成功后放到该区块链当前最高区块里。
步骤4:当分布式系统中的某一个进程准备请求某一个资源时,先从当前最高区块里读取资源查询表,然后判断资源状态是否被占用;如果该资源状态是“已占用”,则该进程请求失败,并进入等待状态,直至下一次收到区块链广播资源查询表的信息,就再次进行读取资源查询表,如果该资源状态是“未占用”,则请求该资源成功,然后在资源查询表中把该资源状态修改为“已占用”,并把更新后的资源查询表广播到整个区块链。
步骤5:当分布式系统中的某一个进程释放某一个资源后,就把区块链当前最高区块里资源查询表进行更新,把该资源状态修改为“未占用”,并把更新后的资源查询表广播到整个区块链,然后返回执行步骤4。
作为本发明的进一步改进,在所述步骤1中,按照耦合程度,所述分布式系统分为紧密耦合分布式系统和松散耦合分布式系统,所选取的区块链包括公链、联盟链或私链。
作为本发明的进一步改进,在所述步骤1中,对于松散耦合分布式系统,区块链选取公链或联盟链,对于紧密耦合分布式系统,区块链选取私链。
作为本发明的进一步改进,在所述步骤1中,所述公链包括比特币系统、以太坊系统。
作为本发明的进一步改进,在所述步骤1中,如果选取以太坊系统,则采用智能合约实现资源查询表的实时全局一致性,如果选取联盟链或者私链,则采用超级账本实现资源查询表的实时全局一致性。
作为本发明的进一步改进,在所述步骤1中,所述分布式系统是由多个相互连接的处理资源组成的计算系统,它们在整个系统的控制下合作执行一个共同的任务;所述处理资源可以是物理上相邻的,也可以是地理上分散的。
作为本发明的进一步改进,在所述步骤2中,分布式系统中的每一个资源都被赋予一个唯一的编号,并且每一个资源都设置有是否已被其他进程占用的状态信息,即资源状态,从而形成一张资源查询表,该资源查询表包括多个字段。
作为本发明的进一步改进,在所述步骤2中,分布式系统中的每一个资源都被赋予一个唯一的编号,如果都是固定IP地址,编号用IP地址开头,然后再把此IP地址的计算机节点上的资源按某种顺序编号。
作为本发明的进一步改进,在所述步骤2中,所述字段包括:资源编号、资源名称、资源状态、资源被哪个进程占用、被占用的时间。
本发明还公开了一种基于区块链技术的分布式系统避免死锁处理装置,包括:存储器、处理器以及存储在所述存储器上的计算机程序,所述计算机程序配置为由所述处理器调用时实现本发明所述分布式系统避免死锁处理方法的步骤。
本发明的有益效果是:1.本发明的分布式系统避免死锁处理方法利用区块链的实时广播同步机制,弥补了分布式系统没有全局时钟的不足。2.本发明的分布式系统避免死锁处理方法通过设置一个资源查询表,并把该资源查询表上链,可以有效地避免分布式系统死锁的发生,从而大大提高了分布式系统的性能。
附图说明
图1是本发明分布式系统避免死锁处理方法的流程图;
图2是本发明分布式系统避免死锁处理方法的实施示意图。
具体实施方式
如图1所示,本发明公开了一种基于区块链技术的分布式系统避免死锁处理方法,包括执行以下步骤:
步骤1:根据分布式系统的规模和耦合程度,选取某一个区块链,可以选取公链、联盟链或私链,然后把分布式系统所有节点都加入到该区块链。
步骤2:分布式系统中的每一个资源都被赋予一个唯一的编号,并且每一个资源都设置有是否已被其他进程占用的状态信息,即资源状态,从而形成一张资源查询表,该资源查询表有三个字段,一是资源编号,二是资源名称,三是资源状态,还可以加入其他的一些字段,比如资源被哪个进程占用,以及被占用的时间等。如果都是固定IP地址,编号可以考虑用IP地址开头,然后再把此IP地址的计算机节点上的资源按某种顺序编号。
本发明分布式系统避免死锁处理方法的资源查询表如下:
资源编号 | 资源名称 | 资源状态 |
1 | Resource A | 未占用 |
2 | Resource B | 已占用 |
… | … | … |
N | Resource M | 未占用 |
步骤3:把该资源查询表广播到整个区块链,验证成功后放到该区块链当前最高区块里。
步骤4:当分布式系统中的某一个进程准备请求某一个资源时,先从当前最高区块里读取资源查询表,然后判断资源状态是否被占用;如果该资源状态是“已占用”,则该进程请求失败,并进入等待状态,直至下一次收到区块链广播资源查询表的信息,就再次进行读取资源查询表,如果该资源状态是“未占用”,则请求该资源成功,然后在资源查询表中把该资源状态修改为“已占用”,并把更新后的资源查询表广播到整个区块链;步骤5:当分布式系统中的某一个进程释放某一个资源后,就把区块链当前最高区块里的资源查询表进行更新,把该资源状态修改为“未占用”,并把更新后的资源查询表广播到整个区块链,然后返回执行步骤4。
所述步骤1中,所述分布式系统是由多个相互连接的处理资源组成的计算系统,它们在整个系统的控制下合作执行一个共同的任务,最少依赖于集中的程序、数据和硬件;所述处理资源可以是物理上相邻的,也可以是地理上分散的。
在所述步骤1中,按照耦合程度,所述分布式系统分为紧密耦合分布式系统和松散耦合分布式系统。
对于大规模的松散耦合分布式系统,区块链可以选取公链,比如比特币系统、以太坊系统等。考虑到分布式系统资源调度的效率,优先选取产生区块频率高且系统稳定的公链。比如可以考虑以太坊系统,每15秒钟左右产生一个新的区块,且系统很稳定。而比特币系统虽然稳定,但每10分钟左右才产生一个新的区块,对分布式系统来说,效率太低。
对于中小规模的松散耦合分布式系统,区块链可以选取联盟链,比如Fabric(联盟链开源项目),当然也可以使用其他的企业级联盟链。
对于小规模的紧密耦合分布式系统,区块链可以选取私链。
如果考虑以太坊系统,则可以采用智能合约实现资源查询表的实时全局一致性;如果考虑联盟链或者私链,则可以采用超级账本实现资源查询表的实时全局一致性。
本发明提出的基于区块链技术的分布式系统避免死锁处理方法可以解决分布式系统如何避免死锁的难题。首先,区块链每隔一段时间就会动态同步产生一个新的区块,从而保证了区块链所有节点的实时全局一致性;其次,让分布式系统所有计算机节点都加入到区块链,保证了分布式系统所有节点都有实时全局一致的区块链,从而解决了分布式系统中避免锁死所需要的全局时钟的问题;再次,在分布式系统中建立一张资源查询表,把该资源查询表放到该区块链当前最高区块里,并广播同步到整个区块链;最后,分布式系统中的进程请求资源时,先去查询区块链当前最高区块里的资源查询表,若请求成功,则更新资源查询表的内容,再把更新后的资源查询表广播同步到整个区块链。
本发明还公开了一种基于区块链技术的分布式系统避免死锁处理装置,包括:存储器、处理器以及存储在所述存储器上的计算机程序,所述计算机程序配置为由所述处理器调用时实现本发明所述分布式系统避免死锁处理方法的步骤。
本发明的有益效果:1.本发明的分布式系统避免死锁处理方法利用区块链的实时广播同步机制,弥补了分布式系统没有全局时钟的不足。2.本发明的分布式系统避免死锁处理方法通过设置一个资源查询表,并把该资源查询表上链,可以有效地避免分布式系统死锁的发生,从而大大提高了分布式系统的性能。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (6)
1.一种基于区块链技术的分布式系统避免死锁处理方法,其特征在于,包括执行以下步骤:
步骤1:根据分布式系统的规模和耦合程度,选取某一个区块链,区块链每隔一段时间就会动态同步产生一个新的区块,从而保证了区块链所有节点的实时全局一致性,然后把分布式系统所有节点都加入到该区块链;
步骤2:在分布式系统中建立资源查询表;
步骤3:把该资源查询表广播到整个区块链,验证成功后放到该区块链当前最高区块里;
步骤4:当分布式系统中的某一个进程准备请求某一个资源时,先从当前最高区块里读取资源查询表,然后判断资源状态是否被占用;如果该资源状态是“已占用”,则该进程请求失败,并进入等待状态,直至下一次收到区块链广播资源查询表的信息,就再次进行读取资源查询表,如果该资源状态是“未占用”,则请求该资源成功,然后在资源查询表中把该资源状态修改为“已占用”,并把更新后的资源查询表广播到整个区块链;
步骤5:当分布式系统中的某一个进程释放某一个资源后,就把区块链当前最高区块里的资源查询表进行更新,把该资源状态修改为“未占用”,并把更新后的资源查询表广播到整个区块链,然后返回执行步骤4;
在所述步骤1中,按照耦合程度,所述分布式系统分为紧密耦合分布式系统和松散耦合分布式系统,所选取的区块链包括公链、联盟链或私链;
在所述步骤1中,对于松散耦合分布式系统,区块链选取公链或联盟链,对于紧密耦合分布式系统,区块链选取私链;
在所述步骤1中,所述公链包括比特币系统、以太坊系统;
在所述步骤1中,如果选取以太坊系统,则采用智能合约实现资源查询表的实时全局一致性,如果选取联盟链或者私链,则采用超级账本实现资源查询表的实时全局一致性。
2.根据权利要求1所述的分布式系统避免死锁处理方法,其特征在于:在所述步骤1中,所述分布式系统是由多个相互连接的处理资源组成的计算系统,它们在整个系统的控制下合作执行一个共同的任务;所述处理资源可以是物理上相邻的,也可以是地理上分散的。
3.根据权利要求1所述的分布式系统避免死锁处理方法,其特征在于:在所述步骤2中,分布式系统中的每一个资源都被赋予一个唯一的编号,并且每一个资源都设置有是否已被其他进程占用的状态信息,即资源状态,从而形成一张资源查询表,该资源查询表包括多个字段。
4.根据权利要求3所述的分布式系统避免死锁处理方法,其特征在于:在所述步骤2中,分布式系统中的每一个资源都被赋予一个唯一的编号,如果都是固定IP地址,编号用IP地址开头,然后再把此IP地址的计算机节点上的资源按某种顺序编号。
5.根据权利要求3所述的分布式系统避免死锁处理方法,其特征在于:在所述步骤2中,所述字段包括:资源编号、资源名称、资源状态、资源被哪个进程占用、被占用的时间。
6.一种基于区块链技术的分布式系统避免死锁处理装置,其特征在于,包括:存储器、处理器以及存储在所述存储器上的计算机程序,所述计算机程序配置为由所述处理器调用时实现权利要求1-5中任一项所述分布式系统避免死锁处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210660510.6A CN114896080B (zh) | 2022-06-13 | 2022-06-13 | 基于区块链技术的分布式系统避免死锁处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210660510.6A CN114896080B (zh) | 2022-06-13 | 2022-06-13 | 基于区块链技术的分布式系统避免死锁处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114896080A CN114896080A (zh) | 2022-08-12 |
CN114896080B true CN114896080B (zh) | 2023-07-21 |
Family
ID=82727620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210660510.6A Active CN114896080B (zh) | 2022-06-13 | 2022-06-13 | 基于区块链技术的分布式系统避免死锁处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114896080B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109828847A (zh) * | 2019-01-25 | 2019-05-31 | 平安科技(深圳)有限公司 | 基于区块链的锁处理方法、装置、计算机设备及存储介质 |
WO2020063174A1 (zh) * | 2018-09-25 | 2020-04-02 | 阿里巴巴集团控股有限公司 | 一种资源分享方法、装置及设备 |
WO2020134575A1 (zh) * | 2018-12-25 | 2020-07-02 | 阿里巴巴集团控股有限公司 | 基于区块链的资源分配方法、装置和电子设备 |
CN111784090A (zh) * | 2019-04-04 | 2020-10-16 | 百度在线网络技术(北京)有限公司 | 基于区块链的资源分配方法、装置及存储介质 |
WO2021022369A1 (en) * | 2019-08-06 | 2021-02-11 | Zeu Crypto Networks Inc. | Distributed blockchain transaction system |
CN112699170A (zh) * | 2020-12-31 | 2021-04-23 | 上海竞动科技有限公司 | 基于多源数据结构区块链的查询方法与系统 |
CN113726873A (zh) * | 2021-08-27 | 2021-11-30 | 平安科技(深圳)有限公司 | 基于区块链的文件处理方法、系统、设备和存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7640315B1 (en) * | 2000-08-04 | 2009-12-29 | Advanced Micro Devices, Inc. | Implementing locks in a distributed processing system |
US7735089B2 (en) * | 2005-03-08 | 2010-06-08 | Oracle International Corporation | Method and system for deadlock detection in a distributed environment |
CN101504621B (zh) * | 2009-04-01 | 2011-06-29 | 杭州华三通信技术有限公司 | 一种避免全局资源乱序的分布式系统、设备及其应用方法 |
CN111275510A (zh) * | 2018-12-05 | 2020-06-12 | 触信(厦门)智能科技有限公司 | 一种资源共享方法、服务器及存储介质 |
CN110690999B (zh) * | 2019-10-11 | 2021-06-11 | 腾讯科技(深圳)有限公司 | 基于区块链的带宽分配方法、装置、设备及存储介质 |
CN114244536A (zh) * | 2022-02-24 | 2022-03-25 | 恒生电子股份有限公司 | 一种区块链的业务处理方法、装置、设备及存储介质 |
-
2022
- 2022-06-13 CN CN202210660510.6A patent/CN114896080B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020063174A1 (zh) * | 2018-09-25 | 2020-04-02 | 阿里巴巴集团控股有限公司 | 一种资源分享方法、装置及设备 |
WO2020134575A1 (zh) * | 2018-12-25 | 2020-07-02 | 阿里巴巴集团控股有限公司 | 基于区块链的资源分配方法、装置和电子设备 |
CN109828847A (zh) * | 2019-01-25 | 2019-05-31 | 平安科技(深圳)有限公司 | 基于区块链的锁处理方法、装置、计算机设备及存储介质 |
CN111784090A (zh) * | 2019-04-04 | 2020-10-16 | 百度在线网络技术(北京)有限公司 | 基于区块链的资源分配方法、装置及存储介质 |
WO2021022369A1 (en) * | 2019-08-06 | 2021-02-11 | Zeu Crypto Networks Inc. | Distributed blockchain transaction system |
CN112699170A (zh) * | 2020-12-31 | 2021-04-23 | 上海竞动科技有限公司 | 基于多源数据结构区块链的查询方法与系统 |
CN113726873A (zh) * | 2021-08-27 | 2021-11-30 | 平安科技(深圳)有限公司 | 基于区块链的文件处理方法、系统、设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
区块链技术综述及应用;白宇嘉 等;电脑知识与技术;第20-24页 * |
Also Published As
Publication number | Publication date |
---|---|
CN114896080A (zh) | 2022-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Cheung et al. | The grid protocol: A high performance scheme for maintaining replicated data | |
US8224860B2 (en) | Database management system | |
US7783973B2 (en) | Change approvals for computing systems | |
US7783607B2 (en) | Decentralized record expiry | |
US9348641B2 (en) | System and method for performing a transaction in a massively parallel processing database | |
CN101765831B (zh) | 数据库不一致的处理方法 | |
US8756196B2 (en) | Propagating tables while preserving cyclic foreign key relationships | |
US20110225121A1 (en) | System for maintaining a distributed database using constraints | |
US20090157762A1 (en) | Dynamic Data Reorganization to Accommodate Growth Across Replicated Databases | |
CN112654978B (zh) | 分布式异构存储系统中数据一致性实时检查的方法、设备和系统 | |
US10747776B2 (en) | Replication control using eventually consistent meta-data | |
CN101535977A (zh) | 联盟基础结构内的一致性 | |
US20090049172A1 (en) | Concurrent Node Self-Start in a Peer Cluster | |
CN104767794B (zh) | 一种分布式系统中的节点选举方法及节点 | |
CN109522365B (zh) | 信息管理系统中数据表及其字段分布式访问控制的方法 | |
CN108140035B (zh) | 分布式系统的数据库复制方法及装置 | |
CN112100160B (zh) | 一种基于Elastic Search的双活实时数据仓库建设方法 | |
CN117354260A (zh) | 一种电磁暂态跨域分布式并行计算调度方法及装置 | |
CN112037873B (zh) | 一种基于集群选主和共识机制的单点优化方法 | |
CN114595288A (zh) | 一种基于sql命令级的多idc分布式系统数据同步方法 | |
CN114896080B (zh) | 基于区块链技术的分布式系统避免死锁处理方法及装置 | |
CN111737226B (zh) | 一种基于Redis集群优化HBase集群性能的方法 | |
CN109376001A (zh) | 一种资源分配的方法及设备 | |
CN111917826A (zh) | 一种基于区块链知识产权保护的pbft共识算法 | |
Adly | Management of replicated data in large scale systems |
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 |