1.一種時序數(shù)據(jù)庫的集群化方法,其特征在于,包括步驟:
將多個時序數(shù)據(jù)庫構(gòu)建為一個組;
一個組負責一個時間段的數(shù)據(jù)寫入與查詢請求;
一個組或多個組連接起來構(gòu)成一個鏈;
以鏈為單元處理數(shù)據(jù)寫入與查詢請求;
將所有的鏈統(tǒng)一管理;
根據(jù)時序數(shù)據(jù)庫狀態(tài)將一個新的組加入到鏈中,并將寫入請求切換到新的組上。
2.如權(quán)利要求1所述的一種時序數(shù)據(jù)庫的集群化方法,其特征在于,根據(jù)資源使用情況將鏈設置為共享或獨占。
3.如權(quán)利要求1所述的一種時序數(shù)據(jù)庫的集群化方法,其特征在于,將多個時序數(shù)據(jù)庫構(gòu)建為一個組包括:
同組的多個時序數(shù)據(jù)庫實例部署在不同的服務器上、同組的實例網(wǎng)絡訪問速度相當、同組的實例磁盤存儲空間相當、同組的時序數(shù)據(jù)庫實例各自保存一份完整的用戶數(shù)據(jù)和一個時序數(shù)據(jù)庫實例僅被一個組選中中的至少一項。
4.如權(quán)利要求1所述的一種時序數(shù)據(jù)庫的集群化方法,其特征在于,一個組負責一個時間段的數(shù)據(jù)寫入與查詢請求包括:
組有一個時間范圍、組根據(jù)寫入的數(shù)據(jù)點和/或時間戳接收寫入、同組的所有實例都寫入數(shù)據(jù)、查詢數(shù)據(jù)的范圍會被縮小至該組的范圍之內(nèi)和通過查詢同組的任意實例實現(xiàn)查詢數(shù)據(jù)中的至少一項。
5.如權(quán)利要求1所述的一種時序數(shù)據(jù)庫的集群化方法,其特征在于,一個組或多個組連接起來構(gòu)成一個鏈包括:
同一個鏈中的組按時間順序前后緊密銜接,前一個組的結(jié)束時間與其后的組的起始時間相同;
根據(jù)組的磁盤用量進行組切換動作;
鏈中的任意兩個組彼此之間互相獨立。
6.如權(quán)利要求5所述的一種時序數(shù)據(jù)庫的集群化方法,其特征在于,組切換動作包括:
鏈中加入一個新的組,以切換時的當前時間為界,決定上一個組的結(jié)束時間以及新的組的開始時間。
7.如權(quán)利要求1所述的一種時序數(shù)據(jù)庫的集群化方法,其特征在于,根據(jù)時序數(shù)據(jù)庫狀態(tài)將一個新的組加入到鏈中,并將寫入請求切換到新的組上包括:
選擇一個新的組,且該組當前狀態(tài)沒有被任何鏈引用;
將鏈中最后一個組的結(jié)束時間與鏈中將要加入的新組的開始時間設置為相同;
將請求根據(jù)時間戳導向新的組。
8.如權(quán)利要求1所述的一種時序數(shù)據(jù)庫的集群化方法,其特征在于,以鏈為單元處理用戶的數(shù)據(jù)寫入與查詢請求包括:
根據(jù)寫入數(shù)據(jù)請求的時間戳寫入鏈中對應時間范圍的組;
根據(jù)查詢請求的查詢的時間范圍,從涉及到的組中查詢數(shù)據(jù)并歸并后返回。
9.如權(quán)利要求1所述的一種時序數(shù)據(jù)庫的集群化方法,其特征在于,將所有的鏈統(tǒng)一管理包括:
多個用戶使用多個的鏈或共享同一個鏈;
一個用戶有一個或多個鏈;
任意兩個鏈之間彼此隔離。
10.如權(quán)利要求1所述的一種時序數(shù)據(jù)庫的集群化方法,其特征在于,根據(jù)資源使用情況將鏈設置為共享或獨占包括:
根據(jù)資源使用情況將鏈從共享切換成獨占;或根據(jù)資源使用情況將鏈從獨占切換成共享。
11.一種時序數(shù)據(jù)庫集群化系統(tǒng),其特征在于,包括:
信息收集模塊,用于收集不同機器上的時序數(shù)據(jù)庫實例信息;
組調(diào)度模塊,用于將不同的時序數(shù)據(jù)庫實例組合成多個組,將組與組鏈接形成鏈,并分配資源,記錄時序數(shù)據(jù)庫實例的狀態(tài);
元數(shù)據(jù)管理模塊,用于記錄用戶數(shù)據(jù)與時序數(shù)據(jù)庫鏈的對應關(guān)系;
用戶請求處理模塊,用于通過查看元數(shù)據(jù)管理模塊,獲取用戶數(shù)據(jù)與時序數(shù)據(jù)庫對應關(guān)系,并到對應組寫入或查詢數(shù)據(jù);
添加模塊,用于為鏈添加新組,并進行組切換。
12.如權(quán)利要求11所述的一種時序數(shù)據(jù)庫集群化系統(tǒng),其特征在于,組調(diào)度模塊包括:
組成模塊,用于從不同服務器上選取網(wǎng)絡傳輸速率相當、磁盤剩余空間相當?shù)?、且沒有被其他組引用的時序數(shù)據(jù)庫實例組成一個組;
檢測模塊,用于檢測實例狀態(tài),當組中某個實例出現(xiàn)故障時,處理用戶請求時排除該實例,當某個組所有實例均不可用時進行組切換;
鏈分裂模塊,用于將原有的鏈分裂為兩條或多條鏈,其中包括獨占一條或多條鏈資源的新鏈和原有的舊鏈;
鏈合并模塊,用于將多條鏈合并為一條鏈。
13.如權(quán)利要求11所述的一種時序數(shù)據(jù)庫集群化系統(tǒng),其特征在于,元數(shù)據(jù)管理模塊包括:
定位模塊,用于定位訪問對應的具體時序數(shù)據(jù)庫實例;
更新模塊,用于資源改變時更新元數(shù)據(jù)。
14.如權(quán)利要求11所述的一種時序數(shù)據(jù)庫集群化系統(tǒng),其特征在于,
用戶請求處理模塊包括:
寫入請求模塊,用于響應寫入請求,根據(jù)元數(shù)據(jù)管理模塊查找到對應的鏈,并根據(jù)時間戳寫入到對應鏈的對應組,寫入對應鏈的所有實例后發(fā)送成功信息;
查詢請求模塊,用于響應查詢請求,根據(jù)元數(shù)據(jù)管理模塊查找到對應的鏈,根據(jù)查詢的范圍找到涉及的組,將查詢范圍縮小至各個組的范圍,再去各個組分別執(zhí)行查詢,并將結(jié)果匯總發(fā)送完整的查詢結(jié)果。