不卡av在线播放_欧美成人AU在线看_亚洲一区二区 视频_五月天亚洲无码伊人

Article / 文章中心

為什么使用表格存儲的過程中會有少量的500錯(cuò)誤?

發(fā)布時(shí)間:2018-06-01 點(diǎn)擊數(shù):1785

現(xiàn)象

不少用戶在使用表格存儲的過程中偶爾會接到一些500錯(cuò)誤,主要錯(cuò)誤碼如下:

HTTPStatus ErrorCode ErrorMsg
503 OTSPartitionUnavailable The partition is not available.
503 OTSServerUnavailable Server is not available.
503 OTSServerBusy Server is busy.
503 OTSTimeout Operation timeout.

這是由于表格存儲是一個(gè)純分布式的NoSQL服務(wù),服務(wù)端會根據(jù)數(shù)據(jù)分區(qū)的數(shù)據(jù)量、訪問情況做自動(dòng)的負(fù)載均衡,這樣就突破了單機(jī)服務(wù)能力的限制,實(shí)現(xiàn)了數(shù)據(jù)規(guī)模和訪問并發(fā)的無縫擴(kuò)展。

如下圖所示,表格存儲會按照第一個(gè)主鍵的順序,將實(shí)際數(shù)據(jù)劃分到不同的數(shù)據(jù)分區(qū)中,不同的數(shù)據(jù)分區(qū)會調(diào)度到不同的服務(wù)節(jié)點(diǎn)提供讀寫服務(wù)。

當(dāng)某個(gè)數(shù)據(jù)分區(qū)的數(shù)據(jù)量過大,或者訪問過熱,如下圖的數(shù)據(jù)分區(qū)P1,表格存儲的動(dòng)態(tài)負(fù)載均衡機(jī)制能夠檢測到這種情況的發(fā)生,并將數(shù)據(jù)分區(qū)分裂成兩個(gè)數(shù)據(jù)分區(qū)P1’和P5,并將該兩個(gè)數(shù)據(jù)分區(qū)調(diào)度到負(fù)載較低的服務(wù)節(jié)點(diǎn)上。

表格存儲使用上述的自動(dòng)負(fù)載均衡機(jī)制實(shí)現(xiàn)表數(shù)據(jù)規(guī)模和訪問并發(fā)的自動(dòng)擴(kuò)展,全程無需人工介入, 當(dāng)然在數(shù)據(jù)表新建立時(shí),只有一個(gè)數(shù)據(jù)分區(qū),該表上能夠提供的讀寫并發(fā)有限,自動(dòng)負(fù)載均衡機(jī)制也有一定的延時(shí)性,所以可以直接聯(lián)系到我們的工程師,預(yù)先將數(shù)據(jù)表劃分成多個(gè)數(shù)據(jù)分區(qū)。

表格存儲使用共享存儲的機(jī)制,數(shù)據(jù)分區(qū)為邏輯單位,所以在負(fù)載均衡的過程中,不會有實(shí)際數(shù)據(jù)的遷移,僅僅是數(shù)據(jù)表元信息的變更,在元信息變更的過程中,為了保證數(shù)據(jù)的一致性,涉及到的數(shù)據(jù)分區(qū)會有短暫的不可用時(shí)間, 正常情況下影響時(shí)間為百毫秒級別,在數(shù)據(jù)分區(qū)負(fù)載較大時(shí),可能會持續(xù)到秒級別, 在這個(gè)時(shí)間內(nèi)對該分區(qū)的讀寫操作就有可能接到上述的錯(cuò)誤,一般重試即可解決。在官方的SDK中默認(rèn)提供了一些重試策略,在初始化Client端時(shí)就可以指定重試策略。

同時(shí),表格存儲提供的也是標(biāo)準(zhǔn)Restful API協(xié)議,由于網(wǎng)絡(luò)環(huán)境的不可控,所有的讀寫操作也都建議增加重試策略,能夠?qū)W(wǎng)絡(luò)錯(cuò)誤等有一定的容錯(cuò)能力。

說明:批量讀寫操作BatchWriteRow及BatchGetRow讀寫的數(shù)據(jù)可能屬于多張表或者一張表的多個(gè)數(shù)據(jù)分區(qū),有可能某一個(gè)分區(qū)正好在分裂,所以整個(gè)操作是非原子性的,只能夠保證每個(gè)單行操作的原子性,該操作返回碼為200時(shí)仍然需要檢查response中的getFailedRows() 是否有失敗的單行操作。