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

MySQL Group Replication Multi-Primary 模式,你真的理解么?

數據庫 MySQL
MySQL Group Replication Multi-Primary 是目前為止關系型數據庫最偉大的產品,但很多同學并不能充分發揮其優勢。

MySQL 數據庫支持傳統的四大事務隔離級別,即 Read Uncommitted(RU)、Read Committed(RC)、Repeatable Read(RR)、Serializable(SRZ)。

然而,對于 MySQL Group Replication Multi-Primary 模式,嚴格來說他的事務隔離級別是快照事務隔離級別(Snapshot Isolation,下簡稱:SI)。

今天,姜老師來聊聊數據庫的快照事務隔離級別。

Snapshot Isolation 概述

很多 DBA 同學在面試的時候會被問到事務的隔離級別,然后會說Read Uncommitted、Read Committed、Repeatable Read、Serializable。

是的,但這四大事務隔離級別的定義姜老師更喜歡稱其為古典事務隔離級別,即 ANSI SQL 92 定義的事務隔離級別。

ANSI SQL 92 定義的事務隔離級別依次解決 Dirty Read(臟讀),Repeatable Read(不可重復讀)、Phatom(幻讀)。

在當時的學術界,認為只要解決了這三個問題,那么事務就是具有真正的隔離性。

最終推導出具有兩階段加鎖的 Serializable 事務隔離級別可以保證完整的隔離性。

The fundamental serialization theorem is that well-formed two-phase locking guarantees serializability.

但是!后來 Hal Berenson、Jim Gray 他們在 1995 年發表了一篇新的論文《A critique of ANSI SQL Isolation levels》[1],用來批判 ANSI SQL的事務隔離級別。

在論文的摘要中,可以看到如下內容:

ANSI SQL-92 [MS, ANSI] defines Isolation Levels in terms of phenomena: Dirty Reads, Non-Repeatable Reads, and Phantoms. This paper shows that these phenomena and the ANSI SQL definitions failto characterize several popular isolation levels, including the standard locking implementations of the levels. Investigating the ambiguities of the phenomena leads to clearer definitions; in addition new phenomena that better characterize isolation types are introduced. An important multiversion isolation type, Snapshot Isolation, is defined.

在論文的總結部分,可以看到如下內容:

In summary, there are serious problems with the original ANSI SQL definition of isolation levels.

可以說,這篇論文應該基本上把 Jim Gray 在自己書中 《Transaction Processing: Concepts and Techniques》[2],對于事務隔離級別的定義進行”徹頭徹尾“的批判。

論文的大意是除了 ANSI SQL 定義的三種并發問題,還有其他并發問題,如 Lost Update(P4)、Read Skew(A5A)、Write Skew(A5B)、New Phantom(A3B)等。

之前定義的事務隔離級別,除了 SRZ,都無法解決。

然后論文引出了新的事務隔離級別 SI ,相比之前除了 SRZ,SI 有著更好的隔離性。

Such applications will find Snapshot Isolation better behaved than either: it avoids the lost update anomaly, some phantom anomalies (e.g., the one defined by ANSI SQL),it never blocks read only transactions, and readers do not block updates.

為了簡潔說明,這里僅舉例 Read Skew 的問題,看下面的測試用例:

可以看到事務 T1 讀取到了事務T2修改后的數據,因此不符合隔離性的要求。但是這個場景不在 ANSI SQL 定義的 Dirty Read,Repeatable Read、Phatom 范疇內。上述場景就是論文中定義的 Read Skew:

A5A Read Skew Suppose transaction T1 reads x, and then a second transaction T2 updates x and y to new values and commits. If now T1 reads y, it may see an inconsistent state, and therefore produce an inconsistent state as output. In terms of histories, we have the anomaly:

A5A: r1[x]...w2[x]...w2[y]...c2...r1[y]...(c1 or a1)

在 RC、RR 隔離級別下,是無法解決上述問題的,只有通過設置隔離級別為 SRZ。

但是 SRZ 隔離級別需要遵循兩階段加鎖,即對每條讀取到的記錄加鎖,可能會被寫操作堵塞,因此使用 SRZ 隔離級別后,數據庫并發性能較差。

然而, SI 事務隔離級別不會有 Read Skew問題,同時讀取操作也不會阻塞變更操作。

簡單來說,SI 有著更好的隔離性,以及比 SRZ 更好的性能,甚至可以比肩 RC 事務隔離級別。

BTW,論文中談及的 (Basic)SI 隔離級別也沒有解決 Write Skew 的問題。

但是在之后的論文《Serializable isolation for snapshot databases》[3], SSI (Serializable Snapshot Isolation) 徹底達到了事務隔離性的要求。

Snapshot Isolation 實現原理

論文《A critique of ANSI SQL Isolation levels》對于 SI 的實現原理做了大致介紹,原理還是非常簡單的,主要是以下幾個主要過程:

(1)事務T1讀取第一條記錄時,分配一個 Start-Timestamp ,這個值是單調遞增的;

(2) 任何事務修改的記錄會被寫入到快照中,以便事務需要訪問這些歷史記錄版本;

(3) 當事務T1提交時,會獲得一個 Commit-Timestamp 。事務 T1 能提交的前提是不存在其他事務T2,修改事務 T1 中的變更的任何一條記錄。原文:

The transaction successfully commits only if no other transaction T2 with a Commit-Timestamp in T1’s execution interval [Start-Timestamp, Commit-Timestamp] wrote data that T1 also wrote.

(4) 若事務提交時存在沖突,哪個事務先提交,則提交成功,這個機制稱為:First-committed-wins。

從上面的實現原理看,SI 本質是一種樂觀鎖的機制,讀不會因為寫操作而阻塞,寫只有在提交時才會進行沖突檢測。

所以,若每個事務絕大部分情況下更新的記錄都不沖突,則 SI 隔離級別有著極好的性能表現,也就是前面說的性能不輸 RC。

那么,SI 就完美無缺了么?它的缺點是什么呢?

其實在生產環境中,他的缺點是比較致命的。

一方面,他需要假設事務絕大部分情況下更新的記錄都不沖突,若存在熱點,如類似秒殺這樣的場景,則 SI 的性能會嚴重退化。

另一方面,對于每條記錄的快照需要保存在內存中,以類似 RowVersion + Start-Timestamp 的形式存在。如若存在大事務,則需要較大的內存使用。因此,支持 SI 隔離級別的數據庫,如 PostgreSQL 數據庫,需要設置使用 SSI 隔離級別的內存使用量。當然,這個問題新版本 PG 貌似已經解決[3]。

MGR 與 SI

講了這么多 SI 的知識點,其實現在大家就會發現 MGR Multi-Primary 模式的隔離級別本質是 SI。

首先,雖然 MGR Multi-Primary 模式是 Share Nothing 的架構,但其允許在多個節點中并發寫入數據,我們要將 MGR 集群看成一個大的數據庫實例。

其次,MGR Multi-Primary 模式是一種樂觀鎖機制,多個事務在并發提交的時,會在各節點上進行全局沖突檢測。若存在事務之間有更新同一行的記錄情況,則回滾事務。沖突檢測的原理是基于WriteSet,回滾的原則依然遵循 First-committed-wins。

最后,MGR 需要嚴格控制事務大小,當事務太大時,Certification_info 會占用大量的內存,從而導致系統的不穩定。參數 group_replication_transaction_size_limit 用于控制事務大小,類似對于 SI 隔離級別內存使用上限的控制。

MySQL 源碼也有對 SI 實現的簡單說明:

總結來說,以前單實例數據庫的 SI 隔離級別,事務提交時的沖突檢測僅在單個進程中完成。

但對于 MGR Multi-Primary 這樣的集群來說,事務交前,會通過 Paxos 協議發送 Certification_info 到 MGR 中的每個節點,然后再進行沖突檢測。

其中,Certification_info 是一個map,由 <WriteSet、GTID>組成。

typedef std::unordered_map<std::string, Gtid_set_ref *> Certification_info;

再次提醒,對于 SI 事務隔離級別來說,提交時可能會失敗。

即在 MGR Multi-Primary 模式下,正常的提交可能失敗!!!

ERROR 3101 (HY000) at line 4: Plugin instructed the server to rollback the current transaction.

一方面,在 MGR 中,事務提交失敗并不代表數據庫發生了故障,業務需要有重試邏輯(理解樂觀鎖機制)。

另一方面,業務側一定要做好對于上述錯誤碼的監控,如果很多,則表示你的 MGR Multi-Primary 模式使用姿勢存在很大的問題。

總結

MySQL Group Replication Multi-Primary 是目前為止關系型數據庫最偉大的產品,但很多同學并不能充分發揮其優勢。

這就如拿著特斯拉 Model S 當燃油車去跑賽道,最后分數肯定不理想。

所以,理解 SI 隔離級別,是理解 MySQL Group Replication Multi-Primary 的第一步,也是充分發揮 MGR 全面潛力的第一步。

MGR,你準備好了么?

參考文獻:

[1]. https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/tr-95-51.pdf

[2]. J. Gray and A. Reuter, “Transaction Processing: Concepts and Techniques”

[3]. https://courses.cs.washington.edu/courses/cse444/08au/544M/READING-LIST/fekete-sigmod2008.pdf

[4]. https://drkp.net/papers/ssi-vldb12.pdf

責任編輯:武曉燕 來源: InsideMySQL
相關推薦

2017-01-26 20:48:14

MySQL復制MySQL程序壓縮

2019-08-27 08:24:17

簡歷技能工作

2018-07-01 08:34:09

緩存數據服務

2021-04-23 07:27:31

內存分配CPU

2018-10-07 06:30:40

代碼設計模式面向對象原則

2022-01-05 12:03:48

MySQL索引數據

2020-06-29 08:32:21

高并發程序員流量

2017-03-16 13:38:02

MySQLMGR

2009-05-18 10:57:35

.NETString特性

2018-03-21 16:19:40

MVCMVPMVVM

2018-11-20 09:37:19

Java內存模型

2018-08-20 08:30:05

Kafka架構系統

2022-04-01 17:32:00

Windows3.1元宇宙模式黑客

2021-09-08 07:49:35

Dubbo連接控制

2019-12-18 15:11:42

數組集合數據

2018-06-29 08:36:50

2018-07-05 14:25:01

TCP握手原理

2021-03-12 07:52:08

主機主從復制

2024-10-16 17:10:41

2021-11-26 08:07:16

MySQL SQL 語句數據庫
點贊
收藏

51CTO技術棧公眾號

欧美老女人性生活视频| www..com日韩| 97人妻精品一区二区三区| 色97色成人| 日韩视频123| 大j8黑人w巨大888a片| 欧美午夜黄色| 蜜桃久久久久久| 欧美疯狂性受xxxxx另类| 国产一级二级视频| www.久久| 亚洲图片欧美一区| 色婷婷精品国产一区二区三区| 国产又粗又长又大视频| 国语自产精品视频在线看8查询8| 亚洲欧美日韩图片| 午夜免费视频网站| 亚洲欧美韩国| 亚洲蜜桃精久久久久久久| 久久99九九| 一区二区的视频| 亚洲欧洲一区| 久久精品99久久香蕉国产色戒| 91精品又粗又猛又爽| 日韩精品第一| 欧美日韩国产在线看| www亚洲国产| 激情福利在线| 不卡视频一二三| 成人在线激情视频| 毛片在线免费播放| 国产精品入口| 欧美国产日韩在线| 国产亚洲精品久久久久久豆腐| 天堂俺去俺来也www久久婷婷| 91精品国产一区二区| 精品www久久久久奶水| 高清电影在线观看免费| 亚洲欧美综合在线精品| 日韩片电影在线免费观看| 熟妇人妻系列aⅴ无码专区友真希 熟妇人妻av无码一区二区三区 | 一本大道久久a久久综合| 国产精品视频二| 蜜桃视频网站在线| 日本一区二区免费在线观看视频| 久久精品美女| 人妻无码一区二区三区久久99| 老司机精品视频一区二区三区| 欧日韩不卡在线视频| 五月天婷婷网站| 欧美激情五月| 欧美成人免费一级人片100| 丁香激情五月少妇| 奇米色欧美一区二区三区| 日韩成人在线播放| 欧美xxxxx精品| 哺乳挤奶一区二区三区免费看| 91麻豆精品国产91久久久资源速度 | 最新97超碰在线| 久久久精品中文字幕麻豆发布| 精品久久久久久亚洲| 婷婷在线免费观看| 成人免费看的视频| 国产日韩欧美精品| 视频二区在线观看| 99精品偷自拍| 欧美三级网色| av在线资源网| 亚洲视频在线一区| 免费看日b视频| 牛牛精品在线| 亚洲v精品v日韩v欧美v专区| 日韩小视频网站| jizz一区二区三区| 欧美日韩国产精品一区二区不卡中文| 9久久9毛片又大又硬又粗| 绿色成人影院| 91成人网在线| 一本一道久久a久久综合蜜桃| 91精品国产一区二区在线观看 | 亚洲欧美aaa| 久久女人天堂| 日韩欧美国产高清| 完美搭档在线观看| 精品久久精品| 久久精品一偷一偷国产| 久久久精品视频在线| 国产日韩一区| 国产精品三级在线| 精品国自产拍在线观看| 99久久国产免费看| 亚洲精品国产一区| 欧美日韩经典丝袜| 色视频成人在线观看免| 婷婷激情5月天| 久久综合社区| 深夜福利日韩在线看| 青娱乐在线视频免费观看| 国产精品日本| 国产日韩在线一区| 人人妻人人澡人人爽久久av| 国产视频911| 在线观看成人免费| 高潮在线视频| 欧美日韩视频在线一区二区| 国产精品日日摸夜夜爽| 国产一区二区三区四区二区 | 久久99欧美| 日韩子在线观看| 亚洲r级在线视频| 在线观看免费视频高清游戏推荐| 亚洲一区二区免费在线观看| 亚洲色图综合久久| 久久久久久久黄色| 蜜桃久久av一区| 国产精品入口免费| 欧美成人视屏| 在线视频欧美精品| 制服丝袜av在线| 久久精品国产www456c0m| 久久久久久久97| 国产一区二区在线播放视频| 波多野结衣在线aⅴ中文字幕不卡 波多野结衣在线一区 | a级片一区二区| 欧美极度另类| 亚洲国产美女久久久久| 永久免费看片直接| 日韩综合小视频| 国内视频一区二区| 在线网址91| 在线电影院国产精品| 国产手机在线观看| 西西裸体人体做爰大胆久久久| 91免费看网站| 精品视频在线一区二区| 欧美视频三区在线播放| 少妇户外露出[11p]| 黄色国产精品| 99久久无色码| 最新av在线播放| 9191国产精品| 神马久久精品综合| 久久精品99国产精品日本| 色大师av一区二区三区| 韩国主播福利视频一区二区三区| 精品99一区二区三区| 久久久久久久久久网站| 狠狠色丁香婷婷综合| 伊人狠狠色丁香综合尤物| 中文字幕系列一区| 亚洲无限av看| 中文字幕免费视频观看| 国产视频一区二区在线观看| 免费av网址在线| 偷拍一区二区| 国产69精品久久久久久| 亚洲色图21p| 欧美午夜女人视频在线| 成人乱码一区二区三区av| 校园激情久久| 色综合影院在线观看| 久久人体av| 久久伊人91精品综合网站| 国产免费无遮挡| 1024成人网色www| 欧美午夜精品理论片| 欧美精品入口| 精品国产一区二区三区四区vr| 免费看男女www网站入口在线| 亚洲精品福利在线观看| 天码人妻一区二区三区在线看| 久久综合五月天婷婷伊人| 色诱视频在线观看| 精品视频免费在线观看| 国产精品一区二区久久久| 国产一区二区三区福利| 欧美猛男超大videosgay| 久久久久久视频| 丁香五精品蜜臀久久久久99网站| 日本免费a视频| 丝袜连裤袜欧美激情日韩| 国产精品爱久久久久久久| 午夜视频在线观看网站| 在线观看91av| 亚洲精品国产精品乱码| 国产亚洲欧美日韩日本| 亚洲精品综合在线观看| 精品白丝av| 先锋影音网一区| 一区二区三区国产好| 日本久久久久久久久| 免费黄色在线| 精品国产乱码91久久久久久网站| 亚洲熟妇无码乱子av电影| 国产精品免费网站在线观看| 日本少妇xxx| 美女久久一区| 国产福利片一区二区| 免费观看成人www动漫视频| 国产精品99久久99久久久二8| 理论片午午伦夜理片在线播放| 精品日韩在线一区| 久久精品国产亚洲av麻豆蜜芽| 亚洲情趣在线观看| 强伦人妻一区二区三区| 国产成人精品午夜视频免费| 成人午夜视频免费在线观看| 香蕉精品视频在线观看| 裸模一区二区三区免费| 精品久久免费| 国产第一区电影| 日本小视频在线免费观看| 国产亚洲欧美日韩精品| 国产91久久久| 717成人午夜免费福利电影| 在线能看的av| 一区二区三区**美女毛片| 中文字幕免费视频| 成人精品国产免费网站| 亚洲一级片av| 日韩和欧美一区二区三区| 国产黄色片免费在线观看| 999国产精品| 欧美一级爱爱| 色婷婷综合久久久久久| 国产福利久久| 精品国产亚洲一区二区三区| 国产精品xxx视频| 松下纱荣子在线观看| 欧美不卡视频一区发布| 在线激情小视频| 国产亚洲精品久久久久久牛牛 | 国产精品19乱码一区二区三区| 中文字幕国产一区二区| 无码熟妇人妻av| 成人黄色在线网站| 免费欧美一级片| 精品一二三四区| 一区二区在线播放视频| 性欧美暴力猛交另类hd| 欧美日韩黄色一级片| 亚洲手机视频| 小泽玛利亚av在线| 91高清一区| 福利网在线观看| 婷婷久久一区| av不卡在线免费观看| 久久亚洲精品中文字幕蜜潮电影| 日韩国产在线一区| 精品毛片免费观看| 日本最新一区二区三区视频观看| 老牛精品亚洲成av人片| 国产精品亚洲不卡a| 国产精品调教视频| 国产美女精品在线观看| 国产欧美啪啪| 精品国产一区二区三| 日韩手机在线| 欧美日韩亚洲一区二区三区四区| 免费精品国产| 性高潮久久久久久久久| 99热国内精品| 丰满人妻一区二区三区53号 | 久久九九热免费视频| 国产一二区在线观看| 久久夜色精品国产欧美乱| а√天堂资源地址在线下载| 欧美精品午夜视频| 成人影院在线播放| 热re99久久精品国产66热| 欧美舌奴丨vk视频| 国产精品日韩在线播放| 国产精品99久久免费| 国产经典一区二区三区| 日韩手机在线| 五月天亚洲综合| 亚洲澳门在线| 五月丁香综合缴情六月小说| 亚洲影视综合| gogogo高清免费观看在线视频| 国产精品一区三区| 国产精品伦子伦| 国产精品剧情在线亚洲| 国产精品白丝喷水在线观看| 亚洲成人久久影院| 中文字幕在线天堂| 制服丝袜中文字幕亚洲| 日韩在线观看视频网站| 亚洲片在线资源| 爆操欧美美女| 日本精品免费观看| 国产剧情一区二区在线观看| 国产精品一区免费观看| 亚洲人成精品久久久| 亚洲精品在线视频观看| 狠狠综合久久| 天堂一区在线观看| 成人精品国产福利| 人妻无码一区二区三区免费| 亚洲一卡二卡三卡四卡 | 欧美人与性动交α欧美精品济南到 | 国产精品乱码视频| 国产不卡一区| 欧美中日韩在线| 欧美aⅴ一区二区三区视频| 日本少妇xxxx软件| 国产精品毛片大码女人| 在线观看黄网站| 日韩欧美亚洲国产精品字幕久久久| 青青草视频免费在线观看| 久久视频在线看| 日韩成人亚洲| 国产美女99p| 午夜精品国产| 亚洲一区日韩精品| 久久综合九色欧美综合狠狠| 久久久久久久久久久久国产| 欧美日韩一区二区不卡| 日韩大胆人体| 久久人91精品久久久久久不卡| 欧美另类激情| 午夜欧美性电影| 免费中文字幕日韩欧美| 亚洲麻豆一区二区三区| 日韩一区日韩二区| 中文字幕精品在线观看| 精品伊人久久97| av资源网在线播放| 国产成人看片| 激情久久久久| www.黄色网| 亚洲精品国产精华液| 91在线公开视频| 中日韩美女免费视频网址在线观看 | 免费久久99精品国产| 无码人妻精品一区二区三| 欧美韩国日本不卡| 无码日韩精品一区二区| 精品嫩草影院久久| 性欧美videoshd高清| 国产噜噜噜噜久久久久久久久| 国产成人tv| 久艹在线免费观看| 国产精品自产自拍| 杨钰莹一级淫片aaaaaa播放| 欧美中文字幕一区| 国产理论电影在线观看| 欧美专区中文字幕| 成人爽a毛片免费啪啪红桃视频| 黄色一级片av| 精品写真视频在线观看 | 色天天色综合| 日韩黄色短视频| 国产自产视频一区二区三区| 免费看91的网站| 日本韩国欧美三级| 成人精品一区二区| 国产成人av网址| 久久国产中文字幕| 欧美性猛交久久久乱大交小说| 99免费精品视频| 成人免费毛片男人用品| 亚洲精品一区二区三区不| 中文字幕成在线观看| 欧美日本韩国在线| 久久国产欧美日韩精品| 国产一区二区三区视频播放| 91国偷自产一区二区三区成为亚洲经典 | 卡通动漫国产精品| 青青在线免费观看| 91免费观看在线| 天干夜夜爽爽日日日日| 色偷偷88888欧美精品久久久| 韩国久久久久久| 欧美乱偷一区二区三区在线| 久久婷婷久久| 成人黄色免费网址| 欧美夫妻性生活| a级影片在线| 久久青青草综合| 老司机精品导航| 无码黑人精品一区二区| 日韩欧美一区二区免费| 成人性生交大片免费看网站| 日本不卡一区| 久久国产人妖系列| 日韩成年人视频| 亚洲免费视频网站| 综合久久伊人| 精品国产av无码一区二区三区| 久久蜜桃一区二区| 亚洲视频在线观看一区二区| 欧美成人精品在线播放| 欧美日韩中出| 熟女少妇在线视频播放| 中文字幕中文字幕中文字幕亚洲无线 | 免费在线视频你懂得| 国产精品久久二区| 欧美视频一区| 91精品人妻一区二区三区|