青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Shuffy

不斷的學習,不斷的思考,才能不斷的進步.Let's do better together!
posts - 102, comments - 43, trackbacks - 0, articles - 19

作者 James Leigh 譯者 曹如進 發(fā)布于 2009年11月11日 上午2時18分

 

ACID性質(zhì)是數(shù)據(jù)庫理論中的奠基石,它定義了一個理論上可靠數(shù)據(jù)庫所必須具備的四個性質(zhì):原子性,一致性,隔離性和持久性。雖然這四個性質(zhì)都很重要,但是隔離性最為靈活。大部分數(shù)據(jù)庫都提供了一些可供選擇的隔離級別,且現(xiàn)在許多庫都增加了附加層來創(chuàng)建顆粒度更細的隔離。隔離級別應(yīng)用范圍如此之廣主要是因為放寬隔離約束往往會使得可擴展性和性能提高幾個數(shù)量級。

串行一致性是可用的最古老最高的隔離級別之一,它之所以倍受青睞是因為其提供的簡單編程模型,即每次僅能有一個事務(wù)對給定的資源進行操作,這就避免了很多潛在的資源問題。盡管如此,大部分應(yīng)用程序(尤其是Web應(yīng)用程序)都不采用這種級別非常高的隔離,因為從終端用戶的角度來看這是不切實際的-任何一個擁有大量用戶群的應(yīng)用程序在訪問共享資源時都將會有幾分鐘的延遲,而這會使得用戶量迅速減少。弱一致性和最終一致性在大規(guī)模分布式數(shù)據(jù)源中,例如Web中,隨處可見。好幾個成功的大型Web應(yīng)用(例如,eBay和Amazon)都顯示出樂觀的(optimistic)弱一致性要比傳統(tǒng)悲觀的(pessimistic)機制在擴展性方面好得多。本文將一窺八種不同的隔離級別。學會適當?shù)姆艑挃?shù)據(jù)一致性的約束,你可以在自己的應(yīng)用程序中使用這八種隔離級別來獲得更好的性能和可擴展性。

并發(fā)控制的主要目標是為了確保事務(wù)被隔離且不會影響到其他事務(wù)。要達到高級別的隔離需以犧牲性能為代價。并發(fā)控制可以用悲觀或者樂觀的機制來實現(xiàn)。大部分關(guān)系型數(shù)據(jù)庫都使用了悲觀機制來實現(xiàn)寫入優(yōu)化。悲觀機制采用了鎖,通過使用鎖它可以阻塞一些操作或者進行某些形式的沖突檢測。當一個表格,頁面或是行被修改后,悲觀機制中的鎖可以用來阻塞其他潛在的訪問修改資源的事務(wù)。然而,樂觀機制并不采用任何鎖,它僅僅依賴于沖突檢測來維護事務(wù)隔離。樂觀機制采用的沖突檢測可以允許所有的讀操作,并在事務(wù)結(jié)束時檢驗其一致性。如果檢測到?jīng)_突,那么事務(wù)會進行回滾或重做。大部分web服務(wù)器都是讀入優(yōu)化,因此使用了樂觀機制。通過允許所有的讀入操作,樂觀機制既可以保證很高的讀寫吞吐量,也可以在資源不是一直改變的情況下保證數(shù)據(jù)的一致性。

下面列出的隔離級別是用來幫助Web開發(fā)人員更好的理解他們編程模型中放置的約束,幫助系統(tǒng)架構(gòu)師和開發(fā)人員共同討論如何在保持必要的數(shù)據(jù)完整性的同時選擇最有效的隔離級別。它們按照最少隔離(未提交讀)到最多隔離(串行化)的順序列出。

1、未提交讀(Read Uncommitted)

未提交讀隔離級別需要事務(wù)間很少的隔離。每一個讀操作都能看到事務(wù)中等待的寫操作(臟讀)。然而已經(jīng)提交的寫操作必須要有一個串行順序來防止臟寫。悲觀機制會阻塞有沖突的寫操作直到其他寫操作已經(jīng)被提交或已經(jīng)回滾。樂觀機制不會鎖住這些操作,它會允許所有的操作都通過。如果一個連接進行了回滾,那么接下來修改同一塊數(shù)據(jù)的其他操作也會被回滾。在這種級別中,共享緩沖可以不加驗證的進行使用。這種隔離級別最好在不需要事務(wù)(比如只讀的數(shù)據(jù)集),或者事務(wù)只在獨占數(shù)據(jù)庫時才修改的情況下使用。

例子:一個只在離線情況下更新的檔案數(shù)據(jù)庫,或者不在事務(wù)中使用的審核/登陸(audit/logging)表。

2、已提交讀(Read Committed)

已提交讀可以讀取系統(tǒng)中任何已經(jīng)提交的狀態(tài),并且可以不加驗證(混合狀態(tài))的進行緩沖,只需當前連接中發(fā)生的改變能夠反映到結(jié)果中即可。悲觀機制將其實現(xiàn)為單調(diào)視圖。樂觀事務(wù)則隔離存儲所有的改動,使得它們直到提交后才可用。讀已提交使用一個非常樂觀的機制,它推遲寫入所有的變化直到事務(wù)被提交為止。這種形式的樂觀隔離可以在不阻塞讀操作的情況下實現(xiàn)復雜的寫入操作,并且它沒有驗證模式。共享緩沖只能在已提交的狀態(tài)中使用。這種隔離級別最好在結(jié)果可以使用舊值,且事務(wù)只能用于寫入操作的情況下使用。

例子:一個不必顯示當前最新帖子的在線論壇,且它的帖子間數(shù)據(jù)不相沖突。

3、單調(diào)視圖(Monotonic View )

單調(diào)視圖是對讀已提交的一個擴展,它其中的事務(wù)在執(zhí)行時會觀察數(shù)據(jù)庫中一個單調(diào)上升的狀態(tài)。在這種級別中,如果有明顯的寫入事務(wù),那么悲觀事務(wù)會在讀入操作中被阻塞。樂觀事務(wù)會像在讀已提交中一樣操作,隔離保存所有的改動,并且會驗證它們的緩沖以確保其仍然合法。這種級別可以定期地同步數(shù)據(jù)庫副本,且最好在不需要事務(wù)或者僅存在寫操作事務(wù)的情況下使用。

例子:一個僅能由一個人來修改的用戶偏好表。

4、快照讀取(Snapshot Reads)

快照讀取擴展了單調(diào)視圖,它可以保證查詢結(jié)果都能反映到數(shù)據(jù)庫一致的快照中。悲觀機制會在讀操作時阻礙其他影響結(jié)果的寫入操作。樂觀機制則允許其他的寫入操作,并通知讀取事務(wù)某部分已經(jīng)發(fā)生改變并進行回滾。想要實現(xiàn)一個樂觀機制,必須在讀操作結(jié)束之前驗證是否有什么并行的寫入操作修改了結(jié)果,如果有的話,那么結(jié)果可能會重做或回滾。這個檢驗過程可能只是簡單的檢查同一張表中是否出現(xiàn)了寫入操作,或者只是檢查改動的查詢結(jié)果。樂觀隔離級別可以很輕松地檢測出沖突,并且在允許并發(fā)讀入操作的過程中,支持寫入操作。這種級別只要能夠讀取到快照,便可以定期地同步數(shù)據(jù)庫副本。最好在寫入操作很少,不想與讀入操作沖突,且查詢結(jié)果需要一致性的時候使用這種隔離級別。

例子::一個查詢比修改頻繁,且只保留最新值的貨幣換位表或者查詢表。

5、游標穩(wěn)定性(Cursor Stability)

游標穩(wěn)定性隔離擴展了讀已提交,并且是許多關(guān)系型數(shù)據(jù)默認的隔離級別。在這種隔離級別中,悲觀事務(wù)如果在一個單獨的語句中執(zhí)行的話,必須得指定它將修改的記錄。這通常可以在"SELECT"查詢后附加“FOR UPDATE”關(guān)鍵字來實現(xiàn)。在這種情況下,其他沖突的讀寫悲觀事務(wù)都將被阻塞直到該事務(wù)結(jié)束為止。樂觀事務(wù)會跟蹤提交時被驗證的所有修改記錄/實體的版本號。這是一種很流行的樂觀隔離級別,因此被所有的主流對象關(guān)系映射庫支持。在Java持久性API中,可以使用FLUSH_ON_COMMIT(盡管查詢可能不影響本地改動)來接近達到這種級別,且如果檢測到?jīng)_突的話,可以拋出OptimisticLockException 異常。這種隔離也同樣可以用在HTTP頭域的If-Match或者 If-Unmodified-Since中,它可以用來在更新前對比上一個資源的版本或者時間戳。這種級別最好在實體由外部信息(不從數(shù)據(jù)庫中讀取)更改,或者改動不會彼此覆蓋的情況下使用。

例子:一個共享的公司目錄或者一個wiki。

6、可重復讀取(Repeatable Read)

可重復讀取級別擴展了游標穩(wěn)定性,它保證事務(wù)內(nèi)的任何數(shù)據(jù)在事務(wù)過程中都不會被修改或者移除。悲觀事務(wù)需要讀取所有記錄上的鎖,并阻塞其他服務(wù)來修改這些記錄。樂觀事務(wù)則會跟蹤所有的記錄或者實體,并檢查它們是否在提交時被修改過。這種級別最好在實體狀態(tài)能夠影響其他實體,或者事務(wù)由讀寫操作構(gòu)成的情況下使用。

例子:一個訂單跟蹤數(shù)據(jù)庫,它從一個實體中讀取值并用它來計算其他的實體值。

7、快照隔離(Snapshot Isolation)

快照隔離擴展了快照讀取和可重復讀取,它保證事務(wù)中所有進行的讀操作都能看到數(shù)據(jù)庫中一致的快照。事務(wù)執(zhí)行的的任何讀操作都會有相同的結(jié)果,而不管它們在事務(wù)中執(zhí)行的早晚。這和可重復讀取不同,因為快照隔離能夠防止幻讀(查詢結(jié)果不斷變化)。許多關(guān)系型數(shù)據(jù)庫采用多版本并發(fā)控制(也可以叫做 SERIALIZABLE)來支持這種級別,實現(xiàn)方法是通過鎖和沖突檢測的組合。在這種級別中,考慮到它可能與悲觀機制或者樂觀機制相沖突,因此事務(wù)一定要做好回滾的準備。悲觀機制會通過鎖住資源來嘗試減少沖突的機會,但是必須在事務(wù)提交后將這些改動合并。樂觀機制也會使用多版本并發(fā)控制,但是它不會阻塞其他可能產(chǎn)生潛在沖突操作的事務(wù),反而是將沖突的事務(wù)進行回滾。這種級別的隔離最好在事務(wù)可以讀取和修改多個記錄的情況下使用。

例子:一個基于系統(tǒng)狀態(tài)規(guī)則的工作流系統(tǒng)。

8、可串行性(Serializability)

串行性是快照隔離的擴展,它要求所有的事務(wù)都必須一個接著一個的出現(xiàn),就好比它們被串行化過一樣。悲觀機制需要鎖住所有評估過的查詢,以防止寫入操作影響這些結(jié)果。而樂觀機制則跟蹤所有評估過的查詢,并在事務(wù)結(jié)束時使用一個后向驗證或前向驗證的模式來檢查是否有并行寫入操作影響了并行讀入操作,如果有的話,它會將沖突事務(wù)外的所有事務(wù)進行回滾。在這種隔離級別中,任何提交事務(wù)都不會改變系統(tǒng)的表征狀態(tài)。最好在需要完整數(shù)據(jù)一致性的情況下使用這個級別的隔離。

例子:一個進行范圍查詢來計算新值的賬目系統(tǒng)。

總結(jié)

下面是本文提到的隔離級別的匯總表,它可以幫助你找到最適合你應(yīng)用程序的級別。

事務(wù)在不同隔離級別中可能的沖突類型:

  臟寫 臟讀 混合狀態(tài) 不一致讀 覆寫 不可重復 幻讀 不一致性
未提交讀 不可以 可以 可以 可以 可以 可以 可以 可以
已提交讀 不可以 不可以 可以 可以 可以 可以 可以 可以
單調(diào)視圖 不可以 不可以 不可以 可以 可以 可以 可以 可以
快照讀取 不可以 不可以 不可以 不可以d 可以 可以 可以 可以
游標穩(wěn)定性 不可以 不可以 可以 可以 不可以 可以 可以 可以
可重復讀取 不可以 不可以 可以 可以 不可以 不可以 可以 可以
快照隔離 不可以 不可以 不可以 不可以 不可以 不可以 不可以 可以
可串行性 不可以 不可以 不可以 不可以 不可以 不可以 不可以 不可以

不同隔離級別的最佳前提:

  緩沖 數(shù)據(jù)同步 樂觀沖突模式 建議操作 例子
未提交讀 允許緩沖 間歇的 檢測臟寫 不能并發(fā)讀寫 檔案
已提交讀 允許緩沖 間歇的 沒有沖突檢測 單調(diào)的讀/寫 Web論壇
單調(diào)視圖 必須被驗證 周期的 沒有沖突檢測 組合讀入 用戶偏好
快照讀取 必須被驗證 周期的 對比讀入與修改內(nèi)容 一致性讀入 查詢表
游標穩(wěn)定性 允許緩沖 間歇的 對比修改的實體版本 CRUD服務(wù) 目錄
可重復讀取 允許緩沖 間歇的 對比讀入的實體版本 讀/寫實體 訂單跟蹤
快照隔離 必須被驗證 周期的 對比讀入的實體版本 同步實體 工作流
可串行性 必須被驗證 完整同步 對比查詢與修改內(nèi)容 完善數(shù)據(jù)一致性 賬目

數(shù)據(jù)一致性在數(shù)據(jù)庫應(yīng)用程序中至關(guān)重要-它允許開發(fā)者在分布式環(huán)境下使用數(shù)據(jù)。盡管強一致性級別如可串行性提供了一個簡單的編程模型,但是它們會導致開銷 過大,操作阻塞或者事務(wù)回滾,這對于很多應(yīng)用程序來說都是不必要的。如果有其他問題的話,可以使用更加適當?shù)母綦x級別來幫助開發(fā)人員和系統(tǒng)架構(gòu)師,讓他們 在保持性能和開銷平衡的前提下更好的理解數(shù)據(jù)一致性的需求。

查看英文原文:Eight Isolation Levels Every Web Developer Should Know

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲成在人线av| 久久躁狠狠躁夜夜爽| 久久精品欧美日韩| 99国内精品久久| 免费久久99精品国产自| 国产亚洲午夜高清国产拍精品| 亚洲精品一区二区三区樱花| 久久综合给合| 日韩一区二区久久| 欧美国产视频日韩| 亚洲激情在线观看| 欧美激情亚洲国产| 久久久水蜜桃| 伊人狠狠色丁香综合尤物| 午夜精品短视频| 亚洲免费精彩视频| 欧美日韩亚洲国产精品| 99国产精品国产精品毛片| 亚洲第一精品福利| 女仆av观看一区| 亚洲黄色av| 亚洲国产婷婷| 欧美三级小说| 欧美一区二视频| 欧美一区二区三区免费在线看| 国产日韩一级二级三级| 久久精精品视频| 久久精品国产亚洲一区二区| 国内精品美女在线观看| 免费久久精品视频| 蜜桃av综合| 亚洲精品一区二区三区樱花| 亚洲精品中文在线| 国产精品社区| 久久伊人免费视频| 久久精品综合| 亚洲免费观看在线观看| 一本一本大道香蕉久在线精品| 欧美日韩在线精品| 亚洲欧美电影院| 久久精品国产91精品亚洲| 一区精品久久| 日韩视频一区二区三区在线播放 | 国产综合精品| 免费不卡欧美自拍视频| 欧美母乳在线| 久久精品亚洲一区二区三区浴池| 久久国产精品亚洲va麻豆| 亚洲激情在线播放| 日韩亚洲欧美精品| 黑丝一区二区三区| 亚洲欧洲三级| 国产欧美日韩不卡免费| 欧美激情第一页xxx| 欧美日韩天堂| 免费视频最近日韩| 国产精品日韩一区二区| 欧美激情按摩| 国产日韩欧美在线播放| 亚洲精品一区二区三区四区高清 | 日韩一级不卡| 欧美在线视频在线播放完整版免费观看| 国产在线欧美| 亚洲视频福利| 伊人久久亚洲热| 在线一区二区视频| 亚洲色图自拍| 欧美日韩亚洲一区二区| 亚洲人成网站在线播| 亚洲高清电影| 免费观看欧美在线视频的网站| 久久精品系列| 国外成人在线| 久久久夜夜夜| 欧美国产三区| 亚洲九九九在线观看| 欧美精品一区二区三区一线天视频 | 国产精品亚洲视频| 在线亚洲一区| 欧美一区二区视频97| 国产亚洲精品bt天堂精选| 午夜精品久久久久99热蜜桃导演| 欧美一级免费视频| 国产日韩亚洲| 久久亚洲视频| 亚洲韩日在线| 亚洲一区二区三区色| 国产精品电影观看| 欧美一级免费视频| 欧美aⅴ一区二区三区视频| 91久久国产综合久久| 欧美喷水视频| 亚洲欧美色一区| 玖玖玖国产精品| 亚洲精品影院| 国产精品亚洲综合久久| 久久激情婷婷| 亚洲人成高清| 午夜激情亚洲| 亚洲国产成人精品女人久久久| 女生裸体视频一区二区三区| 99re国产精品| 久久久久欧美精品| 99国产精品久久久| 国产日韩一区二区三区在线播放| 久久这里只精品最新地址| 亚洲欧洲日夜超级视频| 久久av资源网站| 91久久午夜| 国产亚洲毛片| 欧美日韩视频在线一区二区 | 欧美国产日本高清在线| 亚洲一区成人| 亚洲国产精品999| 国产精品99一区| 老司机aⅴ在线精品导航| 一区二区三区视频在线| 欧美成人资源| 亚洲欧美日韩成人| 99re66热这里只有精品3直播 | 欧美一区在线直播| 亚洲人成久久| 玖玖精品视频| 羞羞答答国产精品www一本| 亚洲精品国产精品久久清纯直播| 国产精品欧美日韩一区二区| 美国三级日本三级久久99| 先锋亚洲精品| 一区二区三区视频观看| 亚洲国产一区二区三区高清| 久久久777| 欧美与黑人午夜性猛交久久久| 日韩视频中文| 亚洲欧洲日本国产| 在线观看亚洲视频| 国产网站欧美日韩免费精品在线观看| 欧美精品自拍| 欧美激情亚洲国产| 美国成人毛片| 蜜桃精品一区二区三区| 久久乐国产精品| 欧美一区二区三区四区视频| 亚洲免费在线视频| 亚洲午夜在线观看| 一区二区国产日产| 99在线精品观看| 亚洲美女电影在线| 亚洲精品护士| 亚洲精品在线三区| 亚洲国产一区二区三区a毛片| 欧美freesex8一10精品| 乱中年女人伦av一区二区| 久久精品成人| 久久综合国产精品| 久久影院午夜论| 乱中年女人伦av一区二区| 美日韩在线观看| 麻豆成人av| 欧美jizz19性欧美| 亚洲国产欧美在线人成| 亚洲黄色免费网站| 亚洲日韩第九十九页| 日韩视频免费观看| 亚洲一本视频| 欧美综合国产| 牛牛精品成人免费视频| 欧美精品首页| 国产精品伦子伦免费视频| 国产情人节一区| 激情久久中文字幕| 亚洲欧洲一区二区三区久久| av成人黄色| 欧美专区中文字幕| 女女同性精品视频| 99精品视频免费观看视频| 午夜精品久久久| 欧美www视频| 国产精品日日摸夜夜添夜夜av| 国产一区二区三区免费观看| 亚洲国产中文字幕在线观看| 一区二区三区日韩欧美| 久久精品国产v日韩v亚洲| 亚洲福利视频网| 亚洲一区观看| 欧美刺激午夜性久久久久久久| 欧美日一区二区在线观看| 国产精品资源| 最新亚洲激情| 午夜国产精品视频免费体验区| 你懂的国产精品永久在线| av成人老司机| 久久亚洲综合色| 国产精品午夜久久| 亚洲福利专区| 欧美一区三区二区在线观看| 亚洲国产成人精品久久| 亚洲欧美一区二区三区在线| 欧美电影免费观看高清完整版| 国产精品午夜在线观看| 精品二区视频|