精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

形式化驗證工具TLA+:程序員視角的入門之道

開發 前端
如何保證一致性庫的正確性是一個很大挑戰,我們引入了TLA+、Jepsen等工具保證一致性庫的正確性。本文即從程序員視角介紹形式化驗證工具TLA+。

 [[430517]]

一  引言

女媧是飛天分布式系統中提供分布式協同的基礎服務,支撐著阿里云的計算、網絡、存儲等幾乎所有云產品。在女媧分布式協同服務中,一致性引擎是核心基礎模塊,支持了Paxos,Raft,EPaxos等多種一致性協議,根據業務需求支撐不同業務狀態機。如何保證一致性庫的正確性是一個很大挑戰,我們引入了TLA+、Jepsen等工具保證一致性庫的正確性。本文即從程序員視角介紹形式化驗證工具TLA+。

從理論上證明一個程序或者算法的正確性往往是困難的,工程中一般使用測試來發現問題,但再多的測試也無法保證覆蓋到了所有的行為,那些沒覆蓋到的行為就成為潛在的隱患,一旦在線上再暴露出來,往往會帶來不可預期的結果。形式化驗證正是為了解決這樣的問題,它使用計算機強大的計算能力,暴力的搜索所有可能的行為,檢查是否滿足事先設定的屬性,任何不符合預期的行為都能被發現,從根本上保證算法的正確性。

二  TLA+簡介

TLA+(Temporal Logic of Actions) 是Leslie Lamport開發的一門形式化驗證語言,用于程序的設計、建模、文檔和驗證等,特別是并發系統和分布式系統。TLA+的設計初衷是用簡單的數學理論和公式精準地對系統進行描述。TLA+及其相關工具有助于消除程序中很難找到、糾錯成本高的基本錯誤。

使用TLA+對程序進行形式化驗證,首先要用TLA+對程序進行描述,這樣的描述稱為規范(Specification)。有了Specification以后就可以使用TLC模型檢查器來運行它,運行的過程會遍歷所有可能的行為,檢查Specification中設定的屬性,發現非預期的行為。

TLA+基于數學,使用的是數學思維,與任何編程語言都不相似。為了降低TLA+的門檻,Lamport又開發了PlusCal語言,PlusCal與編程語言類似,可以很方便的描述程序邏輯,并且借用TLA+提供的工具可以直接將PlusCal翻譯成TLA+。大多數工程師會發現PlusCal是開始使用TLA+的最簡單方法,但簡單帶來的代價就是PlusCal不具備TLA+的一些功能,有時不能像TLA+那樣構造復雜的模型,因此PlusCal還不能取代TLA+。先使用PlusCal編程語言完成基本的邏輯,然后進一步基于生成的TLA+代碼再修改,可以簡化TLA+的開發。

三  TLA+應用

TLA+在學術界和工業界都有著廣泛的應用。TLA+ Examples給出了一些使用TLA+驗證過的分布式算法和并發算法。在分布式算法和并發算法的研究領域,提出一個新的算法或者改進一個現有的算法,TLA+驗證基本是標配。很多分布式算法論文在非形式化的論證介紹之外, 會附帶TLA+的Specification來證明自己的算法是經過形式化驗證的。對TLA+比較熟悉的業內人士來說,直接看TLA+的Specification甚至比看大段的論文理解的更快,對于論文的語言描述沒有看明白,或者覺得有歧義的時候,查看TLA+的Specification對照著理解,有時候是閱讀論文的一把利器,甚至有時候一些算法細節只能在TLA+的Specification里看到。由于Specification是邏輯嚴密滴水不漏的,可以更好的作為實現的指導。

Lamport的TLA+主頁上列出了一些TLA+在工業界的應用。以Amazon為例,Amazon AWS的一些系統的核心算法就使用了TLA+來做形式化驗證,如表1列出了TLA+給AWS的一些系統找出的問題,其中涵蓋了一些非常核心的組件,這些核心組件的問題一旦在線上暴露,造成的損失將是不可估量的。正是如此,現在分布式云服務的核心算法使用TLA+來對設計做驗證已經成為行業標準了,所以作為云服務的從業者或者對此感興趣的同學,熟悉TLA+絕對是不可或缺的加分項。

表1:TLA+給AWS的系統找出的問題

 

四  TLA+入門

在VS Code中安裝TLA+插件就可以開始使用TLA+了。這里先以一個簡單的示例入門TLA+。

考慮一個單比特位的時鐘,由于只有一個比特位,只能取值0或者1,其行為只有如下兩種情況:

0 -> 1 -> 0 -> 1 -> 0 -> ...

1 -> 0 -> 1 -> 0 -> 1 -> ...

我們如何用TLA+來描述這個時鐘呢?為了更容易入門,先用更方便工程師入門的PlusCal來描述:

圖1:單比特時鐘的PlusCal描述

圖1是單比特時鐘的PlusCal描述,相信具有編程功底的同學都能輕易看懂。這段PlusCal代碼可以直接使用TLA+提供的工具翻譯成TLA+代碼:

圖2:單比特時鐘的TLA+描述

有了上面的PlusCal的基礎,理解這一段TLA+也不難,重點在于Spec的理解。Spec定義了系統的行為,如圖3描述了單比特時鐘的行為,Init將clock初始化為0或1,Tick讓clock在0和1之間來回跳轉,Stutter讓clock保持不變。TLA+運行的過程其實就是在圖上做遍歷。

 

圖3:單比特時鐘的行為

要讓這段TLA+跑起來,上述TLA+代碼需保存至clock.tla文件,此外還需要編寫一個如圖4所示的clock.cfg文件,clock.cfg文件內容很簡單,它注明要運行的Specification是哪個,要檢查的Invariant是哪個。

圖4:clock.cfg文件內容

有了這兩個文件,就可以用TLC來運行了,運行結束后得到如圖5所示的結果,圖中展示了一些統計信息。

圖5:運行結果 

五  TLA+原理

為了理解TLA+的運行原理,弄清楚它是怎么遍歷的,我們可以在運行的時候加上一些參數,讓TLC輸出狀態圖。比如我們運行圖6所示的一段TLA+代碼,圖7是運行所需要的cfg文件。這個例子試圖找出用面值為1、2和5的錢組合出19塊錢的所有組合方式。

圖6:money.tla

圖7:money.cfg

運行結束后可以得到如圖8所示的狀態圖,圖中的頂點為狀態,共20種狀態,money=0為初始狀態,money=19為終止狀態,圖中的邊為動作,共4種動作:Add(1)、Add(2)、Add(5)和Terminating。

圖8:狀態圖

TLA+的運行是完全串行的,運行的的過程即在狀態圖上做圖的遍歷,每遍歷到一個狀態,就檢查一下當前狀態是否滿足事先設定的不變式,滿足則繼續遍歷,不滿足則立即報錯。TLA+會嘗試所有的遍歷路徑,不錯過任何一種行為。我們知道圖的遍歷方式有深度優先和廣度優先兩種,TLA+默認廣度優先遍歷,也可配置成深度優先模式或者隨機行為模式,深度優先模式需要給定一個最大深度。

現在我們知道了TLA+的原理實際上就是狀態圖的遍歷并檢查的過程,這樣的過程看似簡單,卻能覆蓋到算法所有的路徑,不漏掉任何一種行為。實際我們經常使用TLA+檢查算法的Safety和Liveness屬性。

六  TLA+并發

到這里相信讀者對TLA+的原理已經有了初步的了解,但細心的讀者可能心中還有一個很大的疑問:TLA+運行過程是完全串行的,那么串行運行的TLA+如何模擬并發算法或者分布式算法呢?

對于串行算法來說,算法中的動作是Totally Ordered,本身就是一個串行的狀態機,很容易構造狀態圖。但并發算法或者分布式算法中的動作是Partially Ordered,不是一個串行的狀態機,如何構造出狀態圖呢?

如果并發算法或者分布式算法中的動作也能變成Totally Ordered,則也可以看作是一個串行的狀態機,構造出狀態圖。

實際上Lamport大師一早就研究了這個問題,在他被引用的最多的論文《Time, Clocks and the Ordering of Events in a Distributed System》中給出了為分布式系統中的事件定序的方法。簡單的說就是在保證具有Partially Ordered關系的事件的順序的前提下,將剩下的無序的事件人為定一個順序,可以將所有事件排一個序變為Totally Ordered,并且這種定序不會破壞因果關系。

事實上TLA+大放異彩的地方正是在并發算法和分布式算法領域,因為在這些領域算法的行為多種多樣,容易疏漏,因此需要TLA+全面檢查算法的所有路徑,不漏掉任何一種行為。

七  總結

TLA+使用計算機強大的算力搜索算法所有可能的行為,以發現非預期的行為。隨著計算機算力的提升,以及軟件和硬件系統越來越復雜,TLA+將越來越受到重視,越來越成為工程師的必備技能。

最后如果讀者對TLA+感興趣,這里推薦一本TLA+的入門書籍《Practical TLA+》,比較適合入門,并且網上有免費的電子版可以直接下載。

MySQL高級應用 - 索引和鎖

MySQL 是目前最流行的關系型數據庫管理系統,在 WEB 應用方面 MySQL 也是目前最好的 RDBMS 應用軟件之一。

本教程主要講授針對 Java 開發所需的 MySQL 高級知識,課程中會讓大家快速掌握索引,如何避免索引失效,索引的優化策略,了解innodb和myisam存儲引擎,熟悉MySQL鎖機制,能熟練配置MySQL主從復制,熟練掌握explain、show profile、慢查詢日志等日常SQL診斷和性能分析策略。點擊閱讀原文查看詳情!

 

責任編輯:張燕妮 來源: 阿里技術
相關推薦

2024-08-05 09:36:03

2018-08-15 08:48:18

2024-05-30 12:43:53

2009-11-27 09:07:38

程序員

2012-07-05 09:37:04

Java程序員

2011-05-10 09:29:30

代碼重寫

2017-09-13 09:49:54

iPhone X

2022-10-24 09:00:47

畫圖工具程序員XMind

2022-07-18 10:05:16

AI挑戰方案

2015-04-08 11:09:28

優秀程序員深入理解你的代碼

2021-05-18 06:51:37

CPU程序員系統

2013-08-20 09:33:59

程序員

2010-12-30 10:04:49

Linux入門

2018-04-03 17:08:08

程序員技能面試

2011-05-13 14:34:02

程序員

2009-07-28 08:28:15

2019-02-26 09:55:52

Java開發工具

2012-11-12 09:35:24

開發工具程序員IE6

2017-11-14 21:30:15

2012-11-22 14:00:26

程序員
點贊
收藏

51CTO技術棧公眾號

伊人久久大香线蕉av一区二区| 亚洲黄色小说网站| 国产精品激情av电影在线观看| 亚洲精品国产熟女久久久| 国产精品99久久久久久董美香| 国产精品不卡在线观看| 99re资源| 免费观看日批视频| 亚洲v在线看| 亚洲国产小视频| 国产熟人av一二三区| 久草免费在线观看| 91亚洲精华国产精华精华液| 国产精品一区二区在线| 久久99久久久| 精品久久久久久久| 精品成人佐山爱一区二区| www.亚洲天堂网| av网站在线免费| 久久欧美中文字幕| 成人免费视频观看视频| 欧美日韩 一区二区三区| 欧美日本一区二区视频在线观看| 亚洲男人第一av网站| 无套白嫩进入乌克兰美女| 男人皇宫亚洲男人2020| 亚洲男人的天堂在线aⅴ视频| 久久久久久久久久久久久久一区| 国产乱码久久久| 久久综合九色| 欧美成人午夜影院| 久久精品色妇熟妇丰满人妻| 天堂成人娱乐在线视频免费播放网站| 制服丝袜亚洲精品中文字幕| 成年人视频在线免费| 91资源在线观看| 亚洲欧美日韩国产另类专区| 亚洲国产午夜伦理片大全在线观看网站| 国模私拍视频在线| 国产一区二区福利视频| 国产精品视频内| 免费的毛片视频| 亚洲深夜激情| 97精品一区二区视频在线观看| 黄色a级片在线观看| sdde在线播放一区二区| 国产丝袜精品视频| www.色多多| 久久超级碰碰| 亚洲福利视频网| 国内精品免费视频| 538任你躁精品视频网免费| 91麻豆精品国产91久久久| 国产高清视频网站| 本网站久久精品| 午夜国产精品影院在线观看| 久久这里只有精品23| 欧美videossex另类| 亚洲在线视频一区| 黄色a级片免费看| 肉肉视频在线观看| 亚洲一区自拍偷拍| 国产玉足脚交久久欧美| 男男gaygays亚洲| 亚洲高清免费观看高清完整版在线观看| 日韩视频一二三| 秋霞在线午夜| 亚洲国产成人91porn| 日本xxxxxxxxxx75| 欧美aa在线| 日韩欧美一区二区三区久久| 欧美极品欧美精品欧美图片| 欧美卡一卡二卡三| 免费av在线网址| 国产欧美日韩不卡免费| 亚洲一区bb| caoporn免费在线| 一区二区三区 在线观看视频| 久久久久福利视频| 国模精品视频| 日本韩国精品在线| 三上悠亚在线一区二区| 国产美女精品视频免费播放软件| 日韩精品一区二区在线| 国产麻豆剧传媒精品国产av| 免费一区二区三区视频导航| 最近2019中文字幕一页二页| 永久久久久久久| 亚洲黄色免费| 国产精品视频中文字幕91| 国产剧情精品在线| a美女胸又www黄视频久久| 久久伦理网站| 在线观看免费黄视频| 一区二区三区在线观看国产| 欧美日韩亚洲第一| 国产一区2区在线观看| 亚洲国产成人在线播放| 妖精视频在线观看免费 | 日韩在线观看电影完整版高清免费| 第一福利在线| 亚洲一区二区欧美| 91香蕉视频污版| 97久久综合区小说区图片区| 亚洲香蕉伊综合在人在线视看| 69夜色精品国产69乱| 伊人久久成人| 国产精品视频1区| 亚洲精品国产片| 中文字幕av一区二区三区| a级免费在线观看| 51一区二区三区| 亚洲国产欧美一区二区三区久久| 一级二级黄色片| 亚洲国产裸拍裸体视频在线观看乱了中文 | 亚洲自拍小视频| 嫩草研究院在线观看| 亚洲黄色性网站| 另类小说第一页| 极品束缚调教一区二区网站| 久久国产精品影视| 免费一级a毛片| 99精品视频一区| 亚洲黄色网址在线观看| 国语自产精品视频在线看抢先版结局| 亚洲经典中文字幕| 欧美国产日韩综合| 久久99国产精品免费| 日韩精品欧美在线| 日本在线影院| 亚洲精品狠狠操| 久草免费在线观看视频| 狠狠色综合日日| 五月婷婷综合色| 97se综合| 亚洲国产精品久久精品怡红院| 日韩一级片大全| 精品制服美女丁香| 亚洲精品视频一区二区三区| 成人性生活av| 日韩av影视在线| 国产一级特黄毛片| 国产成人精品影视| 麻豆传媒网站在线观看| **日韩最新| xvideos亚洲| 亚洲熟妇av乱码在线观看| 国产日韩欧美不卡在线| www.xxx亚洲| 国模吧精品视频| 国产精品96久久久久久又黄又硬| 视频午夜在线| 91九色最新地址| 色婷婷在线影院| 亚洲电影av| 精品一区二区国产| 一区二区乱码| 亚洲欧美日韩国产成人| www.日韩一区| 欧美国产日产图区| 黄色一级片免费的| 91精品成人| 成人免费观看网站| 美女网站在线看| 亚洲欧美综合v| 国产精品第6页| 国产精品电影一区二区三区| 91pony九色| 欧美69视频| 狠狠爱一区二区三区| 中文日产幕无线码一区二区| 亚洲网站视频福利| 91超薄丝袜肉丝一区二区| 亚洲视频一区在线| 天天躁日日躁狠狠躁av| 小嫩嫩精品导航| 亚洲精品国产一区| 日韩成人久久| 国产69精品久久久久久| 91最新在线| 日韩一区二区三区四区五区六区| 久热精品在线观看| 久久奇米777| 天天干天天曰天天操| 日韩亚洲国产欧美| 婷婷四月色综合| 97青娱国产盛宴精品视频| 国产99视频精品免视看7| 四虎久久免费| 精品福利一区二区三区| 久久久精品毛片| 亚洲日本中文字幕区| 国产黄色三级网站| 捆绑变态av一区二区三区| 久久人人爽人人爽人人av| 99精彩视频在线观看免费| 国产日韩电影| 免费不卡在线观看av| 免费人成在线观看网站| 欧美一区二区三区视频| 欧产日产国产69| 亚洲理论在线观看| 国产手机在线观看| 国产激情一区二区三区桃花岛亚洲| 精品这里只有精品| 91av精品| 日本不卡一区| 超碰精品在线| 91精品久久久久久| 久久uomeier| 欧美激情中文字幕乱码免费| 91大神xh98hx在线播放| 精品精品欲导航| 国产孕妇孕交大片孕| 色老汉av一区二区三区| 国产 日韩 欧美 成人| 中文字幕日韩av资源站| 在哪里可以看毛片| av高清不卡在线| 天天色天天干天天色| 日本va欧美va精品发布| 久久国产成人精品国产成人亚洲| 欧美日韩视频| 在线国产99| 精品久久久久久久| 欧美精品在线一区| 美女一区二区在线观看| 成人91视频| 国产精品毛片无码| 国产精品女主播| 成人av三级| 91黑丝在线观看| 成人在线高清免费| 欧美另类精品xxxx孕妇| 老司机在线看片网av| 这里只有精品在线播放| 日韩二区三区| 亚洲国产一区二区三区四区| 后进极品白嫩翘臀在线视频| 日韩一级二级三级精品视频| 国产麻豆91视频| 欧美日韩国产电影| 夜夜躁狠狠躁日日躁av| 在线观看亚洲a| 国产成人麻豆免费观看| 在线免费亚洲电影| 亚洲av无码乱码国产精品fc2| 色成人在线视频| 99re这里只有精品在线| 色欧美片视频在线观看| 999视频在线| 欧美主播一区二区三区| 艳妇乳肉豪妇荡乳av无码福利 | 99精品美女视频在线观看热舞| 国产精品美女无圣光视频| 久久野战av| 国产精品综合不卡av| 欧美综合影院| 91在线观看欧美日韩| 久久久久毛片免费观看| 成人女人免费毛片| 另类ts人妖一区二区三区| 精品视频第一区| 九九久久电影| 日本一区二区三区在线视频 | 中文字幕一区二区三区5566| 久久久久亚洲| 国产美女永久无遮挡| 一区二区三区福利| 亚洲精品中文字幕无码蜜桃| 蜜桃av一区二区在线观看| 手机在线国产视频| 国产成人精品aa毛片| 亚洲av成人无码一二三在线观看| 91女神在线视频| 99re6热在线精品视频| 亚洲精品成人少妇| 日韩伦人妻无码| 色综合久久久久综合体桃花网| 这里只有精品国产| 日韩欧美一区中文| 三级做a全过程在线观看| 在线精品国产欧美| 制服丝袜在线播放| 欧美在线中文字幕| 国产成人免费精品| 国产91色在线|亚洲| 一区二区三区四区在线看 | 在线观看免费一区二区| 欧美一级片免费播放| 日韩高清一级片| 美女又黄又免费的视频| 久久久欧美精品sm网站| 麻豆天美蜜桃91| 狠狠做深爱婷婷久久综合一区| 中日精品一色哟哟| 精品国产一区久久| caoporn国产精品免费视频| 欧美精品免费在线| 久久野战av| 国产精品久久久久免费| 欧美综合在线视频观看| 日b视频免费观看| 在线视频精品| 欧洲在线免费视频| 久久久久久久久97黄色工厂| 欧美精品入口蜜桃| 欧美性高清videossexo| 亚洲精品911| 中文字幕亚洲综合久久| 超碰在线视屏| 亚洲一区二区三区视频播放| 国产午夜一区| 野外做受又硬又粗又大视频√| 奇米影视一区二区三区小说| 丰满岳乱妇一区二区| 亚洲色图19p| 波多野结衣视频网址| 亚洲国产91色在线| 1024在线播放| 国产综合视频在线观看| 国内精品久久久久久久久电影网| www.日本少妇| 国产精品夜夜嗨| 特黄一区二区三区| 色综合久久久久综合| 桃花色综合影院| 午夜免费日韩视频| 精品国产麻豆| 色中文字幕在线观看| 免费看黄色91| 精品一区二区三区蜜桃在线| 欧美性xxxx在线播放| 无码国产色欲xxxx视频| 欧美国产第二页| 深夜激情久久| 日本高清视频免费在线观看| 久久99国产精品麻豆| 中文字幕资源站| 欧美三区免费完整视频在线观看| 青青草在线视频免费观看| 91成品人片a无限观看| 牛牛影视久久网| 国内精品视频一区二区三区| 国产成人在线免费| 懂色av懂色av粉嫩av| 欧美一区二区观看视频| 91精品久久| 91久久久一线二线三线品牌| 欧美日本一区二区高清播放视频| 日本黄色www| 亚洲最快最全在线视频| 国产77777| 97高清免费视频| 欧美国产极品| 日韩avxxx| 国产农村妇女毛片精品久久麻豆| 青青草视频在线观看免费| 在线视频日本亚洲性| 欧美aaaaaa| 亚洲第一综合网站| 国产精品亚洲午夜一区二区三区| 麻豆91精品91久久久| 日韩电影中文字幕在线| 成人福利av| 水蜜桃亚洲精品| 国产在线看一区| 国产亚洲精品久久777777| 亚洲第一精品久久忘忧草社区| 97在线视频免费观看完整版| 欧美成人蜜桃| 裸体一区二区三区| √天堂中文官网8在线| 精品国产一区二区三区av性色| 成人影院在线视频| 欧美精品一区三区在线观看| 毛片不卡一区二区| 黄色在线观看免费| 亚洲美女在线观看| 成人亚洲网站| 97碰在线视频| 久久久久综合网| 国产乱码精品一区二三区蜜臂| 久久久亚洲国产| 精品美女久久久| 黄色一级片免费播放| 精品毛片三在线观看| 成人三级黄色免费网站| 97久久天天综合色天天综合色hd| 亚洲日本视频| 精品国产大片大片大片| 欧美精品一区二区三区很污很色的| 日韩欧美一区二区三区免费观看| 国产av不卡一区二区| 99久久精品国产一区二区三区| 国产日韩在线免费观看| 欧美高跟鞋交xxxxhd| 色棕色天天综合网| 亚洲欧洲国产视频| 欧美性色综合网|