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