国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

TiDB Binlog 源碼閱讀系列文章(一)序

whidy / 2244人閱讀

摘要:總體而言,讀者需要有一定的使用經驗,以及可以讀懂語言程序。內容概要本篇作為源碼閱讀系列文章的序篇,會簡單的給大家講一下后續會講哪些部分以及邏輯順序,方便大家對本系列文章有整體的了解。小結本篇文章主要介紹了源碼閱讀系列文章的目的和規劃。

作者:黃佳豪

TiDB Binlog 組件用于收集 TiDB 的 binlog,并準實時同步給下游,如 TiDB、MySQL 等。該組件在功能上類似于 MySQL 的主從復制,會收集各個 TiDB 實例產生的 binlog,并按事務提交的時間排序,全局有序的將數據同步至下游。利用 TiDB Binlog 可以實現數據準實時同步到其他數據庫,以及 TiDB 數據準實時的備份與恢復。隨著大家使用的廣泛和深入,我們遇到了不少由于對 TiDB Binlog 原理不理解而錯誤使用的情況,也發現了一些 TiDB Binlog 支持并不完善的場景和可以改進的設計。

在這樣的背景下,我們開展 TiDB Binlog 源碼閱讀分享活動,通過對 TiDB Binlog 代碼的分析和設計原理的解讀,幫助大家理解 TiDB Binlog 的實現原理,和大家進行更深入的交流,同時也有助于社區參與 TiDB Binlog 的設計、開發和測試。

背景知識

本系列文章會聚焦 TiDB Binlog 本身,讀者需要有一些基本的知識,包括但不限于:

Go 語言,TiDB Binlog 由 Go 語言實現,有一定的 Go 語言基礎有助于快速理解代碼。

數據庫基礎知識,包括 MySQL、TiDB 的功能、配置和使用等;了解基本的 DDL、DML 語句和事務的基本常識。

了解 Kafka 的基本原理。

基本的后端服務知識,比如后臺服務進程管理、RPC 工作原理等。

總體而言,讀者需要有一定 MySQL/TiDB/Kafka 的使用經驗,以及可以讀懂 Go 語言程序。在閱讀 TiDB Binlog 源碼之前,可以先從閱讀 《TiDB Binlog 架構演進與實現原理》 入手。

內容概要

本篇作為《TiDB Binlog 源碼閱讀系列文章》的序篇,會簡單的給大家講一下后續會講哪些部分以及邏輯順序,方便大家對本系列文章有整體的了解。

初識 TiDB Binlog 源碼:整體介紹一下 TiDB Binlog 以及源碼,包括 TiDB Binlog 主要有哪些組件與模塊,以及如何在本地利用集成測試框架快速啟動一個集群,方便大家體驗 Binlog 同步功能與后續可能修改代碼的測試。

pump client 介紹:介紹 pump client 同時讓大家了解 TiDB 是如何生成 binlog 的。

pump server 介紹:介紹 pump 啟動的主要流程,包括狀態維護,定時觸發 gc 與生成 fake binlog 驅動下游。

pump storage 模塊:storage 是 pump 的主要模塊,主要負載 binlog 的存儲,讀取與排序, 可能分多篇講解。

drainer server 介紹:drainer 啟動的主要流程,包括狀態維護,如何獲取全局 binlog 數據以及 Schema 信息。

drainer loader package 介紹:loader packge 是負責實時同步數據到 mysql 的模塊,在 TiDB Binlog 里多處用到。

drainer sync 模塊介紹:以同步 mysql 為例介紹 drainer 是如何同步到不同下游系統。

slave binlog 介紹:介紹 drainer 如何轉換與輸出 binlog 數據到 Kafka。

arbiter 介紹:同步 Kafka 中的數據到下游,通過了解 arbiter,大家可以了解如何同步數據到其他下游系統,比如更新 Cache,全文索引系統等。

reparo 介紹:通過了解 reparo,大家可以將 drainer 的增量備份文件恢復到 TiDB 中。

小結

本篇文章主要介紹了 TiDB Binlog 源碼閱讀系列文章的目的和規劃。下一篇文章我們會從 TiDB Binlog 的整體架構切入,然后分別講解各個組件和關鍵設計點。更多的源碼內容會在后續文章中逐步展開,敬請期待。

最后歡迎大家參與 TiDB Binlog 的開發。

原文閱讀:

TiDB Binlog 組件用于收集 TiDB 的 binlog,并準實時同步給下游,如 TiDB、MySQL 等。該組件在功能上類似于 MySQL 的主從復制,會收集各個 TiDB 實例產生的 binlog,并按事務提交的時間排序,全局有序的將數據同步至下游。利用 TiDB Binlog 可以實現數據準實時同步到其他數據庫,以及 TiDB 數據準實時的備份與恢復。隨著大家使用的廣泛和深入,我們遇到了不少由于對 TiDB Binlog 原理不理解而錯誤使用的情況,也發現了一些 TiDB Binlog 支持并不完善的場景和可以改進的設計。

在這樣的背景下,我們開展 TiDB Binlog 源碼閱讀分享活動,通過對 TiDB Binlog 代碼的分析和設計原理的解讀,幫助大家理解 TiDB Binlog 的實現原理,和大家進行更深入的交流,同時也有助于社區參與 TiDB Binlog 的設計、開發和測試。

背景知識

本系列文章會聚焦 TiDB Binlog 本身,讀者需要有一些基本的知識,包括但不限于:

Go 語言,TiDB Binlog 由 Go 語言實現,有一定的 Go 語言基礎有助于快速理解代碼。

數據庫基礎知識,包括 MySQL、TiDB 的功能、配置和使用等;了解基本的 DDL、DML 語句和事務的基本常識。

了解 Kafka 的基本原理。

基本的后端服務知識,比如后臺服務進程管理、RPC 工作原理等。

總體而言,讀者需要有一定 MySQL/TiDB/Kafka 的使用經驗,以及可以讀懂 Go 語言程序。在閱讀 TiDB Binlog 源碼之前,可以先從閱讀 《TiDB Binlog 架構演進與實現原理》 入手。

內容概要

本篇作為《TiDB Binlog 源碼閱讀系列文章》的序篇,會簡單的給大家講一下后續會講哪些部分以及邏輯順序,方便大家對本系列文章有整體的了解。

初識 TiDB Binlog 源碼:整體介紹一下 TiDB Binlog 以及源碼,包括 TiDB Binlog 主要有哪些組件與模塊,以及如何在本地利用集成測試框架快速啟動一個集群,方便大家體驗 Binlog 同步功能與后續可能修改代碼的測試。

pump client 介紹:介紹 pump client 同時讓大家了解 TiDB 是如何生成 binlog 的。

pump server 介紹:介紹 pump 啟動的主要流程,包括狀態維護,定時觸發 gc 與生成 fake binlog 驅動下游。

pump storage 模塊:storage 是 pump 的主要模塊,主要負載 binlog 的存儲,讀取與排序, 可能分多篇講解。

drainer server 介紹:drainer 啟動的主要流程,包括狀態維護,如何獲取全局 binlog 數據以及 Schema 信息。

drainer loader package 介紹:loader packge 是負責實時同步數據到 mysql 的模塊,在 TiDB Binlog 里多處用到。

drainer sync 模塊介紹:以同步 mysql 為例介紹 drainer 是如何同步到不同下游系統。

slave binlog 介紹:介紹 drainer 如何轉換與輸出 binlog 數據到 Kafka。

arbiter 介紹:同步 Kafka 中的數據到下游,通過了解 arbiter,大家可以了解如何同步數據到其他下游系統,比如更新 Cache,全文索引系統等。

reparo 介紹:通過了解 reparo,大家可以將 drainer 的增量備份文件恢復到 TiDB 中。

小結

本篇文章主要介紹了 TiDB Binlog 源碼閱讀系列文章的目的和規劃。下一篇文章我們會從 TiDB Binlog 的整體架構切入,然后分別講解各個組件和關鍵設計點。更多的源碼內容會在后續文章中逐步展開,敬請期待。

最后歡迎大家參與 TiDB Binlog 的開發。

原文閱讀
https://www.pingcap.com/blog-cn/tidb-binlog-source-code-reading-1/

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/18056.html

相關文章

  • DM 源碼閱讀系列文章

    摘要:內容概要源碼閱讀系列將會從兩條線進行展開,一條是圍繞的系統架構和重要模塊進行分析,另一條線圍繞內部的同步機制展開分析。更多的代碼閱讀內容會在后面的章節中逐步展開,敬請期待。 作者:楊非 前言 TiDB-DM 是由 PingCAP 開發的一體化數據同步任務管理平臺,支持從 MySQL 或 MariaDB 到 TiDB 的全量數據遷移和增量數據同步,在 TiDB DevCon 2019 正...

    Mr_houzi 評論0 收藏0

發表評論

0條評論

whidy

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<