您好,登錄后才能下訂單哦!
FTS(Fault Tolerance Serve)是GreenPlum中的故障檢測服務,是保證GP高可用的核心功能。GreenPlum的Segment的健康檢測及HA是由GP Master實現的,GP Master上面有個專門的進程–FTS進程,它可以快速檢測到Primary或者Mirror是否掛掉,并及時作出Primary/Mirror 故障切換。
GreenPlum的Segment的健康檢測及HA是由GP Master實現的,GP Master上面有個專門的進程–FTS進程,它可以快速檢測到Primary或者Mirror是否掛掉,并及時作出Primary/Mirror 故障切換。如果FTS掛掉了,Master將會重新fork出來一個FTS進程。
GP Master上面的FTS進程每隔60s(時間可以配置)向Primary或者Mirror發送心跳包,Primary和Mirror收到心跳包后返回它們的當前狀態,FTS進程心跳包的發送狀態和Segment返回狀態更新元信息和作出故障切換。因為Segment可能很多,為了加快檢測速度,FTS是多線程的,默認16個線程。
GP Master首先會檢測Primary狀態,如果Primary不可連通,那么將會檢測Mirror狀態,Primary/Mirror狀態總共有4種:
Primary活著,Mirror活著。GP Master探測Primary成功之后直接返回,進行下一個Segment檢測;
Primary活著,Mirror掛了。GP Master探測Primary成功之后,通過Primary返回的狀態得知Mirror掛掉了(Mirror掛掉之后,Primary將會探測到,將自己變成ChangeTracking模式),這時候更新Master元信息,進行下一個Segment檢測;
Primary掛了,Mirror活著。GP Master探測Primary失敗之后探測Mirror,發現Mirror是活著,這時候更新Master上面的元信息,同時使Mirror接管Primary(故障切換),進行下一個Segment檢測;
Primary掛了,Mirror掛了。GP Master探測Primary失敗之后探測Mirror,Mirror也是掛了,直到重試最大值,結束這個Segment的探測,也不更新Master元信息了,進行下一個Segment檢測。
用來故障檢測的線程數量,默認為16。
兩次檢測的時間間隔,默認為60s。如果一次檢測時間使用10s,那么剩余50s將會sleep;如果超過60s,將會直接進入下一次檢測。
檢測Segment超時時間,默認值: 20。
檢測Segment失敗重試次數,如果超過這個次數,將會認為當前節點掛掉,默認值: 5。
Prmary和Mirror文件同步允許連接Mirror最大超時時間,如果達到這個超時時間,Primary將會認為Mirror掛掉了,默認值: 180s。
通過GreenPlum FTS機制學習,可以了解部分MPP架構高可用原理。同時根據自身的業務,合理地配置FTS參數,保障GP高可用。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。