日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
PolarDB-X2.0:使用一個透明的分布式數(shù)據(jù)庫是一種什么體驗

PolarDB-X 2.0:使用一個透明的分布式數(shù)據(jù)庫是一種什么體驗

作者:佚名 2021-06-28 10:14:29

數(shù)據(jù)庫

分布式 透明分布式,是PolarDB-X即將發(fā)布的能力,它能讓應用在使用PolarDB-X的過程中,猶如使用單機數(shù)據(jù)庫一般的體驗。

成都創(chuàng)新互聯(lián)公司專注于鹽湖網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經驗。 熱誠為您提供鹽湖營銷型網(wǎng)站建設,鹽湖網(wǎng)站制作、鹽湖網(wǎng)頁設計、鹽湖網(wǎng)站官網(wǎng)定制、微信平臺小程序開發(fā)服務,打造鹽湖網(wǎng)絡公司原創(chuàng)品牌,更為您提供鹽湖網(wǎng)站排名全網(wǎng)營銷落地服務。

透明分布式,是PolarDB-X即將發(fā)布的能力,它能讓應用在使用PolarDB-X的過程中,猶如使用單機數(shù)據(jù)庫一般的體驗。

與傳統(tǒng)的中間件類型的“分布式數(shù)據(jù)庫”相比,有了透明分布式能力的PolarDB-X,不再需要應用考慮分區(qū)鍵的概念,應用可以完全將單機MySQL上開發(fā)的建表語句、應用代碼直接遷移到PolarDB-X上運行起來。

本文將為大家介紹PolarDB-X透明分布式的新體驗。

在PolarDB-X上安裝一個WordPress

WordPress是一個開源的博客軟件,它使用MySQL作為其數(shù)據(jù)庫。操作是在PolarDB-X上安裝一個WordPress,來體驗PolarDB-X的透明分布式能力。

我們將遵循簡單的三步走:

不修改DDL直接建表
不修改應用直接跑起來
做下壓測,做下調優(yōu)
總結如下:

使用官方的WordPress鏡像,不做任何修改,其安裝程序就能自動的在PolarDB-X上完成建表、數(shù)據(jù)初始化等工作,其使用的都是標準的MySQL語法。
對此WordPress進行壓測,PolarDB-X的各項監(jiān)控數(shù)據(jù)顯示,各節(jié)點處于的負載、數(shù)據(jù)量均處于均衡的狀態(tài)。
通過PolarDB-X提供的SQL分析、DAS等工具,可以方便的找到系統(tǒng)中熱點SQL。
DBA可以直接通過創(chuàng)建索引、修改數(shù)據(jù)分布等DDL語句對系統(tǒng)性能做進一步的優(yōu)化,不需要修改應用。

PolarDB-X實現(xiàn)透明分布式的武器

下面為大家分享下,PolarDB-X是如何實現(xiàn)透明分布式的。

透明數(shù)據(jù)分區(qū)

PolarDB-X是一個典型的Share Nothing的分布式數(shù)據(jù)庫,其簡化架構如下:

其核心組件為無狀態(tài)的計算節(jié)點CN,與有狀態(tài)的存儲節(jié)點DN。

要了解PolarDB-X的透明分布式能力,首先要了解數(shù)據(jù)在PolarDB-X上是如何分布的。

在PolarDB-X中,一個表由多個索引組成,包括主鍵、二級索引等。PolarDB-X會對每個索引進行獨立的進行分區(qū),其分區(qū)鍵為索引的key。

例如一個典型的電商場景,訂單表,擁有一個主鍵(id),兩個索引(seller_id與buyer_id):

  
 
 
 
  1. create table orders ( id bigint, buyer_id varchar comment '買家', seller_id varchar comment '賣家', primary key(id), index sdx(seller_id), index bdx(buyer_id))

對于主鍵索引,會按照id對其進行分區(qū)
對于索引sdx,會按照seller_id進行分區(qū)
對于索引bdx,會按照buyer_id進行分區(qū)
如下圖所示:

對索引進行分片之后,PolarDB-X會將這些分片打散到不同的存儲節(jié)點里,并會按照數(shù)據(jù)量等信息進行負載均衡,如下圖所示:

在PolarDB-X中,建表語句中可以不考慮分區(qū)鍵,PolarDB-X也能自動的對表進行分片與負載均衡。

因此,應用遷移PolarDB-X時,可以將單機MySQL中的建表語句導出,不需要修改直接在PolarDB-X中執(zhí)行即可。

透明的分布式事務

分布式事務是PolarDB-X中的最重要的基礎能力,它廣泛的應用于業(yè)務內,避免了業(yè)務對事務代碼進行改造;同時,PolarDB-X內部也用事務來實現(xiàn)索引。

PolarDB-X的分布式事務有以下幾個特征:

與Spanner一樣,滿足外部一致性這種最強的一致性級別
語法與MySQL完全兼容,無需對應用進行改造
行為上支持兼容MySQL的RC與RR級別

Online DDL

PolarDB-X支持類型豐富的Online DDL,這里介紹一些有代表性的DDL類型。

索引維護

與單機MySQL的索引有所差異,PolarDB-X的索引均為全局索引,包含以下幾種類型:

普通索引
唯一索引
聚簇索引
其中聚簇索引是PolarDB-X相對于MySQL的一種新類型的索引,它會包含表中的所有列,從而避免了回表的代價。

PolarDB-X中對索引的創(chuàng)建都通過DDL來完成,并且都是Online的,不會阻塞業(yè)務。

例如:

創(chuàng)建一個普通的索引:CREATE INDEX idx1 ON t1(name)
創(chuàng)建一個聚簇的索引:CREATE CLUSTERED INDEX idx1 ON t1(name)

INSTANT ADD COLUMN

加列操作是業(yè)務中最為常見的DDL類型。在MySQL中,加列操作的耗時是與數(shù)據(jù)量相關的(MySQL8.0中在表的最后面加列是INSTANT的)。

在PolarDB-X中,在任意位置加列都是INSTANT的,這個代表加列操作為恒定的秒級耗時,與數(shù)據(jù)量無關,不會對業(yè)務產生任何影響。

分區(qū)調整

PolarDB-X支持4種表的分布策略,Hash、Range、List、Broadcast。由于Hash能避免連續(xù)寫入的熱點,PolarDB-X默認使用Hash策略,大多數(shù)情況下,此策略能夠很好的滿足系統(tǒng)的性能需要。

但是如果業(yè)務在運行期間,希望選擇合適的分區(qū)策略來提升系統(tǒng)性能,在PolarDB-X中可以方便的通過DDL語句進行調整,PolarDB-X會按照新的分區(qū)策略重新組織表的數(shù)據(jù)。

例如:

修改表的分區(qū)策略為Hash:ALTER TABLE t1 PARTITION BY HASH(name)
修改表的分片數(shù)為32:ALTER TABLE t1 PARTITION BY HASH(name) PARTITIONS 32
將表變?yōu)閺V播表:ALTER TABLE t1 BROADCAST
修改表的分區(qū)策略為RANGE:ALTER TABLE t1 PARTITION BY RANGE(id)
任意兩種分區(qū)策略之間都可以通過DDL語句進行轉換:

回填速度自適應

想必很多同學有過這樣的經驗:一個超大的表進行DDL操作,由于數(shù)據(jù)量比較大,這個DDL操作無法在一天內完成,為了避免對業(yè)務影響,人肉在白天業(yè)務高峰期來臨的時候,調整參數(shù),降低DDL的回填速度,晚上在業(yè)務高峰期結束后,提高DDL的回填速度。

PolarDB-X中的回填,會根據(jù)當前的系統(tǒng)負載,自動調節(jié)速度。

例如:

在這個例子中,分了四個階段:

開始沒有業(yè)務負載,DDL回填速度上升到25W行/s
業(yè)務負載開始上升,DDL回填速度迅速下降到13W行/s
業(yè)務TPS穩(wěn)定在1W5,DDL回填速度穩(wěn)定在13W行/s
DDL結束后,業(yè)務TPS穩(wěn)定在1W6
從這個例子中,我們可以看到PolarDB-X DDL的回填速度會自動根據(jù)業(yè)務負載進行調整,并且DDL期間,對業(yè)務的TPS影響很小。

讓Online更Online

為了進一步減少DDL期間對業(yè)務的影響,PolarDB-X還使用了多項技術,例如:

元數(shù)據(jù)多版本,詳見:https://zhuanlan.zhihu.com/p/347885003
可暫停、可取消
MDL死鎖檢測

總結

PolarDB-X的透明分布式能力,將極大的減少應用從單機數(shù)據(jù)庫遷移分布式數(shù)據(jù)庫的成本。同時,我們未來也會讓它變得更透明,我們正在做的一些事情包括:

更精細的調度策略
熱點數(shù)據(jù)的可視化展示,與SQL審計分析聯(lián)動的智能診斷
在有全局索引的情況下,支持分區(qū)級的truncate
數(shù)據(jù)的按時間滾動、清理
等等


分享名稱:PolarDB-X2.0:使用一個透明的分布式數(shù)據(jù)庫是一種什么體驗
文章網(wǎng)址:http://www.dlmjj.cn/article/dpdcgos.html