乙個打醬油的故事來理解事務的ACID特性

2021-08-27 20:00:25 字數 968 閱讀 8259

對於事務的特性,或者說要求,提出的規則是acid,也就是atomic(原子性)、consistency(一致性)、isolation(隔離性)和永續性(durability)。

從一般的字面上理解,會有些模糊,下面舉個例子來說明。

媽媽給小明(嗯,小明又出現了)100元,去買兩包醬油。那麼,對於小明來說,這就是一次事務。

小明得拿著錢,下樓,過馬路,到小店,拿兩包醬油,去結賬,找回錢,回家,交給媽媽兩包醬油,同時還有多餘的錢。這一系列動作,就構成了乙個事務。必須同時拿回醬油和餘錢。如果小明沒把醬油和餘錢同時給媽媽,那麼這個事務就不是成功的。如果因為其它原因,比如今天醬油居然因為美國不出口大豆給中國,醬油短缺,那麼小明得拿回100元。這就是原子性,事務中的一系列結果,要麼都成功,要麼都不成功。所以,媽媽說明

:記得找回錢。

假設醬油1元一包,那多餘的錢應該是98元,如果變成96元,那一定是小明拿著錢,嘴饞了,還買乙個根棒棒糖。。。這個就破壞了一致性,事務中一系列約束,必須不被破壞。所以,媽媽加一句:找回98元,別買零食。

如果小明去買醬油的時候,還拉上隔壁小紅一起去,可小紅正在做作業呢,很顯然,干擾了小紅,這就破壞了事務的隔離性,媽媽在『設計』這個事情的時候,就告訴小明:別招惹隔壁家小紅啊。這就保證了事務的隔離性,乙個事務不應該影響其它事務,也不依賴其它事務

小明回到家以後,把醬油和錢都交給了媽媽,媽媽說放在桌上吧,那小明隨手一放,結果瓶子沒放穩,打碎了,那。。。該挨罵了。。。因為破壞了事務的永續性,事務的結果是永久的。所以媽媽得提醒小明:別把瓶子打碎了,不然你中午別吃飯了。

最後再囉嗦一句:所謂acid,就是應該從設計事務者的角度來考慮的原則,**各種出問題的細節,針對性提供改善方案,從而設計出乙個完美的事務。

乙個有趣的故事

我有乙個老同學,乙個人娶了兩個老婆,一中一外。這件事情在紐約的華人裡面非常轟動,老同學自己從來不迴避,他經常出沒各種派對,嘴裡叼著雪茄菸,手裡拿著香檳說 我他媽得做個床,能睡三個人的床連他媽美國都沒賣的。老同學的大老婆是個美國人,在華爾街做事情,而且非常出色 二老婆是上海人,我沒見過本人,只看過 漂...

乙個農夫的故事

乙個農夫進城賣驢和山羊。山羊的脖子上繫著乙個小鈴鐺。三個小偷看見了,乙個小偷說 我去偷羊,叫農夫發現不了。另乙個小偷說 我要從農夫手裡把驢偷走。第三個小偷說 這都不難,我能把農夫身上的衣服全部偷來。第乙個小偷在道路的轉彎處悄悄地走近山羊,把鈴鐺解了下來,拴到了驢尾巴上,然後把羊牽走了。農夫四處環顧了...

乙個悲傷的故事

昨天她和我說她和她男友分了,我說不挺好的麼,你都準備回武漢了,她說他家為了多分一套房子逼婚,僅僅只是想讓兩個人拿證,沒談操辦婚事之類的事情,也沒過問她家的意見,結果就是兩人分了,因為她覺得他們家沒有誠意,隨隨便便就像讓她和他結婚,另一方面他也沒工作,目前看很不靠譜沒有安全感,兩個人自此鬧矛盾以後他就...