亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

TiDB 官方設計文檔翻譯(三)

2024-07-21 02:52:56
字體:
來源:轉載
供稿:網友

這個系列共三篇譯文: TiDB 官方設計文檔翻譯(一) TiDB 官方設計文檔翻譯(二) TiDB 官方設計文檔翻譯(三)

原文: https://pingcap.github.io/blog/2016/10/17/how-we-build-tidb/

5.3 TiDB核心技術

讓我們繼續討論TiDB。TiDB有一個與MySQL兼容的協議層,有以下功能:

將表數據映射到鍵值存儲,從而連接到鍵值存儲引擎。謂詞下推(譯者注:將外層查詢塊的 WHERE 子句中的謂詞移入所包含的較低層查詢塊,不理解的可以搜索一下這個名詞),以加速查詢在線DDL

5.3.1 將表數據映射到鍵值存儲

讓我們使用一個例子來展示SQL表如何映射到鍵值對。

如果我們在數據庫中有一個簡單的用戶表。 它有2行3列:用戶ID,名稱和電子郵件,其中用戶id是主鍵。

INSERT INTO user VALUES (1, "bob", "huang@pingcap.com");INSERT INTO user VALUES (2, "tom", "tom@pingcap.com");

如果我們將此表映射到鍵值對,則應按以下方式進行。

這里寫圖片描述

當然,TiDB支持二級索引。 它是一個全局索引。 TiDB將數據和索引更新放在同一個事務中,因此TiDB中的所有索引都是事務性的和完全一致的。 整個過程對用戶是透明的。

索引只是值指向行鍵的鍵值對。 在為用戶名創建索引之后,鍵值存儲如下所示:

這里寫圖片描述

索引的鍵由兩部分組成:人名加后綴用戶ID。比如這里“bob”是人名,1是用戶id,值指向行鍵。

5.3.2 謂詞下推

對于一些操作,如計算表中的一些列,TiDB將這些操作下推到相應的TiKV節點,由TiKV節點進行計算,然后TiDB合并最終結果。 下圖展示了謂詞下推的過程。

這里寫圖片描述

5.3.3 Schema更改

這部分關于Schema更改(譯者注:Schema是數據庫對象的集合,一個用戶一般對應一個schema)。 為什么在線Schema更改是必備功能? 這是因為我們需要一直有完整的數據可用性,以及最小的性能影響,使運維人員睡得安穩。 與Google F1相同的部分 影響Schema更改的TiDB的主要功能有:

分布式——TiDB的實例由許多單獨的TiDB服務器組成關系Schema——每個TiDB服務器都有一個描述表,列,索引和約束的關系Schema的副本。對Schema的任何修改都應該是分布式的,以更新所有服務器。共享數據存儲——所有數據中心中的所有TiDB服務器都可以訪問存儲在TiKV中的所有數據。在TiDB服務器之間沒有數據分區。沒有全局會員——因為TiDB服務器是無狀態的,所以不需要TiDB實現全局成員協議。這意味著沒有可靠的機制來確定當前運行的TiDB服務器,并且顯式全局同步是不可能的。 與Google F1不同的部分TiDB使用MySQL協議單個事務中的語句不能跨越不同的TiDB服務器 關于Schema更改的補充說明 Schema更改之前,讓我們看看下圖展示的TiDB中的SQL

這里寫圖片描述

下面是Schema更改期間TiDB實例的概述:

這里寫圖片描述 Schema更改: 增加索引 接下來,讓我們看看在添加索引時Schema是如何變化的。如果我們不小心,使用不同Schema版本的服務器可能會損壞數據庫。

考慮從Schema S1到Schema S2的變更,其將索引 I 添加到表T上。假設兩個不同的服務器M1和M2執行下列操作:

服務器M2使用Schema S2向表T插入新行r。由于S2包含索引 I ,所以服務器M2還向鍵值存儲添加對應 r 的新索引條目。服務器M1使用Schema S1刪除r。 因為S1不包含 I,M1從鍵值存儲中刪除r,但無法刪除 I 中的相應索引條目。

第二次刪除會破壞數據庫。 例如,僅針對索引的掃描將返回不正確的結果,包括已刪除行r的列值。 Schema 狀態 通常情況下,Schema 更改是一個多狀態多階段協議。 有兩種狀態,我們認為是非中間的:absent和public。有兩個內部、中間狀態:delete-only和write-only

delete-only:一個僅刪除的表、列或索引不能由用戶事務讀取其鍵值對,并且

如果E是表或列,則只能通過刪除操作進行修改。如果E是一個索引,它只被刪除和更新操作修改。 此外,更新操作可以刪除與更新的索引鍵相對應的鍵值對,但是它們不能創建任何新的鍵值對。

對于write-only狀態,它這樣定義列和索引: write-only列或索引可以通過插入,刪除和更新操作修改其鍵/值對,但不能通過用戶事務讀取它們的鍵值對。 Schema 更改流程:添加索引 添加索引需要4個步驟。

步驟1,我們將狀態標記為delete-only,等待一個Schema 租用,在所有TiDB服務器達到相同狀態后,到第二步

步驟2,將狀態標記為write-only,等待一個Schema 租用,

步驟3,將狀態標記為填充索引,并開始maPReduce作業。 在完成索引填充作業后,我們等待一個Schema 租用,

步驟4,切換到最終狀態,所有新查詢可以使用新添加的索引。 TiDB:添加索引的狀態(delete-only) 以下是添加索引的屏幕截圖之一。

這里寫圖片描述

我們可以使用任何MySQL客戶端查詢在線DDL作業的狀態。 只是簡單地運行“show status”語句,我們可以看到高亮部分,當前狀態是“delete-only”,并且操作是“添加索引”。 還有一些其他信息,如誰在做DDL作業,當前作業的狀態和當前schema 版本。 TiDB:添加索引的狀態(添加索引) 如紅筆所示,此屏幕截圖顯示當前狀態是“write reorganization”。

這里寫圖片描述

6 如何測試?

在本節中,我將介紹如何測試系統。

測試用例來自社區。 在MySQL驅動程序/連接器,ORM和應用程序中有很多測試用例。在硬件和軟件上執行故障注入以增加測試覆蓋。關于網絡,我們模擬延遲,故障,分區,以檢測當網絡不可靠時我們的數據庫中是否有bug。我們使用Jepsen和Namazu進行分布式測試。

7 未來計劃

這是我們的未來計劃: - 我們計劃在未來使用GPS和原子鐘。 - 我們正在改進我們的查詢優化器以獲得更好更快的查詢結果。 - 我們將進一步提高與MySQL的兼容性。 - JSON和文檔存儲類型的支持也在我們的規劃中。 - 我們計劃支持推動更多的聚合和內置功能。 - 在將來,我們將使用gRPC替換自定義的RPC實現。

說明 如有轉載,請務必注明出處: http://blog.csdn.net/antony9118/article/details/60479063


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美日韩精品久久奇米色影视| 欧美在线免费看| 福利一区福利二区微拍刺激| 国产精品黄视频| 久久视频中文字幕| 最近2019中文免费高清视频观看www99| 国产一区红桃视频| 日韩精品高清在线观看| 91高潮在线观看| 精品国产欧美一区二区三区成人| 亚洲精品日韩欧美| 影音先锋欧美精品| 日韩欧美在线看| 国产视频精品免费播放| 成人黄色片在线| 7m第一福利500精品视频| 韩国精品美女www爽爽爽视频| 亚洲网在线观看| 亚洲国产欧美一区二区三区久久| 欧美性videos高清精品| xvideos国产精品| 久久成人精品视频| 中文字幕精品www乱入免费视频| 日韩欧美福利视频| 国产精品男人爽免费视频1| 日韩中文在线视频| 国产精品三级美女白浆呻吟| 久久夜精品va视频免费观看| 成人激情电影一区二区| 亚洲**2019国产| 欧美一区第一页| 国产亚洲精品日韩| 亚洲欧洲第一视频| 亚洲黄页网在线观看| 日韩大陆欧美高清视频区| 亚洲综合大片69999| 欧美在线视频在线播放完整版免费观看| 精品国产31久久久久久| 日韩最新中文字幕电影免费看| 91在线免费看网站| 欧美怡春院一区二区三区| 亚洲日本aⅴ片在线观看香蕉| 日韩久久精品成人| zzijzzij亚洲日本成熟少妇| 久久午夜a级毛片| 亚洲少妇中文在线| 欧美国产日产韩国视频| 中文字幕国产精品| 成人午夜在线观看| 国语自产精品视频在线看一大j8| 日韩成人在线视频网站| 亚洲free嫩bbb| 国产日本欧美一区二区三区在线| 亚洲国产私拍精品国模在线观看| 久久久999精品视频| 色视频www在线播放国产成人| 精品无人国产偷自产在线| 欧美激情一二区| 欧美性xxxxx极品| 欧美在线视频一二三| 欧美孕妇孕交黑巨大网站| 色噜噜亚洲精品中文字幕| 欧美精品video| 成人激情视频免费在线| 国产99视频精品免视看7| 国产综合视频在线观看| 日韩视频一区在线| 精品久久香蕉国产线看观看亚洲| 成人av.网址在线网站| 2019中文字幕在线观看| 欧美专区第一页| 国产日本欧美一区| 国产精品爱啪在线线免费观看| 黑丝美女久久久| 成人免费在线视频网址| 久久久久久久久久亚洲| 日韩一区av在线| 日韩中文字幕久久| 欧美色道久久88综合亚洲精品| 精品久久久久久久久久久久| 亚洲午夜小视频| 欧美专区日韩视频| 国产aⅴ夜夜欢一区二区三区| 欧美电影在线播放| 国产男人精品视频| 色777狠狠综合秋免鲁丝| 欧美福利视频在线观看| 日韩一区二区福利| 成人免费看吃奶视频网站| 亚洲欧美激情精品一区二区| 91探花福利精品国产自产在线| 日韩av网站电影| 欧美特黄级在线| 狠狠久久亚洲欧美专区| 欧美性开放视频| 国产精品电影在线观看| 国产美女直播视频一区| 国语自产精品视频在线看| 国产成人啪精品视频免费网| 91美女片黄在线观| 亚洲毛片在线看| 国产精品久久久久久搜索| 欧美激情女人20p| 色777狠狠综合秋免鲁丝| 亚洲人成毛片在线播放| 在线视频亚洲欧美| 中文字幕国内精品| 欧美日韩中文字幕日韩欧美| 伊人久久综合97精品| 国产精品一区二区三区成人| 日韩视频免费观看| 亚洲欧美资源在线| 成人观看高清在线观看免费| 欧美成aaa人片在线观看蜜臀| 欧美有码在线观看| 91在线观看免费高清| 国产在线a不卡| 久久久久久欧美| 久久噜噜噜精品国产亚洲综合| 91精品视频在线免费观看| 91成人天堂久久成人| 狠狠躁夜夜躁人人爽超碰91| 亚洲精品二三区| 欧美精品第一页在线播放| 日韩电影免费观看在线观看| 国产69精品久久久久久| 在线观看欧美视频| 国产99久久久欧美黑人| 2020国产精品视频| 国产日产久久高清欧美一区| 国产成人午夜视频网址| 亚洲女性裸体视频| 欧美性在线视频| 精品欧美一区二区三区| 日本中文字幕不卡免费| 国产成人福利夜色影视| 尤物九九久久国产精品的分类| 一本色道久久综合狠狠躁篇的优点| 国产成人涩涩涩视频在线观看| 91情侣偷在线精品国产| 91免费国产视频| 日韩av网站导航| 久久综合久久美利坚合众国| 欧美性做爰毛片| 91在线观看免费高清| 亚洲石原莉奈一区二区在线观看| 国产精品久久久久免费a∨| 91爱爱小视频k| 亚洲午夜激情免费视频| 国产精品一区二区三区成人| 国产啪精品视频| 黄色一区二区在线| 日本91av在线播放| 亚洲美女www午夜| 97香蕉久久超级碰碰高清版| 亚洲欧美激情四射在线日| 在线观看欧美www| 亚洲女人天堂视频| 亚洲最大福利网站| 在线观看精品自拍私拍| 亚洲激情在线观看视频免费| 日韩欧美极品在线观看| 日韩精品福利网站| 清纯唯美日韩制服另类|