前言:軟件開發(fā)中的理論和原則以及一些概念芋浮,有時候很難理解亲桦,感覺很深奧嘶窄!但他們都不是憑空想象出來的,他們都是為了解決軟件開發(fā)過程中遇到的某個問題而提出來的方法論。所以學(xué)習(xí)這些理論恤筛,不能脫離現(xiàn)實問題,要從根源上理解提出這些理論的原理、背景猖凛,學(xué)習(xí)的時候結(jié)合現(xiàn)實生活中的某個具體的場景和例子加以理解,有助于理解它的本質(zhì)和實際用法绪穆。軟件開發(fā)本事就是用計算機思維去描述辨泳、解決現(xiàn)實中的問題,軟件開發(fā)中的問題玖院,除了特定語法層面的一些問題菠红,語義方面的問題都可以結(jié)合現(xiàn)實中的問題提出解決方案,至少是參考方案难菌。
說到事務(wù)试溯,我們首先想到的是他的ACID四個特性以及 Serializable (串行化)、Repeatable read (可重復(fù)讀)郊酒、Read committed (讀已提交)遇绞、Read uncommitted (讀未提交)四種隔離級別键袱。但我們有沒有想過為什么會是這樣子的,為什么是ACID四個特性摹闽,不是其他ABCD其他四個特性蹄咖,為什么不是五個,也就是說這四個特性是針對什么提出來的付鹿?為什么要提出隔離級別這種概念澜汤?
我們用現(xiàn)實生活中的一個例子去解釋,也許不是特別精準(zhǔn)倘屹,但我們要理解的是他的思想:A和B都在同一個公司工作银亲,他們崗位一樣,工作內(nèi)容一樣纽匙,工資一樣务蝠,該公司對外宣稱:我們公司公平、公正烛缔,沒有潛規(guī)則馏段,沒有特殊對待,大家一視同仁践瓷。到月底了院喜,A的媽媽查了查兒子銀行卡余額,0.22元晕翠,愛子心切的媽媽心想喷舀,待會要去給他打點錢過去了,不然兒子要喝西北風(fēng)了淋肾。出門之前硫麻,她又看了看兒子銀行卡的交易記錄,并記錄下了兒子所有的工資收入記錄樊卓,總共9條記錄拿愧,合計76543.21元,然后他出門去銀行給A轉(zhuǎn)賬碌尔。此時人事過來叫A浇辜、B同時去辦公室(請注意是去辦公室領(lǐng))領(lǐng)工資(因為公司宣揚平等,大家都是同時拿到工資的唾戚,不會有先后)柳洋。他們來到辦公室,老板先是充分肯定了大家最近一月在工作中取得的成績叹坦,并鼓勵大家再接再厲膳灶,再創(chuàng)輝煌。。轧钓。序厉。。毕箍。然后遞給A一個鼓鼓的紅包弛房,接著又遞給B一個(注意這里有先后,你很難保證老板能同時給A而柑、B紅包文捶,他就算采用左手遞給A同時右手遞給B,從毫秒媒咳、納秒層級來看粹排,這里的‘同時’也不是絕對同時的,也就是說從絕對意義上來講涩澡,是達不到完全一致性的)顽耳,然后A和B高興地拿著紅包一起出去了......
上面這個場景中,我們似乎覺得妙同,這并沒有滿足嚴格意義上的一致性射富!從這個意義上(上帝視角)來看,確實是粥帚,公司并沒有兌現(xiàn)他“完全公平”的承諾胰耗,A先與B兩秒拿到錢,并且從這個意義上講芒涡,似乎根本不可能兌現(xiàn)柴灯。但是,這里有一個很重要的問題费尽,也就是視角的問題赠群,我們現(xiàn)實中不是站在上帝的視角,而是站在第三方視角依啰,也就是站在公司的其他員工角度(程序中是站在調(diào)用者視角)。A店枣、B走出辦公室后速警,C看到他們同時出來了,并且手里都有相同的紅包鸯两,他會覺得:老板兌現(xiàn)了他的承諾闷旧。至于A、B是怎樣拿到到紅包的細節(jié)他們是看不見的钧唐,因為他們都是在辦公室里發(fā)生的(事務(wù))忙灼,辦公室發(fā)生的一切他們都不知道。也許中間他們還有討論績效是不是太少了,但最終他們都有一個統(tǒng)一的答案该园,拒絕還是接受(一致性)酸舍,這些對于公司其他同事也是不可知的(隔離),他們拿了工資簽了字后里初,這事就翻篇了啃勉,塵埃落定了(持久性)。
再細講下去双妨,在A淮阐、B正在討論績效是否低了的時候,D有急事跑了進去(隔離級別太低刁品,辦公室門沒上鎖)泣特,D出來后E問D:A、B同意了嗎挑随?D說:沒有状您,他們說績效有點低(其實最終A、B是同意了的)镀裤,E就得到了“假”數(shù)據(jù)(臟讀)竞阐。這是A的媽媽到了銀行,一查A的銀行卡余額:8888.22暑劝,她懷疑自己眼花了骆莹,揉了揉眼睛又看了一看,還是8888.22.他傻眼了担猛,剛剛明明是0.22(不可重復(fù)讀)幕垦。當(dāng)?shù)弥莾鹤觿偘l(fā)工資后,他回家了傅联∠雀模回到家里有閑著沒事翻了翻兒子銀行卡的轉(zhuǎn)賬記錄,咦蒸走,怎么又10條了仇奶?剛剛不是才9條么?我是產(chǎn)生幻覺了么(幻讀)比驻,聰明的你應(yīng)該知道這是什么原因吧该溯!。别惦。狈茉。。掸掸。氯庆。
那怎么解決上述的這些問題呢蹭秋?說白了,就是加大管控力度堤撵,比如辦公室上鎖仁讨,閑雜人等禁止入內(nèi)!要發(fā)工資期間工資卡不讓別人隨便用......管控力度不同粒督,能解決的問題級別不同陪竿,這就是隔離級別......詳情下回分解。
后記:上面的討論提出一個觀點屠橄,事務(wù)保證的強一致性是站在第三方角度說的族跛,并不是絕對意義上的,上帝視角的一致性锐墙。但礁哄,我們都是讀過書的人,是不會信上帝的溪北,也就是說沒必要追求上帝視角的一致性桐绒。所以,在現(xiàn)實中我們所討論的很多問題都不是考慮他的絕對意義之拨,都不是站在上帝視角的茉继,而是站在整個社會視角的。比如我們社會主義核心價值觀中就有“自由蚀乔、平等烁竭、公正"三項,這里說的自由吉挣、平等派撕、公正并不是絕對意義上的,他不是微觀的睬魂,個人的终吼、上帝視角的自由、平等氯哮、公正际跪,而是整個社會的,就像例子中的A喉钢、B所在的公司一樣姆打。
事務(wù)之再理解
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來啸如,“玉大人侍匙,你說我怎么就攤上這事《vǎ” “怎么了想暗?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長帘不。 經(jīng)常有香客問我说莫,道長,這世上最難降的妖魔是什么寞焙? 我笑而不...
- 正文 為了忘掉前任储狭,我火速辦了婚禮,結(jié)果婚禮上捣郊,老公的妹妹穿的比我還像新娘辽狈。我一直安慰自己,他們只是感情好呛牲,可當(dāng)我...
- 文/花漫 我一把揭開白布刮萌。 她就那樣靜靜地躺著,像睡著了一般侈净。 火紅的嫁衣襯著肌膚如雪尊勿。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼擅羞,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了义图?” 一聲冷哼從身側(cè)響起减俏,我...
- 正文 年R本政府宣布,位于F島的核電站匿沛,受9級特大地震影響竖共,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜俺祠,卻給世界環(huán)境...
- 文/蒙蒙 一公给、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蜘渣,春花似錦淌铐、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至拾碌,卻和暖如春吐葱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背校翔。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 讓我成為上天傳達祥和寧靜的工具榴鼎。 我處處撒播幸福的種子 我是傳達光明與愛的使者 我是最最幸福的愛的天使 我是愛,我...
- 1盗似、為何放棄回合制哩陕? 眾多周知,本土RPG游戲仙劍系列一向都是回合制赫舒,直到仙劍6才模仿FF13采用了節(jié)奏更快的高速...