日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

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

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

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

數(shù)據(jù)庫(kù)

分布式 透明分布式,是PolarDB-X即將發(fā)布的能力,它能讓?xiě)?yīng)用在使用PolarDB-X的過(guò)程中,猶如使用單機(jī)數(shù)據(jù)庫(kù)一般的體驗(yàn)。

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

透明分布式,是PolarDB-X即將發(fā)布的能力,它能讓?xiě)?yīng)用在使用PolarDB-X的過(guò)程中,猶如使用單機(jī)數(shù)據(jù)庫(kù)一般的體驗(yàn)。

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

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

在PolarDB-X上安裝一個(gè)WordPress

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

我們將遵循簡(jiǎn)單的三步走:

不修改DDL直接建表
不修改應(yīng)用直接跑起來(lái)
做下壓測(cè),做下調(diào)優(yōu)
總結(jié)如下:

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

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

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

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

PolarDB-X是一個(gè)典型的Share Nothing的分布式數(shù)據(jù)庫(kù),其簡(jiǎn)化架構(gòu)如下:

其核心組件為無(wú)狀態(tài)的計(jì)算節(jié)點(diǎn)CN,與有狀態(tài)的存儲(chǔ)節(jié)點(diǎn)DN。

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

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

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

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

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

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

在PolarDB-X中,建表語(yǔ)句中可以不考慮分區(qū)鍵,PolarDB-X也能自動(dòng)的對(duì)表進(jìn)行分片與負(fù)載均衡。

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

透明的分布式事務(wù)

分布式事務(wù)是PolarDB-X中的最重要的基礎(chǔ)能力,它廣泛的應(yīng)用于業(yè)務(wù)內(nèi),避免了業(yè)務(wù)對(duì)事務(wù)代碼進(jìn)行改造;同時(shí),PolarDB-X內(nèi)部也用事務(wù)來(lái)實(shí)現(xiàn)索引。

PolarDB-X的分布式事務(wù)有以下幾個(gè)特征:

與Spanner一樣,滿足外部一致性這種最強(qiáng)的一致性級(jí)別
語(yǔ)法與MySQL完全兼容,無(wú)需對(duì)應(yīng)用進(jìn)行改造
行為上支持兼容MySQL的RC與RR級(jí)別

Online DDL

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

索引維護(hù)

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

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

PolarDB-X中對(duì)索引的創(chuàng)建都通過(guò)DDL來(lái)完成,并且都是Online的,不會(huì)阻塞業(yè)務(wù)。

例如:

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

INSTANT ADD COLUMN

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

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

分區(qū)調(diào)整

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

但是如果業(yè)務(wù)在運(yùn)行期間,希望選擇合適的分區(qū)策略來(lái)提升系統(tǒng)性能,在PolarDB-X中可以方便的通過(guò)DDL語(yǔ)句進(jìn)行調(diào)整,PolarDB-X會(huì)按照新的分區(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ū)策略之間都可以通過(guò)DDL語(yǔ)句進(jìn)行轉(zhuǎn)換:

回填速度自適應(yīng)

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

PolarDB-X中的回填,會(huì)根據(jù)當(dāng)前的系統(tǒng)負(fù)載,自動(dòng)調(diào)節(jié)速度。

例如:

在這個(gè)例子中,分了四個(gè)階段:

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

讓Online更Online

為了進(jìn)一步減少DDL期間對(duì)業(yè)務(wù)的影響,PolarDB-X還使用了多項(xiàng)技術(shù),例如:

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

總結(jié)

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

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


本文名稱:PolarDB-X2.0:使用一個(gè)透明的分布式數(shù)據(jù)庫(kù)是一種什么體驗(yàn)
轉(zhuǎn)載注明:http://www.5511xx.com/article/dpdcgos.html