精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

国产高清免费观看| 国产高清一区二区三区四区| 日韩av毛片| 欧美一级视频免费观看| 97超碰在线免费| 国产欧美综合色| 91久久久在线| 国产精品视频123| 99久久夜色精品国产亚洲1000部| 精品粉嫩aⅴ一区二区三区四区| 欧美一级黄色片视频| sm国产在线调教视频| 99精品国产99久久久久久白柏| 国产精品三级网站| 亚洲黄色三级视频| 雨宫琴音一区二区三区| 亚洲欧美成人网| 国产人妖在线观看| 欧美一级做a| 色综合久久久网| www.在线观看av| 午夜精品一区| 国产视频一区在线观看| 国产呦系列欧美呦日韩呦| 国产美女明星三级做爰| 蜜臀久久99精品久久久久宅男 | 亚洲综合色一区| 亚洲经典视频| 欧美精品vⅰdeose4hd| 狠狠操精品视频| 精品极品在线| 婷婷五月在线视频| 亚洲欧美清纯在线制服| 欧美激情精品久久久久久黑人| 人与嘼交av免费| 亚州国产精品| 精品一区二区电影| 最近中文字幕无免费| 岛国成人av| 日韩欧美国产综合| 四川一级毛毛片| 国产精品777777在线播放| 精品婷婷伊人一区三区三| 五月天婷婷激情视频| xxxxx性欧美特大| 欧美视频在线视频| 浮妇高潮喷白浆视频| 国产自产自拍视频在线观看| 亚洲午夜久久久久久久久电影院 | 国内揄拍国内精品久久| 精品国产一区二区在线| 一区二区三区在线播放视频| 欧美va久久久噜噜噜久久| 中文精品99久久国产香蕉| 丁香花五月婷婷| 成人精品视频| 日韩一二三在线视频播| 国产黄色小视频网站| 亚洲国产日韩欧美在线| 久久视频在线视频| 免费人成年激情视频在线观看| 欧美精品一线| 国产69精品久久久久99| 国产精品一区无码| 久久综合五月| 国产专区欧美专区| 亚洲成人77777| av毛片久久久久**hd| 美乳视频一区二区| 成年人在线观看| 国产男男gay网站| 欧美aⅴ一区二区三区视频| 国产精品夜色7777狼人| 99久久夜色精品国产亚洲| 国产不卡高清在线观看视频| 精品国产综合区久久久久久| 黄色av网址在线免费观看| 中文字幕电影一区| 99久久久无码国产精品性色戒| 色女人在线视频| 欧美日韩一区二区精品| 深夜黄色小视频| 99精品国产一区二区三区2021| 日韩电影中文字幕av| 综合 欧美 亚洲日本| 女人天堂亚洲aⅴ在线观看| 久久免费少妇高潮久久精品99| 久久精品久久久久久久| 国产一区美女在线| 国产自产精品| 浪潮av一区| 精品色蜜蜜精品视频在线观看| 精品少妇无遮挡毛片| 日韩欧美中文在线观看| 亚洲精品综合久久中文字幕| 91高清免费观看| 午夜综合激情| 亚洲自拍小视频| 国内在线免费高清视频| 依依成人综合视频| 成人在线免费播放视频| 中文久久电影小说| 日韩中文字幕网站| 五月天婷婷激情| 国产乱码精品一品二品| 日韩福利二区| sqte在线播放| 91麻豆精品91久久久久久清纯| 中文字幕在线观看的网站| 91精品国产91久久久久久密臀| 日本久久久久久久久久久| xxxx18国产| 亚洲欧洲三级电影| 日本美女高潮视频| 久久黄色影视| 欧美大片免费看| 国产一区二区三区在线观看| 国产日韩亚洲欧美综合| 国产精品无码人妻一区二区在线| 91麻豆精品一二三区在线| 亚洲欧美日韩天堂| 精品成人免费视频| 国产精品一二二区| 中文字幕成人一区| 欧美影视资讯| 亚洲美女黄色片| 久久国产精品系列| yourporn久久国产精品| 伊人网在线免费| 24小时成人在线视频| 一区二区三区日韩在线| 91porny九色| 2023国产精品| 国产二区视频在线播放| 国偷自产视频一区二区久| 九九精品视频在线| hs视频在线观看| 亚洲男人电影天堂| 一级黄色免费毛片| 欧美久久九九| 97自拍视频| 欧美野外wwwxxx| 欧美成人一区二区三区| 国产极品美女在线| 国内成人精品2018免费看| 一区二区三区四区视频在线| 日本一区二区电影| 一区二区福利视频| 中文字幕乱码视频| 中文字幕日韩欧美一区二区三区| 国产原创精品在线| 91精品国产自产在线观看永久∴| 成人国产精品av| www.在线视频| 精品国产乱码久久久久久久 | 91精品久久久久久久久久入口| 午夜视频在线看| 91.成人天堂一区| 综合五月激情网| 粉嫩一区二区三区性色av| 精品无码国产一区二区三区av| 久久97精品| 日本不卡免费高清视频| 成人免费一区二区三区视频网站| 欧美日韩国产影片| 天天操天天操天天操天天操天天操| 国产自产2019最新不卡| 日韩一级片免费视频| 看全色黄大色大片免费久久久| 清纯唯美日韩制服另类| 91在线网址| 欧美一级片在线观看| 日本午夜精品理论片a级app发布| 26uuu国产在线精品一区二区| 日本xxxx黄色| 极品裸体白嫩激情啪啪国产精品| 久久精品99久久| 涩涩涩久久久成人精品| 欧美大片免费看| 国产三区四区在线观看| 这里只有精品视频在线观看| 日韩av片在线播放| 欧美国产日韩a欧美在线观看| 国产精品中文久久久久久| 国产情侣久久| 亚洲一区三区电影在线观看| 国产乱人伦精品一区| 国产精品久久久久77777| 亚洲区欧洲区| 亚洲人成网站在线播| а√天堂资源在线| 欧美日韩一区在线| www.av视频在线观看| 中文字幕欧美激情一区| 色哟哟无码精品一区二区三区| 免费在线观看一区二区三区| 97中文字幕在线| 欧美a级片视频| 欧美凹凸一区二区三区视频| 九九99久久精品在免费线bt| 欧美在线视频a| 日韩成人伦理| 日韩视频免费观看| 久久伊伊香蕉| 亚洲国产精品网站| 国产精品久久婷婷| 在线影视一区二区三区| 日本三级一区二区| 尤物视频一区二区| 日本中文在线视频| 国产午夜精品理论片a级大结局| 中文字幕99页| 国产一区二区美女诱惑| 另类小说第一页| 99精品国产99久久久久久福利| 欧洲精品视频在线| 欧美色女视频| 欧美久久在线| 欧美人与动xxxxz0oz| http;//www.99re视频| 电影一区二区三区久久免费观看| 国产精品露脸av在线| 伊人久久精品一区二区三区| 久久久久这里只有精品| 在线播放蜜桃麻豆| www.日韩不卡电影av| 国产精品久久久久久久龚玥菲| 日韩av在线网址| 人妻精品无码一区二区| 日韩欧美电影在线| 国产肥老妇视频| 欧美一级久久久久久久大片| 国产乱子伦精品无码码专区| 欧美日韩国产影片| 91禁在线观看| 欧美日本韩国一区二区三区视频 | 日韩精品一区二区三区在线| 99久久99久久久精品棕色圆| 717成人午夜免费福利电影| 中文字幕 自拍偷拍| 欧美亚洲国产怡红院影院| 日韩中文字幕高清| 色欧美片视频在线观看在线视频| 日本中文字幕久久| 在线观看日韩毛片| 国产精品无码一区| 欧美色图天堂网| 6—12呦国产精品| 91精品欧美久久久久久动漫| 国产精品自偷自拍| 日韩欧美一二三| 丰满人妻一区二区三区四区53| 欧美成人一区二区三区在线观看 | 少妇无码av无码专区在线观看 | 亚洲卡通欧美制服中文| 五月天婷婷色综合| 亚洲精品欧美激情| 国产真实乱偷精品视频| 欧美色欧美亚洲高清在线视频| 三级视频在线观看| 欧美日韩国产成人在线91| 国产三级按摩推拿按摩| 精品国产乱码久久久久久牛牛 | 亚洲一区二区三区免费| 国产伦精品一区二区三区视频孕妇| 欧美电影在线观看免费| 日本一区免费在线观看| 99成人在线视频| www.夜夜爱| 日韩电影在线观看一区| 精品亚洲视频在线| 粉嫩13p一区二区三区| 国产精品无码一区二区三区免费| 国产欧美日韩麻豆91| 一起操在线播放| 精品久久久久久国产91| 国产九色91回来了| 精品国产一区二区三区久久影院| 日韩二区三区| 久久伊人精品视频| 中文字幕21页在线看| 国产在线观看精品| 免费成人三级| 制服诱惑一区| 午夜一区不卡| 亚洲高清视频免费| 91视频免费观看| 日本在线一级片| 91黄色免费看| 免费看av毛片| 日韩在线免费观看视频| 8x8ⅹ拨牐拨牐拨牐在线观看| 国产精品香蕉国产| 欧美电影免费网站| 成人在线免费高清视频| 久热re这里精品视频在线6| 18深夜在线观看免费视频| 国产亚洲欧美一级| 久久久久亚洲av成人片| 欧美三级韩国三级日本一级| 秋霞网一区二区| 久久综合免费视频影院| 另类中文字幕国产精品| 极品日韩久久| 亚洲精品极品少妇16p| 日本www.色| 成人av电影在线| 免费在线黄色网| 欧美主播一区二区三区| 五月天婷婷视频| 欧美国产激情18| 91成人精品观看| 日本公妇乱淫免费视频一区三区| 国产精品v亚洲精品v日韩精品| 中文字幕第100页| 久久久另类综合| 日韩精品久久久久久久酒店| 91精品国产综合久久精品图片| 成年人在线观看视频| 国产不卡在线观看| 久久香蕉网站| 97av中文字幕| 国产主播一区二区| 欧美88888| 欧美性猛交xxxx黑人交| 欧美成人综合在线| 国产91对白在线播放| 国产伦精品一区二区三区在线播放| 69精品丰满人妻无码视频a片| 极品美女销魂一区二区三区| 天天操天天干天天操天天干| 色天天综合色天天久久| 欧美日韩在线中文字幕| 91精品国产色综合| 欧美大胆a级| 成人午夜视频免费在线观看| 91亚洲国产成人精品一区二区三 | h片在线观看网站| 成人欧美一区二区三区黑人孕妇| 日韩精品二区| 亚洲人视频在线| 亚洲色图欧洲色图婷婷| 精品人妻久久久久一区二区三区 | 亚洲欧美日韩综合一区| 秋霞影院一区二区| 欧美精品日韩在线| 欧美高清视频不卡网| 国产高清一区二区三区视频| 亚洲综合中文字幕在线| 国产精品vip| 国产女人18毛片水真多18| 午夜精品久久久久| 日韩a在线观看| 日韩美女视频中文字幕| 国内精品伊人久久久| 九色porny自拍| 亚洲精品国产a| 黄色一级大片在线免费看国产一 | 欧美激情xxxxx| 牛牛影视久久网| 久久久久免费精品| 国产精品对白交换视频| 国产成人精品白浆久久69| 久久久久久欧美| 亚洲人成网77777色在线播放 | 国产女主播在线一区二区| 91激情在线观看| 欧美黑人一区二区三区| 亚洲人成网77777色在线播放 | 精品国产一区二| 你真棒插曲来救救我在线观看| 91香蕉视频污| 亚洲一卡二卡在线观看| 欧美国产日韩视频| 精品中文一区| 麻豆网站免费观看| 欧美性色xo影院| 一广人看www在线观看免费视频| 99久热re在线精品视频| 免费亚洲视频| 欧美成人777| 亚洲深夜福利在线| 亚洲网一区二区三区| 国产精品无码专区av在线播放| 亚洲欧美综合另类在线卡通| 日本高清视频在线| 国产欧美日韩视频| 国产欧美日韩综合一区在线播放 | aa国产精品| 一区二区国产精品精华液| 日韩电影在线观看永久视频免费网站| 美女视频一区| 国产精品va无码一区二区| 国产精品灌醉下药二区| 午夜视频福利在线观看| 成人激情av在线| 久久久久久亚洲精品杨幂换脸| 黄色一级视频免费| 国产一区二区三区视频在线观看| 高清日韩中文字幕|