面向分布式数据库的形式化建模和验证方法及系统技术方案

技术编号:37871937 阅读:27 留言:0更新日期:2023-06-15 21:01
本发明专利技术公开了面向分布式数据库的形式化建模和验证方法及系统,属于数据库建模验证技术领域,要解决的技术问题为如何对分布式数据库的庞大状态空间及复杂场景进行高效且充分的遍历,进而保障其可靠性。包括:将分布式数据库划分为多个交互模块,并定义多个交互模块之间的交互方式;通过TLA+形式化语言对所述交互模块进行形式化建模;将多个交互模块之间的交互方式单独建模为形式化接口,并定义所述形式化接口所使用的临时变量以及临时行为;基于TLC模型检查器依次对各交互模块及形式化接口进行独立验证。进行独立验证。进行独立验证。

【技术实现步骤摘要】
面向分布式数据库的形式化建模和验证方法及系统


[0001]本专利技术涉及数据库建模验证
,具体地说是面向分布式数据库的形式化建模和验证方法及系统。

技术介绍

[0002]随着业务的发展,单体型数据库已无法在存储和计算等方面满足业务需求,大型分布式数据库(Distributed database)在金融、社交、网络购物、交通等方面得到越来越多的应用。通过在不同节点上部署运行,分布式数据库具备良好的可靠性及可扩展性。与此同时,分布式数据库也需要处理更多问题场景,比如,保证各节点之间的共识,应对节点崩溃等各种类型和的故障场景。因此,分布式数据库相比单体型数据库更加复杂,也更易出现问题,并导致如数据错误、服务不可用等结果,进而造成严重的经济损失。因此,保证分布式数据库的正确性十分重要。
[0003]现有技术如测试及验证无法对分布式数据库的各类场景中的问题进行充分的检查。比如,Elle(Kyly Kingsbury and Peter Alvaro.“Elle:inferring isolation anomalies from exper本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种面向分布式数据库的形式化建模和验证方法,其特征在于,包括如下步骤:对分布式数据库的设计及代码进行解析,将分布式数据库划分为多个交互模块,并定义多个交互模块之间的交互方式;对于每个交互模块,通过TLA+形式化语言对所述交互模块进行形式化建模、形成形式化模型,通过建模定义所述交互模块内部的关键状态以及重要行为,并将次要状态和次要行为进行抽象;将多个交互模块之间的交互方式单独建模为形式化接口,并定义所述形式化接口所使用的临时变量以及临时行为,使得所述形式化接口能够与各个交互模块进行数据交互;基于TLC模型检查器依次对各交互模块及形式化接口进行独立验证,并在对每个交互模块进行验证时,通过形式化接口记录交互数据,在验证后续交互模块时,直接使用所述交互数据进行状态赋值。2.根据权利要求1所述的面向分布式数据库的形式化建模和验证方法,其特征在于,对分布式数据库的代码进行解析,将分布式数据库划分为多个交互模块,并人工划定各个交互模块的代码边界,对于每个交互模块,将当前交互模块内所使用的类源码进行集中,并解析各个交互模块之间的交互细节,所述交互细节包括每个交互模块从内部输出和外部读入的所有数据、以及每个交互模块与外部交互的程序点。3.根据权利要求1所述的面向分布式数据库的形式化建模和验证方法,其特征在于,通过TLA+形式化语言对所述交互模块进行形式化建模,通过变量、行为和常量定义交互模块的状态、动作以及交互模块内部状态空间的约束,包括如下步骤:通过变量定义交互模块中重要数据;通过行为定义交互模块中基于重要数据展开的动作;通过常量对交互模块内部的状态空间进行约束。4.根据权利要求1所述的面向分布式数据库的形式化建模和验证方法,其特征在于,通过如下操作将多个交互模块之间的交互方式单独建模为形式化接口:根据交互模块与外部的交互数据,映射到交互模块内部所定义的具体形式化变量,并对交互模块对应的形式化模型中的行为进行监控,当发生交互性行为时,对交互数据所对应的变量进行取值,作为一个暂时状态形成形式化接口,并在后续对其他交互模块进行验证时使用。5.根据权利要求1所述的面向分布式数据库的形式化建模和验证方法,其特征在于,基于TLC模型检查器依次对各交互模块及形式化接口进行独立验证,包括如下步骤:L100、根据Init生成初始状态并验证性质;L200、根据Next中定义的行为产生新的状态,当有多个行为可以运行并产生对应的新状态时,TLC根据预设的方法生成新的状态并进行针对特定性质的检查,具体操作如下:L210、使用TLC对第一个交互模块进行单独验证,在验证过程中,使用形式化接口对交互数据进行暂存;L220、验证完成后,对第二个交互模块进行验证,并使用暂存的交互数据对状态值进行初始化,并将对应数据写入形式化接口中,所述对应数据包括交互返回值;按照L210

L220,对所有的交互模块进行基于形式化接口的独立验证,当所有交互模块验证完成后,对于整个分布式数据库的验证相应地也完成;
其中,所述预设的方法默认为广度优先遍历方法。6.一种面向分布式数据库的形式化建模和验证系统,其特征在于,用于通过如权利要求1

5任一项所述的面向分布式数据库的形式化建模和验证方法对分布式数据...

【专利技术属性】
技术研发人员:陈磊赵衎衎
申请(专利权)人:浪潮软件集团有限公司
类型:发明
国别省市:

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

1