最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL 5.7增強版Semisync Replication性能優(yōu)化

 更新時間:2015年05月29日 11:09:41   投稿:junjie  
這篇文章主要介紹了MySQL 5.7增強版Semisync Replication性能優(yōu)化,本文著重講解支持發(fā)送binlog和接受ack的異步化、支持在事務(wù)commit前等待ACK兩項內(nèi)容,需要的朋友可以參考下

一 前言

前文 介紹了5.5/5.6 版本的MySQL semi sync 基礎(chǔ)原理和配置,隨著MySQL 5.7 的發(fā)布,新版本的MySQL修復(fù)了semi sync 的一些bug 并且增強了功能。

支持發(fā)送binlog和接受ack的異步化;
支持在事務(wù)commit前等待ACK;
在server層判斷備庫是否要求半同步以減少Plugin鎖沖突;
解除binlog dump線程和lock_log的沖突等等。

本文重點分析 第1,2個改進項,因為原來的模式的確會影響系統(tǒng)的tps,新的異步模式可以提高半同步模式下的系統(tǒng)事務(wù)處理能力。

二 優(yōu)化

1、支持發(fā)送binlog和接受ack的異步化

通過前面的介紹,我們知道Semisynchronous Replication模式下,app在主庫上提交一個事務(wù)/event,MySQL將每個事務(wù)寫入binary并且同步到到slave ,master會等待至少一個slave通知:slave 已經(jīng)接收到傳過來的events并寫入relay log,才返回給回話層 寫入成功,或者直到傳送日志發(fā)生超時,系統(tǒng)自動將為異步復(fù)制模式。

整體流程的邏輯圖

5.5 版本semi sync 設(shè)計的缺點:

    從原理以及上圖來看,舊版本的semi sync 受限于dump thread ,原因是dump thread 承擔(dān)了兩份不同且又十分頻繁的任務(wù):傳送binlog 給slave ,還需要等待slave反饋信息,而且這兩個任務(wù)是串行的,dump thread 必須等待 slave 返回之后才會傳送下一個 events 事務(wù)。dump thread 已然成為整個半同步提高性能的瓶頸在高并發(fā)業(yè)務(wù)場景下,這樣的機制會影響數(shù)據(jù)庫整體的TPS .

為了解決上述問題,在5.7.4版本的semi sync 框架中,獨立出一個 ack collector thread ,專門用于接收slave 的反饋信息。這樣master 上有兩個進程獨立工作,可以同時發(fā)送binlog 到slave ,和接收slave的反饋。整體流程的邏輯圖

大體的實現(xiàn)思路是:

備庫IO線程使用TCP協(xié)議和主庫交互,讀寫socket可以同時進行,在開啟主庫semisync時,啟動一個后臺線程,使用select監(jiān)聽備庫連接socket;
dump線程不再等待備庫ACK;在ack reciver線程等待ACK時,dump線程還能繼續(xù)發(fā)送下一組group commit的binlog,進而提升TPS.

2 支持在事務(wù)commit前等待ACK;

   新版本的semi sync 增加了rpl_semi_sync_master_wait_point參數(shù) 來控制半同步模式下 主庫在返回給會話事務(wù)成功之前提交事務(wù)的方式。

該參數(shù)有兩個值:

AFTER_SYNC (默認(rèn)值):master 將每個事務(wù)寫入binlog ,傳遞到slave,并且刷新到磁盤。master等待slave 反饋接收到事務(wù)并刷新到磁盤。一旦接到slave反饋,master在主庫提交事務(wù)并且返回結(jié)果給會話。 在AFTER_SYNC模式下,所有的客戶端在同一時刻查看已經(jīng)提交的數(shù)據(jù)。假如發(fā)生主庫crash,所有在主庫上已經(jīng)提交的事務(wù)已經(jīng)同步到slave并記錄到relay log。此時切換到從庫,可以保障最小的數(shù)據(jù)損失。

AFTER_COMMIT: master 將每個事務(wù)寫入binlog ,傳遞到slave 刷新到磁盤(relay log),然后在主庫提交事務(wù)。master在提交事務(wù)后等待slave 反饋接收到事務(wù)并刷新到磁盤。一旦接到slave反饋,master將結(jié)果反饋給客戶端。
在AFTER_COMMIT模式下,如果slave 沒有應(yīng)用日志,此時master crash,系統(tǒng)failover到slave,app將發(fā)現(xiàn)數(shù)據(jù)出現(xiàn)不一致,在master提交而slave 沒有應(yīng)用。

相關(guān)文章

  • mysql中g(shù)roup by與having合用注意事項分享

    mysql中g(shù)roup by與having合用注意事項分享

    在mysql中g(shù)roup by分組查詢我們經(jīng)常會用到,并且還同時會與having合用,下面我介紹group by用法與having合用注意事項,希望此教程對各位朋友有所幫助
    2013-10-10
  • MySQL在grant時報錯ERROR?1064?(42000)的原因及解決方法

    MySQL在grant時報錯ERROR?1064?(42000)的原因及解決方法

    網(wǎng)上查到的grant方式大多會報錯,主要原因是MySQL版本8.0后不能再使用原來的方式,這篇文章主要介紹了MySQL在grant時報錯ERROR?1064?(42000),需要的朋友可以參考下
    2022-08-08
  • 詳解Mysql中的視圖

    詳解Mysql中的視圖

    mysql中的視圖,視圖與表有很多相似的地方,視圖也是由若干個字段以及若干條記錄構(gòu)成,視圖也可以作為select語句的數(shù)據(jù)源
    2017-04-04
  • mysql自動化安裝腳本(ubuntu and centos64)

    mysql自動化安裝腳本(ubuntu and centos64)

    這篇文章主要介紹了mysql自動化安裝腳本(ubuntu and centos64),需要的朋友可以參考下
    2014-05-05
  • 基于mysql數(shù)據(jù)庫的密碼問題詳解

    基于mysql數(shù)據(jù)庫的密碼問題詳解

    本篇文章是對mysql數(shù)據(jù)庫的密碼問題進行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • 比較詳細(xì)的MySQL字段類型說明

    比較詳細(xì)的MySQL字段類型說明

    MySQL支持大量的列類型,它可以被分為3類:數(shù)字類型、日期和時間類型以及字符串(字符)類型。本節(jié)首先給出可用類型的一個概述,并且總結(jié)每個列類型的存儲需求,然后提供每個類中的類型性質(zhì)的更詳細(xì)的描述。概述有意簡化,更詳細(xì)的說明應(yīng)該考慮到有關(guān)特定列類型的附加信息,例如你能為其指定值的允許格式。
    2008-08-08
  • MySQL執(zhí)行SQL文件報錯:Unknown collation ‘utf8mb4_0900_ai_ci‘的解決方案

    MySQL執(zhí)行SQL文件報錯:Unknown collation ‘utf8mb4_0900_ai_

    這篇文章主要給大家分享了MySQL執(zhí)行SQL文件出現(xiàn)【Unknown collation ‘utf8mb4_0900_ai_ci‘】的解決方案,如果又遇到相同問題的同學(xué),可以參考閱讀本文
    2023-09-09
  • 詳解mysql中的冗余和重復(fù)索引

    詳解mysql中的冗余和重復(fù)索引

    這篇文章主要介紹了詳解mysql中的冗余和重復(fù)索引,小編覺得挺不錯的,這里給大家分享下,供需要的朋友參考。
    2017-10-10
  • Mybatis中的動態(tài)SQL語句解析

    Mybatis中的動態(tài)SQL語句解析

    這篇文章主要介紹了Mybatis中的動態(tài)SQL語句解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • 使用SQL語句統(tǒng)計數(shù)據(jù)時sum和count函數(shù)中使用if判斷條件的講解

    使用SQL語句統(tǒng)計數(shù)據(jù)時sum和count函數(shù)中使用if判斷條件的講解

    今天小編就為大家分享一篇關(guān)于使用SQL語句統(tǒng)計數(shù)據(jù)時sum和count函數(shù)中使用if判斷條件的講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02

最新評論

杭锦后旗| 合山市| 峡江县| 湘乡市| 奈曼旗| 乌拉特后旗| 叙永县| 永春县| 榆林市| 乌审旗| 聂拉木县| 静海县| 山丹县| 固原市| 九寨沟县| 甘洛县| 冷水江市| 民县| 洮南市| 潞城市| 师宗县| 宜昌市| 伊金霍洛旗| 旌德县| 延安市| 封开县| 方正县| 祥云县| 永定县| 香港 | 莒南县| 湖口县| 景泰县| 海阳市| 铜鼓县| 恩施市| 漾濞| 襄樊市| 丹寨县| 灵石县| 吉首市|