一種鏡像元數(shù)據(jù)的分布式鎖算法
【專利摘要】本發(fā)明公開了一種鏡像元數(shù)據(jù)的分布式鎖算法。元數(shù)據(jù)存放在元數(shù)據(jù)服務(wù)器及其鏡像服務(wù)器上,當(dāng)多個應(yīng)用程序讀寫元數(shù)據(jù)時,先將讀寫指令存入電力平臺服務(wù)器的讀寫隊列,隊列中每個操作指令按順序編號。編號后的寫操作指令發(fā)往每一個存放有元數(shù)據(jù)的服務(wù)器,服務(wù)器采用獨占鎖(X鎖)的方式對元數(shù)據(jù)進行寫入操作,即所有元數(shù)據(jù)的其它鎖已釋放完畢才可以寫入,并將寫操作的執(zhí)行結(jié)果返回給電力平臺服務(wù)器。此外,在寫入操作時為提高寫入速度,寫入時采用了分段加鎖技術(shù),即將數(shù)據(jù)分成多段存儲,然后給每一段數(shù)據(jù)配一把鎖,多線程同時對各段進行寫入操作,提高并發(fā)訪問效率。
【專利說明】一種鏡像元數(shù)據(jù)的分布式鎖算法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及電力系統(tǒng)數(shù)據(jù)平臺領(lǐng)域,具體為一種鏡像元數(shù)據(jù)的分布式鎖算法。
【背景技術(shù)】
[0002]電力元數(shù)據(jù)管理平臺中,多個應(yīng)用程序需要對多臺服務(wù)器中的元數(shù)據(jù)進行并發(fā)訪問,同時需要保證訪問過程中各服務(wù)器中的元數(shù)據(jù)的一致性和完整性,以及實現(xiàn)訪問的高性能。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的是提供一種鏡像元數(shù)據(jù)的分布式鎖算法,以克服上述現(xiàn)有技術(shù)的不足。
[0004]為了達到上述目的,本發(fā)明所采用的技術(shù)方案為:
一種鏡像元數(shù)據(jù)的分布式鎖算法,其特征在于:元數(shù)據(jù)存放在多個元數(shù)據(jù)服務(wù)器及鏡像服務(wù)器上,當(dāng)多個應(yīng)用程序同時讀寫元數(shù)據(jù)時,先將讀寫指令存入電力平臺服務(wù)器的讀寫取號隊列中,元數(shù)據(jù)服務(wù)器收到讀指令后采用共享鎖方式進行讀操作,寫指令采用獨占鎖方式進行寫操作,讀操作結(jié)果直接返回給應(yīng)用程序和電力平臺服務(wù)器,寫操作結(jié)果返回給電力平臺服務(wù)器。
[0005]所述的一種鏡像元數(shù)據(jù)的分布式鎖算法,其特征在于:取號后的寫操作指令即可發(fā)給每個元數(shù)據(jù)服務(wù)器,讀指令將根據(jù)各元數(shù)據(jù)服務(wù)器的最新寫操作完成情況和網(wǎng)絡(luò)狀況,選擇其中一臺服務(wù)器進行讀操作。
[0006]所述的一種鏡像元數(shù)據(jù)的分布式鎖算法,其特征在于:到達元數(shù)據(jù)服務(wù)器的讀操作指令,將比對日志中記錄的最新寫操作編號和自身的讀指令編號,保證讀指令在寫操作指令之后,確定讀指令是否有效或過期作廢,如果有效則采用共享鎖方式讀取元數(shù)據(jù),否則廢棄讀指令,讀取失敗或超過最大讀等待時間,則選擇另一符合條件的元數(shù)據(jù)服務(wù)器進行讀操作。
[0007]所述的一種鏡像元數(shù)據(jù)的分布式鎖算法,其特征在于:到達元數(shù)據(jù)服務(wù)器的寫操作指令,使用獨占鎖進行寫操作,在寫入操作時為提高寫入速度,寫操作過程采用了分段加鎖技術(shù),即將數(shù)據(jù)分成多段存儲,然后給每一段數(shù)據(jù)加一把鎖,多線程同時對各段進行寫入操作,提高并發(fā)訪問效率。
[0008]本發(fā)明具有如下優(yōu)點:
(I)采用了隊列和分布式讀寫鎖的方案,在多應(yīng)用程序并發(fā)訪問多元數(shù)據(jù)服務(wù)器時,保證了數(shù)據(jù)的一致性和完整性。
[0009](2)元數(shù)據(jù)服務(wù)器在寫入操作時采用分段加鎖技術(shù),提高了線程的并發(fā)訪問效率。
[0010](3)相比采用多個元數(shù)據(jù)服務(wù)器同步讀(或?qū)?的全局讀寫鎖方案,本方案采用了隊列和分布式讀寫鎖,只要保證入隊時的讀寫順序,既保證了數(shù)據(jù)的一致性和完整性,又提高了訪問速度?!緦@綀D】
【附圖說明】
[0011]圖1為本發(fā)明的原理圖。
【具體實施方式】
[0012]如圖1所示。一種鏡像元數(shù)據(jù)的分布式鎖算法,元數(shù)據(jù)存放在多個元數(shù)據(jù)服務(wù)器及其鏡像服務(wù)器上,當(dāng)多個應(yīng)用程序讀寫元數(shù)據(jù)時,先將讀寫指令存入電力平臺服務(wù)器的讀寫取號隊列,隊列中每個操作指令按順序編號。編號后的寫操作指令直接發(fā)往每一個存放有元數(shù)據(jù)的服務(wù)器,服務(wù)器采用獨占鎖(X鎖)的方式對元數(shù)據(jù)進行寫入操作,即所有元數(shù)據(jù)的其它鎖已釋放完畢才可以寫入,并將寫操作的執(zhí)行結(jié)果返回給電力平臺服務(wù)器。此夕卜,在寫入操作時為提高寫入速度,寫入時采用了分段加鎖技術(shù),即將數(shù)據(jù)分成多段存儲,然后給每一段數(shù)據(jù)配一把鎖,多線程同時對各段進行寫入操作,提高并發(fā)訪問效率。編號的讀操作指令,將根據(jù)各元數(shù)據(jù)服務(wù)器的最新寫操作完成情況以及網(wǎng)絡(luò)狀況,選擇其中一臺服務(wù)器進行讀取,該服務(wù)器將采用共享鎖(S鎖)的方式讀取元數(shù)據(jù),即多個讀操作可以并發(fā)執(zhí)行,最后將讀操作結(jié)果直接返回給應(yīng)用程序和電力服務(wù)器。
[0013]由于采用了隊列和讀寫鎖的方案,多應(yīng)用程序并發(fā)訪問多個元數(shù)據(jù)服務(wù)器時保證了數(shù)據(jù)的一致性和完整性。另一方面,元數(shù)據(jù)服務(wù)器在寫入操作時采用分段加鎖技術(shù),提高了線程的并發(fā)訪問效率。。
[0014]實施例1,多個應(yīng)用程序訪問多個元數(shù)據(jù)服務(wù)器或鏡像服務(wù)器上的元數(shù)據(jù)。
[0015]元數(shù)據(jù)和兩個鏡像分布在不同的服務(wù)器上,應(yīng)用程序1、應(yīng)用程序2、應(yīng)用程序3和應(yīng)用程序4分別對元數(shù)據(jù)進行讀、讀、寫和讀操作,他們按時間先后進入讀寫隊列,前兩個讀指令操作同時從同一鏡像元數(shù)據(jù)服務(wù)器中讀取了元數(shù)據(jù)信息,應(yīng)用程序I和應(yīng)用程序2得到了相同的元數(shù)據(jù)信息。其后的寫指令同時修改了所有服務(wù)器中的元數(shù)據(jù)內(nèi)容,應(yīng)用程序4讀取的元數(shù)據(jù)信息反映了應(yīng)用程序3的寫入操作。
【權(quán)利要求】
1.一種鏡像元數(shù)據(jù)的分布式鎖算法,其特征在于:元數(shù)據(jù)存放在多個元數(shù)據(jù)服務(wù)器及鏡像服務(wù)器上,當(dāng)多個應(yīng)用程序同時讀寫元數(shù)據(jù)時,先將讀寫指令存入電力平臺服務(wù)器的讀寫取號隊列中,元數(shù)據(jù)服務(wù)器收到讀指令后采用共享鎖方式進行讀操作,寫指令采用獨占鎖方式進行寫操作,讀操作結(jié)果直接返回給應(yīng)用程序和電力平臺服務(wù)器,寫操作結(jié)果返回給電力平臺服務(wù)器。
2.根據(jù)權(quán)利要求1所述的一種鏡像元數(shù)據(jù)的分布式鎖算法,其特征在于:取號后的寫操作指令即可發(fā)給每個元數(shù)據(jù)服務(wù)器,讀指令將根據(jù)各元數(shù)據(jù)服務(wù)器的最新寫操作完成情況和網(wǎng)絡(luò)狀況,選擇其中一臺服務(wù)器進行讀操作。
3.根據(jù)權(quán)利要求1所述的一種鏡像元數(shù)據(jù)的分布式鎖算法,其特征在于:到達元數(shù)據(jù)服務(wù)器的讀操作指令,將比對日志中記錄的最新寫操作編號和自身的讀指令編號,保證讀指令在寫操作指令之后,確定讀指令是否有效或過期作廢,如果有效則采用共享鎖方式讀取元數(shù)據(jù),否則廢棄讀指令,讀取失敗或超過最大讀等待時間,則選擇另一符合條件的元數(shù)據(jù)服務(wù)器進行讀操作。
4.根據(jù)權(quán)利要求1所述的一種鏡像元數(shù)據(jù)的分布式鎖算法,其特征在于:到達元數(shù)據(jù)服務(wù)器的寫操作指令,使用獨占鎖進行寫操作,在寫入操作時為提高寫入速度,寫操作過程采用了分段加鎖技術(shù),即將數(shù)據(jù)分成多段存儲,然后給每一段數(shù)據(jù)加一把鎖,多線程同時對各段進行寫入操作,提高并發(fā)訪問效率。
【文檔編號】G06F9/52GK103729239SQ201310578637
【公開日】2014年4月16日 申請日期:2013年11月18日 優(yōu)先權(quán)日:2013年11月18日
【發(fā)明者】陳穎, 黃少偉, 胡平, 汪國武 申請人:蕪湖大學(xué)科技園發(fā)展有限公司