專利名稱:一種面向大電網(wǎng)的實時數(shù)據(jù)庫系統(tǒng)的負載均衡管理系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于電力系統(tǒng)控制技術(shù)領(lǐng)域,具體涉及一種面向大電網(wǎng)的實時數(shù)據(jù)庫系統(tǒng)的負載均衡管理系統(tǒng)。
背景技術(shù):
在現(xiàn)有電力調(diào)度技術(shù)支持系統(tǒng)中,使用實時數(shù)據(jù)庫存儲和管理遙測量、遙信量等實時數(shù)據(jù)。隨著電網(wǎng)的發(fā)展,實時量測數(shù)據(jù)量不斷變大,現(xiàn)有調(diào)度自動化系統(tǒng)所使用的實時數(shù)據(jù)庫效率和存儲的瓶頸越來越顯著。為了解決以上問題,分布式并行實時數(shù)據(jù)庫應(yīng)運而生。分布式并行實時數(shù)據(jù)庫由多個節(jié)點組成,它們同時提供服務(wù),給高并發(fā)訪問提供了非常有力的支持。但是,直接將分布式并行實時數(shù)據(jù)庫應(yīng)用在電力系統(tǒng)中是無法支持負載均衡的。電力系統(tǒng)的分布式并行實時數(shù)據(jù)庫是將分布在不同地方的單機實時數(shù)據(jù)庫組合起來的。對每個單機實時數(shù)據(jù)庫的訪問頻率和訪問數(shù)據(jù)量大小不盡相同。所以,在實際應(yīng)用中,并行實時數(shù)據(jù)庫需要滿足負載均衡。分布式并行實時數(shù)據(jù)庫中,如何讓每個節(jié)點都和其他節(jié)點保持負載均衡,甚至每個實時數(shù)據(jù)庫的表文件之間也是負載均衡的,這是目前分布式并行實時數(shù)據(jù)庫面臨的較大問題。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)的不足,本發(fā)明提出一種面向大電網(wǎng)的實時數(shù)據(jù)庫系統(tǒng)的負載均衡管理系統(tǒng),從靜態(tài)和動態(tài)兩方面實現(xiàn)負載均衡。本發(fā)明提供的一種面向大電網(wǎng)的實時數(shù)據(jù)庫系統(tǒng)的負載均衡管理系統(tǒng),所述實時數(shù)據(jù)庫系統(tǒng)為一個并行的數(shù)據(jù)庫系統(tǒng),數(shù)據(jù)庫系統(tǒng)的表文件被分成M個子表,存儲在Q個數(shù)據(jù)節(jié)點上;其改進之處在于,所述負載均衡管理系統(tǒng)包括表文件拆分模塊,存儲模塊,心跳模塊,元數(shù)據(jù)管理模塊,負載均衡判斷模塊;所述表文件拆分模塊用于根據(jù)節(jié)點數(shù)目和表文件大小拆分表文件;所述存儲模塊用于將拆分后的表文件存儲在各個數(shù)據(jù)節(jié)點上;所述心跳模塊用于各個數(shù)據(jù)節(jié)點與管理節(jié)點之間的通信;所述元數(shù)據(jù)管理模塊:用于管理子表與數(shù)據(jù)節(jié)點的對應(yīng)關(guān)系;所述負載均衡判斷模塊用于判斷當前系統(tǒng)負載是否均衡。其中,所述表文件拆分模塊、所述心跳模塊、所述元數(shù)據(jù)管理模塊和所述負載均衡判斷模塊放置在管理節(jié)點中,所述存儲模塊放置在實時數(shù)據(jù)庫的數(shù)據(jù)節(jié)點中;所述管理節(jié)點和所述實時數(shù)據(jù)庫的數(shù)據(jù)節(jié)點通過網(wǎng)絡(luò)通信。其中,所述表文件拆分模塊包括:表文件讀取模塊,用于從數(shù)據(jù)庫中讀取表文件,表文件分片模塊,用于對讀取到表文件分片;和
本地元數(shù)據(jù)管理器,用于管理表文件與分片文件之間的對應(yīng)關(guān)系。其中,所述存儲模塊包括:負載判斷模塊,用于判斷本地的負載情況;和數(shù)據(jù)模塊,用于當本節(jié)點被選為存儲節(jié)點時,就地存儲表文件的子表數(shù)據(jù)。其中,所述心跳模塊包括:發(fā)送消息模塊,用于當該節(jié)點不是管理節(jié)點時,定時將本節(jié)點上的負載信息發(fā)送給管理節(jié)點;廣播模塊,用于將本機的負載和判斷負載的時間廣播給其他所有節(jié)點;和接受消息模塊,用于接受來自其他節(jié)點的心跳信息,并將這些心跳信息更新在元
數(shù)據(jù)管理。其中,所述元數(shù)據(jù)管理模塊包括:節(jié)點管理模塊,用于管理集群中各個數(shù)據(jù)節(jié)點的存活狀態(tài);表文件管理模塊,用于管理集群中各個數(shù)據(jù)節(jié)點上存儲的表文件信息,包括子表信息;和負載管理模塊:用于管理集群中各個數(shù)據(jù)節(jié)點的負載情況。其中,所述負載均衡判斷模塊包括:負載采集模塊,用于接受來自其他節(jié)點發(fā)送過來的廣播消息,采集各個數(shù)據(jù)節(jié)點的負載情況,包括其他節(jié)點的心跳信息;和負載比較模塊:用于比較各個數(shù)據(jù)節(jié)點的負載情況,找出最小負載的數(shù)據(jù)節(jié)點。與現(xiàn)有技術(shù)比,本發(fā)明的有益效果為:本發(fā)明可以在保證并行實時數(shù)據(jù)庫高并發(fā)響應(yīng)的基礎(chǔ)上,集群中的每個數(shù)據(jù)節(jié)點都是負載均衡的,并且每個實時數(shù)據(jù)庫表文件也是負載均衡的。本發(fā)明提供的面向大電網(wǎng)的并行實時數(shù)據(jù)庫系統(tǒng)的負載均衡管理方法。在實時數(shù)據(jù)庫節(jié)點數(shù)量足夠多的情況下,并行實時數(shù)據(jù)庫將顯著的提高數(shù)據(jù)操作性能;并且,在不影響并行實時數(shù)據(jù)庫訪問功能的前提下,提供負載均衡的策略,不會出現(xiàn)嚴重熱點。在分布式并行實時數(shù)據(jù)庫系統(tǒng)中,每個數(shù)據(jù)節(jié)點上的負載情況是相當?shù)?。通過本發(fā)明提供的分布式實時數(shù)據(jù)庫負載均衡方法,可以在不影響單機版調(diào)度技術(shù)支持本地計算的情況下,支持更加豐富的應(yīng)用。
圖1為本發(fā)明提供的管理節(jié)點和實時數(shù)據(jù)庫節(jié)點的對應(yīng)關(guān)系圖。圖2為本發(fā)明提供的負載均衡判斷模塊實現(xiàn)負載均衡的流程圖。
具體實施例方式下面結(jié)合附圖對本發(fā)明的具體實施方式
作進一步的詳細說明。本實施例提出的負載均衡管理系統(tǒng),從靜態(tài)和動態(tài)兩方面實現(xiàn)了負載均衡,其過程如下:本實施例提供的一種面向大電網(wǎng)的實時數(shù)據(jù)庫系統(tǒng)的負載均衡管理系統(tǒng),所述實時數(shù)據(jù)庫系統(tǒng)為N個并行的數(shù)據(jù)庫系統(tǒng),每個數(shù)據(jù)庫系統(tǒng)的表文件被分成M個子表,存儲在Q個數(shù)據(jù)節(jié)點上,N、M、Q為正整數(shù)。所述負載均衡管理系統(tǒng)包括表文件拆分模塊,存儲模塊,心跳模塊,元數(shù)據(jù)管理模塊,負載均衡判斷模塊;所述表文件拆分模塊用于根據(jù)節(jié)點數(shù)目和表文件大小拆分表文件;所述存儲模塊用于將拆分后的表文件存儲在各個數(shù)據(jù)節(jié)點上;所述心跳模塊用于各個數(shù)據(jù)節(jié)點與管理節(jié)點之間的通信,該信息交流既包括數(shù)據(jù)節(jié)點的存活狀態(tài),也包括各個數(shù)據(jù)節(jié)點的負載情況;所述元數(shù)據(jù)管理模塊:用于管理子表與數(shù)據(jù)節(jié)點的對應(yīng)關(guān)系;元數(shù)據(jù)是指每個子表所分配機器以及子表的副本分配的機器;所述負載均衡判斷模塊用于判斷當前系統(tǒng)負載是否均衡。本實施例的所述表文件拆分模塊、所述心跳模塊、所述元數(shù)據(jù)管理模塊和所述負載均衡判斷模塊放置在管理節(jié)點中,所述存儲模塊放置在實時數(shù)據(jù)庫的各節(jié)點中;所述管理節(jié)點和所述實時數(shù)據(jù)庫的各數(shù)據(jù)節(jié)點通過網(wǎng)絡(luò)通信。其中:所述表文件拆分模塊包括:表文件讀取模塊,用于從數(shù)據(jù)庫中讀取表文件,表文件分片模塊,用于對讀取到表文件分片;和本地元數(shù)據(jù)管理器,用于管理表文件與分片文件之間的對應(yīng)關(guān)系。所述存儲模塊包括:負載判斷模塊,用于判斷本地的負載情況,如CPU,內(nèi)存還有網(wǎng)絡(luò)帶寬;可以使用簡單的帶權(quán)平均數(shù)得到最終的負載結(jié)果;和數(shù)據(jù)模塊,用于當本節(jié)點被選為存儲節(jié)點時,就地存儲表文件的子表數(shù)據(jù)。所述心跳模塊包括:發(fā)送消息模塊,用于當該節(jié)點不是管理節(jié)點時,定時將本節(jié)點上的負載信息發(fā)送給管理節(jié)點;廣播模塊,用于將本機的負載和判斷負載的時間廣播給其他所有數(shù)據(jù)節(jié)點;和接受消息模塊,用于接受來自其他節(jié)點的心跳信息,并將這些心跳信息更新在元數(shù)據(jù)管理。當一段時間沒有收到心跳信息,就表明該節(jié)點已經(jīng)失效,將該節(jié)點從集群中去除。所述元數(shù)據(jù)管理模塊包括:節(jié)點管理模塊,用于管理集群中各個數(shù)據(jù)節(jié)點的存活狀態(tài),包括節(jié)點上次發(fā)心跳的時間;表文件管理模塊,用于管理集群中各個數(shù)據(jù)節(jié)點上存儲的表文件信息,包括子表信息;和負載管理模塊:用于管理集群中各個數(shù)據(jù)節(jié)點的負載情況。所述負載均衡判斷模塊包括:負載采集模塊,用于采集各個數(shù)據(jù)節(jié)點的負載情況,包括其他節(jié)點的心跳信息;負載比較模塊:用于比較各個數(shù)據(jù)節(jié)點的負載情況,找出最小負載的節(jié)點。所述負載均衡判斷模塊產(chǎn)生負載均衡表,供管理人員查閱。本實施例通過表文件拆分模塊根據(jù)節(jié)點數(shù)目和表文件大小拆分表文件,將拆分后的子表均衡的放置各數(shù)據(jù)節(jié)點中,實現(xiàn)了靜態(tài)的負載均衡;每個子表都有多個備份,負載均衡既存在于機器與機器之間,也存在于表文件的多個備份之間。本實施例的動態(tài)均衡過程如下:本實施例通過表文件拆分模塊將數(shù)據(jù)庫的表文件拆分成多個子表,根據(jù)元數(shù)據(jù)管理模塊中的對應(yīng)關(guān)系,通過存儲模塊存在多個數(shù)據(jù)節(jié)點上。每個子表都有多個備份,存在與不同的節(jié)點上。管理節(jié)點和各個數(shù)據(jù)節(jié)點之間采用心跳模塊相互讀取信息,當有子表文件需要讀取或存儲時,根據(jù)訪問管理節(jié)點的信息,采用負載均衡判斷模塊判斷,找到負載最小節(jié)點,然后讀取或存儲,實現(xiàn)動態(tài)的負載均衡。其中,其找到負載最小節(jié)點的過程如圖2所示,具體步驟如下:A、根據(jù)客戶請求,訪問管理節(jié)點;請求包括讀寫或者存儲等;B、管理節(jié)點中的負載均衡判斷模塊通過心跳模塊實時監(jiān)測其他節(jié)點上負載情況,找出負載最小節(jié)點;C、進行客戶的請求處理。最后應(yīng)當說明的是:以上實施例僅用以說明本發(fā)明的技術(shù)方案而非對其限制,盡管參照上述實施例對本發(fā)明進行了詳細的說明,所屬領(lǐng)域的普通技術(shù)人員應(yīng)當理解:依然可以對本發(fā)明的具體實施方式
進行修改或者等同替換,而未脫離本發(fā)明精神和范圍的任何修改或者等同替換,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當中。
權(quán)利要求
1.一種面向大電網(wǎng)的實時數(shù)據(jù)庫系統(tǒng)的負載均衡管理系統(tǒng),所述實時數(shù)據(jù)庫系統(tǒng)為一個并行的數(shù)據(jù)庫系統(tǒng),數(shù)據(jù)庫系統(tǒng)的表文件被分成M個子表,存儲在Q個數(shù)據(jù)節(jié)點上;其特征在于, 所述負載均衡管理系統(tǒng)包括表文件拆分模塊,存儲模塊,心跳模塊,元數(shù)據(jù)管理模塊,負載均衡判斷模塊; 所述表文件拆分模塊用于根據(jù)節(jié)點數(shù)目和表文件大小拆分表文件; 所述存儲模塊用于將拆分后的表文件存儲在各個數(shù)據(jù)節(jié)點上; 所述心跳模塊用于各個數(shù)據(jù)節(jié)點與管理節(jié)點之間的通信; 所述元數(shù)據(jù)管理模塊:用于管理子表與數(shù)據(jù)節(jié)點的對應(yīng)關(guān)系; 所述負載均衡判斷模塊用于判斷當前系統(tǒng)負載是否均衡。
2.按權(quán)利要求1所述的負載均衡管理系統(tǒng),其特征在于,所述表文件拆分模塊、所述心跳模塊、所述元數(shù)據(jù)管理模塊和所述負載均衡判斷模塊放置在管理節(jié)點中,所述存儲模塊放置在實時數(shù)據(jù)庫的數(shù)據(jù)節(jié)點中;所述管理節(jié)點和所述實時數(shù)據(jù)庫的數(shù)據(jù)節(jié)點通過網(wǎng)絡(luò)通 目。
3.按權(quán)利要求1所述的負載均衡管理系統(tǒng),其特征在于,所述表文件拆分模塊包括: 表文件讀取模塊,用于從數(shù)據(jù)庫中讀取表文件, 表文件分片模塊,用于對讀取到表文件分片;和 本地元數(shù)據(jù)管理器,用于管理表文件與分片文件之間的對應(yīng)關(guān)系。
4.按權(quán)利要求1所述的負載均衡管理系統(tǒng),其特征在于,所述存儲模塊包括: 負載判斷模塊,用于判斷本地的負載情況;和 數(shù)據(jù)模塊,用于當本節(jié)點被選為存儲節(jié)點時,就地存儲表文件的子表數(shù)據(jù)。
5.按權(quán)利要求1所述的負載均衡管理系統(tǒng),其特征在于,所述心跳模塊包括: 發(fā)送消息模塊,用于當該節(jié)點不是管理節(jié)點時,定時將本節(jié)點上的負載信息發(fā)送給管理節(jié)點; 廣播模塊,用于將本機的負載和判斷負載的時間廣播給其他所有節(jié)點;和 接受消息模塊,用于接受來自其他節(jié)點的心跳信息,并將這些心跳信息更新在元數(shù)據(jù)管理。
6.按權(quán)利要求1所述的負載均衡管理系統(tǒng),其特征在于,所述元數(shù)據(jù)管理模塊包括: 節(jié)點管理模塊,用于管理集群中各個數(shù)據(jù)節(jié)點的存活狀態(tài); 表文件管理模塊,用于管理集群中各個數(shù)據(jù)節(jié)點上存儲的表文件信息,包括子表信息;和 負載管理模塊:用于管理集群中各個數(shù)據(jù)節(jié)點的負載情況。
7.按權(quán)利要求1所述的負載均衡管理系統(tǒng),其特征在于,所述負載均衡判斷模塊包括: 負載采集模塊,用于接受來自其他節(jié)點發(fā)送過來的廣播消息,采集各個數(shù)據(jù)節(jié)點的負載情況,包括其他節(jié)點的心跳信息;和 負載比較模塊:用于比較各個數(shù)據(jù)節(jié)點的負載情況,找出最小負載的數(shù)據(jù)節(jié)點。
全文摘要
本發(fā)明為一種面向大電網(wǎng)的實時數(shù)據(jù)庫系統(tǒng)的負載均衡管理系統(tǒng),實時數(shù)據(jù)庫系統(tǒng)為一個并行的數(shù)據(jù)庫系統(tǒng),其表文件被分成M個子表,存儲在Q個數(shù)據(jù)節(jié)點上;本發(fā)明負載均衡管理系統(tǒng)包括表文件拆分模塊,存儲模塊,心跳模塊,元數(shù)據(jù)管理模塊,負載均衡判斷模塊;表文件拆分模塊用于根據(jù)數(shù)據(jù)節(jié)點數(shù)目和表文件大小拆分表文件;存儲模塊用于將拆分后的表文件存儲在各個數(shù)據(jù)節(jié)點上;心跳模塊用于各個數(shù)據(jù)節(jié)點與管理節(jié)點之間的通信;元數(shù)據(jù)管理模塊用于管理子表與數(shù)據(jù)節(jié)點的對應(yīng)關(guān)系;負載均衡判斷模塊用于判斷當前系統(tǒng)負載是否均衡。本發(fā)明在保證并行實時數(shù)據(jù)庫高并發(fā)響應(yīng)的基礎(chǔ)上,保證集群中的節(jié)點都是負載均衡的,且每個數(shù)據(jù)庫表文件也是負載均衡的。
文檔編號G06F17/30GK103095806SQ20121055887
公開日2013年5月8日 申請日期2012年12月20日 優(yōu)先權(quán)日2012年12月20日
發(fā)明者孫其強, 李立新, 狄方春, 黃文英, 任曉輝, 林靜懷, 江凡, 謝巧云, 花靜, 閆湖, 黃運豪, 季知祥, 袁榮昌, 李大鵬, 王威 申請人:中國電力科學(xué)研究院, 國家電網(wǎng)公司, 福建省電力有限公司