欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種資源訪問方法及裝置與流程

文檔序號:12596692閱讀:240來源:國知局
一種資源訪問方法及裝置與流程

本發(fā)明涉及資源訪問技術(shù)領(lǐng)域,尤其涉及一種資源訪問方法及裝置。



背景技術(shù):

當(dāng)應(yīng)用服務(wù)器數(shù)量超過一臺時,對數(shù)據(jù)庫系統(tǒng)中相同數(shù)據(jù)的訪問可能造成訪問沖突(特別是寫沖突)。在對同一數(shù)據(jù)進行大規(guī)模并發(fā)訪問時,為了防止數(shù)據(jù)的訪問沖突,保證數(shù)據(jù)讀寫的準(zhǔn)確性,通常需要引入分布式鎖來約束對同一數(shù)據(jù)的并發(fā)操作。目前的分布式鎖要么性能較差,應(yīng)對高并發(fā)的應(yīng)用比較吃力,要么設(shè)計復(fù)雜,對最基本問題沒有提供最簡單的方案。



技術(shù)實現(xiàn)要素:

有鑒于此,本發(fā)明提供了一種資源訪問方法及裝置,用以解決現(xiàn)有的分布式鎖要么性能較差,應(yīng)對高并發(fā)的應(yīng)用比較吃力,要么設(shè)計復(fù)雜,對最基本問題沒有提供最簡單的方案的問題,其技術(shù)方案如下:

一種資源訪問方法,應(yīng)用于一數(shù)據(jù)庫系統(tǒng),所述數(shù)據(jù)庫系統(tǒng)中包括預(yù)先為目標(biāo)資源創(chuàng)建的目標(biāo)進程鎖的屬性信息,所述屬性信息至少包括所述目標(biāo)進程鎖的標(biāo)識信息,所述數(shù)據(jù)庫系統(tǒng)可與至少一個應(yīng)用服務(wù)設(shè)備進行通信;

所述方法包括:

接收所述應(yīng)用服務(wù)設(shè)備發(fā)送的所述目標(biāo)進程鎖的屬性信息;

對所述屬性信息中的所述目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值執(zhí)行增加命令,所述增加命令用于將所述目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值增加第一預(yù)設(shè)值;

判斷所述目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值是否為第二預(yù)設(shè)值;

當(dāng)所述目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值是所述第二預(yù)設(shè)值時,向目標(biāo)應(yīng)用進程返回成功獲得所述目標(biāo)進程鎖的指示信息,以使所述目標(biāo)應(yīng)用進程對所述目標(biāo)資源進行訪問。

其中,所述屬性信息還包括:所述目標(biāo)進程鎖的模式信息;

所述方法還包括:

當(dāng)所述目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值不是所述第二預(yù)設(shè)值時,基于所述屬性信息中的模式信息確定所述目標(biāo)進程鎖的模式;

當(dāng)所述目標(biāo)進程鎖的模式為阻塞模式時,返回所述對所述目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值執(zhí)行增加命令這一步驟;

當(dāng)所述目標(biāo)進程鎖的模式為非阻塞模式時,向所述目標(biāo)進程返回獲取所述目標(biāo)進程鎖失敗的指示信息。

所述的資源訪問方法還包括:

當(dāng)所述目標(biāo)進程鎖被釋放時,將所述目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值執(zhí)行刪除命令,所述刪除命令用于將所述目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值減少所述第一預(yù)設(shè)值。

一種資源訪問方法,應(yīng)用于一應(yīng)用服務(wù)設(shè)備,所述應(yīng)用服務(wù)設(shè)備可與數(shù)據(jù)庫系統(tǒng)進行通信,預(yù)先為所述數(shù)據(jù)庫系統(tǒng)中的目標(biāo)資源創(chuàng)建目標(biāo)進程鎖,并在所述數(shù)據(jù)庫系統(tǒng)中存儲所述目標(biāo)進程鎖的屬性信息,所述屬性信息至少包括所述目標(biāo)進程鎖的標(biāo)識信息;

所述方法包括:

獲取目標(biāo)應(yīng)用進程發(fā)起的對所述目標(biāo)資源的請求;

通過所述請求確定與所述目標(biāo)資源對應(yīng)的目標(biāo)進程鎖的屬性信息;

將所述屬性信息發(fā)送至所述數(shù)據(jù)庫系統(tǒng),以使所述數(shù)據(jù)庫系統(tǒng)對所述屬性信息中的所述目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值執(zhí)行增加命令,并在所述目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值是所述第二預(yù)設(shè)值時,向所述目標(biāo)應(yīng)用進程返回成功獲得所述目標(biāo)進程鎖的指示信息,以使所述目標(biāo)應(yīng)用進程對所述目標(biāo)資源進行訪問,其中,所述增加命令用于將所述目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值增加第一預(yù)設(shè)值。

其中,所述請求中包括所述目標(biāo)資源的名稱;

通過所述請求中的所述目標(biāo)資源的名稱確定與所述目標(biāo)資源對應(yīng)的所述目標(biāo)進程鎖的標(biāo)識信息。

一種資源訪問裝置,應(yīng)用于一數(shù)據(jù)庫系統(tǒng),所述數(shù)據(jù)庫系統(tǒng)中包括預(yù)先為目標(biāo)資源創(chuàng)建的目標(biāo)進程鎖的屬性信息,所述屬性信息至少包括所述目標(biāo)進程鎖的標(biāo)識信息,所述數(shù)據(jù)庫系統(tǒng)可與至少一個應(yīng)用服務(wù)設(shè)備進行通信;

所述裝置包括:接收模塊、第一處理模塊、判斷模塊和發(fā)送模塊;

所述接收模塊,用于接收所述應(yīng)用服務(wù)設(shè)備發(fā)送的所述目標(biāo)進程鎖的屬性信息,所述屬性信息至少包括所述目標(biāo)進程鎖的標(biāo)識信息;

所述第一處理模塊,用于對所述接收模塊接收的所述目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值執(zhí)行增加命令,所述增加命令用于將所述目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值增加第一預(yù)設(shè)值;

所述判斷模塊,用于判斷所述目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值是否為第二預(yù)設(shè)值;

所述發(fā)送模塊,用于當(dāng)所述判斷模塊判斷出所述目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值是所述第二預(yù)設(shè)值時,向目標(biāo)應(yīng)用進程返回成功獲得所述目標(biāo)進程鎖的指示信息,以使所述目標(biāo)應(yīng)用進程對所述目標(biāo)資源進行訪問。

其中,所述屬性信息還包括所述目標(biāo)進程鎖的模式信息;

所述裝置還包括:第二處理模塊;

所述第二處理模塊,用于當(dāng)所述目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值不是所述第二預(yù)設(shè)值時,基于所述屬性信息中的模式信息確定所述目標(biāo)進程鎖的模式,并當(dāng)所述目標(biāo)進程鎖的模式為阻塞模式時,觸發(fā)所述第一處理模塊對所述目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值執(zhí)行增加命令,當(dāng)所述目標(biāo)進程鎖的模式為非阻塞模式時,向所述目標(biāo)進程返回獲取所述目標(biāo)進程鎖失敗的指示信息。

所述的資源訪問裝置還包括:第三處理模塊;

所述第三處理模塊,用于當(dāng)所述目標(biāo)進程鎖被釋放時,將所述目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值執(zhí)行刪除命令,所述刪除命令用于將所述目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值減少所述第一預(yù)設(shè)值。

一種資源訪問裝置,應(yīng)用于一應(yīng)用服務(wù)設(shè)備,所述應(yīng)用服務(wù)設(shè)備可與數(shù)據(jù)庫系統(tǒng)進行通信;

所述裝置包括:創(chuàng)建模塊、獲取模塊、確定模塊和發(fā)送模塊;

所述創(chuàng)建模塊,用于預(yù)先為所述數(shù)據(jù)庫系統(tǒng)中的目標(biāo)資源創(chuàng)建目標(biāo)進程鎖,并在所述數(shù)據(jù)庫系統(tǒng)中存儲所述目標(biāo)進程鎖的屬性信息,所述屬性信息至少包括所述目標(biāo)進程鎖的標(biāo)識信息;

所述獲取模塊,用于獲取目標(biāo)應(yīng)用進程發(fā)起的對所述目標(biāo)資源的請求;

所述確定模塊,用于通過所述請求確定與所述目標(biāo)資源對應(yīng)的目標(biāo)進程鎖的屬性信息,所述屬性信息至少包括所述目標(biāo)進程鎖的標(biāo)識信息;

所述發(fā)送模塊,用于將所述屬性信息發(fā)送至所述數(shù)據(jù)庫系統(tǒng),以使所述數(shù)據(jù)庫系統(tǒng)對所述目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值執(zhí)行增加命令,并在所述目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值是所述第二預(yù)設(shè)值時,向所述目標(biāo)應(yīng)用進程返回成功獲得所述目標(biāo)進程鎖的指示信息,以使所述目標(biāo)應(yīng)用進程對所述目標(biāo)資源進行訪問,其中,所述增加命令用于將所述目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值增加第一預(yù)設(shè)值。

其中,所述請求中包括所述目標(biāo)資源的名稱;

所述確定模塊,具體用于通過所述請求中的所述目標(biāo)資源的名稱確定與所述目標(biāo)資源對應(yīng)的所述目標(biāo)進程鎖的標(biāo)識信息。

上述技術(shù)方案具有如下有益效果:

本發(fā)明提供的資源訪問方法及裝置,可為目標(biāo)資源創(chuàng)建目標(biāo)進程鎖,并為目標(biāo)進程鎖創(chuàng)建標(biāo)識信息,當(dāng)數(shù)據(jù)庫系統(tǒng)接收到應(yīng)用服務(wù)設(shè)備發(fā)送的目標(biāo)進程鎖的屬性信息時,可對目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值執(zhí)行增加命令,當(dāng)目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值是第二預(yù)設(shè)值時,向目標(biāo)應(yīng)用進程返回成功獲得目標(biāo)進程鎖的指示信息,以使目標(biāo)進程對目標(biāo)資源進行訪問,另外,當(dāng)目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值不是第二預(yù)設(shè)值時,可基于預(yù)設(shè)設(shè)定的目標(biāo)進程的模式確定向目標(biāo)應(yīng)用進程返回的信息,進而使目標(biāo)進程基于該信息確定是否能夠?qū)δ繕?biāo)資源進行訪問。本發(fā)明提供的資源訪問方法及裝置,基于目標(biāo)進程鎖實現(xiàn)資源訪問的過程簡單,且能夠應(yīng)對高并發(fā)的訪問。

附圖說明

為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。

圖1為本發(fā)明實施例提供的資源訪問方法的一流程示意;

圖2為本發(fā)明實施例提供的資源訪問方法的另一流程示意;

圖3為本發(fā)明實施例提供的資源訪問方法的另一流程示意圖;

圖4為本發(fā)明實施例提供的資源訪問裝置的一結(jié)構(gòu)示意圖;

圖5為本發(fā)明實施例提供的資源訪問裝置的另一結(jié)構(gòu)示意圖;

圖6為本發(fā)明實施例提供的資源訪問裝置的另一結(jié)構(gòu)示意圖。

具體實施方式

下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。

可以理解的是,在某些時候可能存在多個應(yīng)用進程都需要訪問某個資源(如某個文件、數(shù)據(jù)庫的一條記錄等)的情況,然而,多個應(yīng)用進程同時訪問這個資源會引發(fā)混亂,例如,多個應(yīng)用進程同時寫文件,可能導(dǎo)致格式混亂,而本發(fā)明提供的方案為:為資源創(chuàng)建應(yīng)用進程鎖,每個應(yīng)用進程要訪問這個資源之前,首先要嘗試獲得與該資源對應(yīng)的應(yīng)用進程鎖,只有在成功獲得應(yīng)用進程鎖時,才能操作資源,否則就放棄或者重新嘗試獲取應(yīng)用進程鎖,每個進程鎖一次只能被一個進程獲得。

請參閱圖1,示出了本發(fā)明實施例提供的資源訪問方法的一流程示意圖,該方法應(yīng)用于一數(shù)據(jù)庫系統(tǒng),數(shù)據(jù)庫系統(tǒng)中包括預(yù)先為目標(biāo)資源創(chuàng)建的目標(biāo)進程鎖的屬性信息,該屬性信息至少包括目標(biāo)進程鎖的標(biāo)識信息,數(shù)據(jù)庫系統(tǒng)可與至少一個應(yīng)用服務(wù)設(shè)備進行通信,該方法可以包括:

步驟S101:接收應(yīng)用服務(wù)設(shè)備發(fā)送的目標(biāo)進程鎖的屬性信息。

其中,屬性信息至少包括目標(biāo)進程鎖的標(biāo)識信息。

步驟S102:對目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值執(zhí)行增加命令。

其中,增加命令用于將目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值增加第一預(yù)設(shè)值。

示例性的,在執(zhí)行增加命令之前,目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值為0,第一預(yù)設(shè)值為1,則當(dāng)執(zhí)行完增加命令后,目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值為0+1=1。

步驟S103:判斷目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值是否為第二預(yù)設(shè)值。

步驟S104:當(dāng)目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值是第二預(yù)設(shè)值時,向目標(biāo)應(yīng)用進程返回成功獲得目標(biāo)進程鎖的指示信息,以使目標(biāo)進程對目標(biāo)資源進行訪問。

需要說明的是,目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值是第二預(yù)設(shè)值,表明目標(biāo)進程鎖并未被其它應(yīng)用進程所占用,目標(biāo)應(yīng)用進程可占用目標(biāo)進程鎖,進而訪問目標(biāo)資源,反之,目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值不是第二預(yù)設(shè)值,表明目標(biāo)進程鎖已被其它進程鎖占用,獲取目標(biāo)進程鎖失敗。

本發(fā)明實施例提供的資源訪問方法,可為目標(biāo)資源創(chuàng)建目標(biāo)進程鎖,并在數(shù)據(jù)庫系統(tǒng)中存儲目標(biāo)進程鎖的標(biāo)識信息,當(dāng)接收到應(yīng)用服務(wù)設(shè)備發(fā)送的目標(biāo)進程鎖的屬性信息時,可對目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值執(zhí)行增加命令,當(dāng)目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值是第二預(yù)設(shè)值時,向目標(biāo)應(yīng)用進程返回成功獲得目標(biāo)進程鎖的指示信息,以使目標(biāo)應(yīng)用進程對目標(biāo)資源進行訪問。本發(fā)明實施例提供的資源訪問方法,使得基于目標(biāo)進程鎖實現(xiàn)資源訪問的過程簡單,且能夠應(yīng)對高并發(fā)的訪問。

請參閱圖2,示出了本發(fā)明實施例提供的資源訪問方法的另一流程示意圖,該方法應(yīng)用于一數(shù)據(jù)庫系統(tǒng),數(shù)據(jù)庫系統(tǒng)中包括預(yù)先為目標(biāo)資源創(chuàng)建的目標(biāo)進程鎖的屬性信息,該屬性信息包括目標(biāo)進程鎖的標(biāo)識信息和目標(biāo)進程的模式信息,數(shù)據(jù)庫系統(tǒng)可與至少一個應(yīng)用服務(wù)設(shè)備進行通信,該方法可以包括:

步驟S201:接收應(yīng)用服務(wù)設(shè)備發(fā)送的目標(biāo)進程鎖的屬性信息。

其中,屬性信息中目標(biāo)進程鎖的標(biāo)識信息可以為目標(biāo)進程鎖的名稱,由于目標(biāo)進程鎖基于目標(biāo)資源而創(chuàng)建,因此,在一種可能的實現(xiàn)方式中可基于目標(biāo)資源進行命名,例如資源一、資源二等等。屬性信息中目標(biāo)進程的模式信息用于指示目標(biāo)進程的模式為阻塞模式還是非阻塞模式。

步驟S202:對目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值執(zhí)行增加命令。

其中,增加命令用于將目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值增加第一預(yù)設(shè)值。示例性的,在執(zhí)行增加命令之前,目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值為0,第一預(yù)設(shè)值為1,則當(dāng)執(zhí)行完增加命令后,目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值為0+1=1。

需要說明的是,在接收應(yīng)用服務(wù)設(shè)備發(fā)送的目標(biāo)進程鎖的屬性信息之后,如果目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值為空,則將目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值進行初始化,例如,將目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值初始化為0,然后在對初始化后的值執(zhí)行增加命令。

步驟S203:判斷目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值是否為第二預(yù)設(shè)值。

步驟S204a:當(dāng)目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值是第二預(yù)設(shè)值時,向目標(biāo)應(yīng)用進程返回成功獲得目標(biāo)進程鎖的指示信息,以使目標(biāo)進程對目標(biāo)資源進行訪問。

示例性的,在執(zhí)行增加命令之前,目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值為0,第一預(yù)設(shè)值為1,第二預(yù)設(shè)值為1,則當(dāng)執(zhí)行完增加命令后,目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值為0+1=1,為第二預(yù)設(shè)值,此時表明該目標(biāo)進程鎖并未被其它應(yīng)用進程所占用,成功獲取目標(biāo)進程鎖,這樣,目標(biāo)應(yīng)用進程便可占用該目標(biāo)進程鎖訪問目標(biāo)資源。

示例性的,執(zhí)行增加命令之前,目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值為1,第一預(yù)設(shè)值為1,第二預(yù)設(shè)值為1,則當(dāng)執(zhí)行完增加命令后,目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值為1+1=2,不為第二預(yù)設(shè)值,此時表明該目標(biāo)進程鎖已被其它應(yīng)用進程占用,獲取目標(biāo)進程鎖失敗。

步驟S204b:當(dāng)目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值不是第二預(yù)設(shè)值時,基于屬性信息中的模式信息判斷目標(biāo)進程鎖的模式是否為阻塞模式,如果是,則返回步驟S202,否則,執(zhí)行步驟S205b。

步驟S205b:向目標(biāo)應(yīng)用進程返回獲取目標(biāo)進程鎖失敗的指示信息。

需要說明的是,當(dāng)目標(biāo)應(yīng)用進程訪問完目標(biāo)資源時,為了使其它應(yīng)用進程能夠訪問目標(biāo)資源,需要將目標(biāo)進程鎖釋放掉。基于此,本發(fā)明實施例提供的資源訪問方法還可以包括:當(dāng)目標(biāo)進程鎖被釋放時,將目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值執(zhí)行刪除命令。

當(dāng)目標(biāo)進程鎖被目標(biāo)應(yīng)用進程釋放后,為了保證其他應(yīng)用進程能夠正常使用該目標(biāo)進行鎖,需要對目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值執(zhí)行刪除命令。其中,刪除命令用于將目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值減少第一預(yù)設(shè)值。

示例性的,目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值為1,第一預(yù)設(shè)值為1,執(zhí)行刪除命令后,將目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值1-1=0,目標(biāo)進程鎖被釋放。

在本實施例中,當(dāng)多個并發(fā)的應(yīng)用進程向訪問同一目標(biāo)資源時,只有獲得目標(biāo)進程鎖的應(yīng)用進程才能夠訪問目標(biāo)資源,當(dāng)某一應(yīng)用進程對目標(biāo)資源的訪問完畢時,需要釋放目標(biāo)進程鎖,以供其它的應(yīng)用進程占用并訪問目標(biāo)資源。由此可見,本發(fā)明實施例通過簡單的過程解決了多個應(yīng)用進程對同一目標(biāo)資源的并發(fā)訪問沖突。

在一種可能的實現(xiàn)方式中,本實施例中的數(shù)據(jù)庫系統(tǒng)可以為Redis,Redis是一個開源的使用ANSI C語言編寫、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫,并提供多種語言的API。具體的,Redis具有INCR命令和DEL命令,INCR命令為增加命令,DEL命令為刪除命令,INCR命令將key(即目標(biāo)進程鎖的標(biāo)識信息如名稱)中儲存的Value值(目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值)增加1,DEL命令用于將key(即目標(biāo)進程鎖的標(biāo)識信息如名稱)中儲存的Value值(目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值)減1。

本發(fā)明提供的資源訪問方法,可為目標(biāo)資源創(chuàng)建目標(biāo)進程鎖,并在數(shù)據(jù)庫系統(tǒng)中為目標(biāo)進程鎖創(chuàng)建標(biāo)識信息,當(dāng)數(shù)據(jù)庫系統(tǒng)接收到應(yīng)用服務(wù)設(shè)備發(fā)送的目標(biāo)進程鎖的屬性信息時,可對目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值執(zhí)行增加命令,當(dāng)目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值是第二預(yù)設(shè)值時,向目標(biāo)應(yīng)用進程返回成功獲得目標(biāo)進程鎖的指示信息,以使目標(biāo)進程對目標(biāo)資源進行訪問,另外,當(dāng)目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值不是第二預(yù)設(shè)值時,可基于預(yù)設(shè)設(shè)定的目標(biāo)進程的模式確定向目標(biāo)應(yīng)用進程返回的信息,進而使目標(biāo)進程基于該信息確定是否能夠?qū)δ繕?biāo)資源進行訪問。本發(fā)明實施例提供的資源訪問方法,基于目標(biāo)進程鎖實現(xiàn)資源訪問的過程簡單,且能夠應(yīng)對高并發(fā)的訪問。

本發(fā)明實施例還提供了一種資源訪問方法,該方法應(yīng)用于一應(yīng)用服務(wù)設(shè)備,應(yīng)用服務(wù)設(shè)備可與數(shù)據(jù)庫系統(tǒng)進行通信,預(yù)先為數(shù)據(jù)庫系統(tǒng)中的目標(biāo)資源創(chuàng)建目標(biāo)進程鎖,并在數(shù)據(jù)庫系統(tǒng)中存儲目標(biāo)進程鎖的屬性信息,屬性信息至少包括目標(biāo)進程鎖的標(biāo)識信息,請參閱圖3,示出了該方法的流程示意圖,可以包括:

步驟S301:獲取目標(biāo)應(yīng)用進程發(fā)起的對目標(biāo)資源的請求。

步驟S302:通過請求確定與目標(biāo)資源對應(yīng)的目標(biāo)進程鎖的屬性信息。

其中,目標(biāo)應(yīng)用進程發(fā)起的對目標(biāo)資源的請求中包括目標(biāo)資源的名稱。則通過請求確定與目標(biāo)資源對應(yīng)的目標(biāo)進程鎖的屬性信息具體為:通過請求中的目標(biāo)資源的名稱確定與目標(biāo)資源對應(yīng)的目標(biāo)進程鎖的標(biāo)識信息。

步驟S303:將屬性信息發(fā)送至數(shù)據(jù)庫系統(tǒng),以使數(shù)據(jù)庫系統(tǒng)對目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值執(zhí)行增加命令,并在目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值是第二預(yù)設(shè)值時,向目標(biāo)應(yīng)用進程返回成功獲得目標(biāo)進程鎖的指示信息,以使目標(biāo)應(yīng)用進程對目標(biāo)資源進行訪問。

其中,增加命令用于將目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值增加第一預(yù)設(shè)值。

另外,目標(biāo)進程鎖的屬性信息中還可以包括目標(biāo)進程的模式信息,目標(biāo)進程的模式信息用于指示目標(biāo)進程的模式為阻塞模式還是非阻塞模式。

當(dāng)目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值不是第二預(yù)設(shè)值時,數(shù)據(jù)庫系統(tǒng)基于目標(biāo)進程鎖的模式確定向目標(biāo)應(yīng)用進程返回的信息,具體的,當(dāng)目標(biāo)進程鎖的模式為阻塞模式時,數(shù)據(jù)庫系統(tǒng)會嘗試繼續(xù)獲取目標(biāo)進程鎖,直至成功獲取到目標(biāo)進程鎖,然后向目標(biāo)應(yīng)用進程返回成功獲取目標(biāo)進程鎖的指示信息,當(dāng)目標(biāo)進程鎖的模式為非阻塞模式時,數(shù)據(jù)庫系統(tǒng)會直接向目標(biāo)應(yīng)用進程返回獲取目標(biāo)進程鎖失敗的指示信息。

本發(fā)明實施例提供的資源訪問方法,可獲取目標(biāo)應(yīng)用進程發(fā)起的對目標(biāo)資源的請求,并基于該請求確定與目標(biāo)資源對應(yīng)的目標(biāo)進程鎖的屬性信息,進而將目標(biāo)進程鎖的屬性信息發(fā)送至數(shù)據(jù)庫服務(wù)器,從而使數(shù)據(jù)庫服務(wù)器基于該屬性信息去獲取目標(biāo)進程鎖,并向目標(biāo)應(yīng)用進程返回是否能夠獲取目標(biāo)進程鎖的指示信息,進而使目標(biāo)應(yīng)用進程決定是否訪問目標(biāo)資源。本發(fā)明提供的資源訪問方法,基于目標(biāo)進程鎖實現(xiàn)資源訪問的過程簡單,且能夠應(yīng)對高并發(fā)的訪問。

與上述方法相對應(yīng),本發(fā)明實施例還通過了一種資源訪問裝置,該裝置應(yīng)用于一數(shù)據(jù)庫系統(tǒng),數(shù)據(jù)庫系統(tǒng)中包括預(yù)先為目標(biāo)資源創(chuàng)建的目標(biāo)進程鎖的屬性信息,該屬性信息至少包括目標(biāo)進程鎖的標(biāo)識信息,數(shù)據(jù)庫系統(tǒng)可與至少一個應(yīng)用服務(wù)設(shè)備進行通信,請參閱圖4,示出了該裝置的結(jié)構(gòu)示意圖,可以包括:接收模塊401、第一處理模塊402、判斷模塊403和發(fā)送模塊404。其中:

接收模塊401,用于接收應(yīng)用服務(wù)設(shè)備發(fā)送的目標(biāo)進程鎖的屬性信息。

第一處理模塊402,用于對接收模塊401接收的屬性信息中目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值執(zhí)行增加命令。其中,增加命令用于將目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值增加第一預(yù)設(shè)值。

判斷模塊403,用于判斷目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值是否為第二預(yù)設(shè)值。

發(fā)送模塊404,用于當(dāng)判斷模塊403判斷出目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值是第二預(yù)設(shè)值時,向目標(biāo)應(yīng)用進程返回成功獲得目標(biāo)進程鎖的指示信息,以使目標(biāo)進程對目標(biāo)資源進行訪問。

本發(fā)明實施例提供的資源訪問裝置,當(dāng)接收到應(yīng)用服務(wù)設(shè)備發(fā)送的目標(biāo)進程鎖的屬性信息時,可對目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值執(zhí)行增加命令,當(dāng)目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值是第二預(yù)設(shè)值時,向目標(biāo)應(yīng)用進程返回成功獲得目標(biāo)進程鎖的指示信息,以使目標(biāo)進程對目標(biāo)資源進行訪問。本發(fā)明實施例提供的資源訪問裝置,使得基于目標(biāo)進程鎖實現(xiàn)資源訪問的過程簡單,且能夠應(yīng)對高并發(fā)的訪問。

請參閱圖5,示出了本發(fā)明實施例提供的資源訪問裝置的另一結(jié)構(gòu)示意圖,該裝置應(yīng)用于一數(shù)據(jù)庫系統(tǒng),數(shù)據(jù)庫系統(tǒng)中包括預(yù)先為目標(biāo)資源創(chuàng)建的目標(biāo)進程鎖的屬性信息,該屬性信息至少包括目標(biāo)進程鎖的標(biāo)識信息,數(shù)據(jù)庫系統(tǒng)可與至少一個應(yīng)用服務(wù)設(shè)備進行通信,該裝置可以包括:接收模塊501、第一處理模塊502、判斷模塊503、發(fā)送模塊504和第二處理模塊505。其中:

接收模塊501,用于接收應(yīng)用服務(wù)設(shè)備發(fā)送的目標(biāo)進程鎖的屬性信息,屬性信息至少包括所述目標(biāo)進程鎖的標(biāo)識信息。

第一處理模塊502,用于對接收模塊501接收的目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值執(zhí)行增加命令。其中,增加命令用于將目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值增加第一預(yù)設(shè)值。

判斷模塊503,用于判斷目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值是否為第二預(yù)設(shè)值。

發(fā)送模塊504,用于當(dāng)判斷模塊503判斷出目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值是所述第二預(yù)設(shè)值時,向目標(biāo)應(yīng)用進程返回成功獲得目標(biāo)進程鎖的指示信息,以使目標(biāo)進程對目標(biāo)資源進行訪問。

第二處理模塊505,用于當(dāng)判斷模塊503判斷出目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值不是第二預(yù)設(shè)值時,基于屬性信息中的模式信息確定目標(biāo)進程鎖的模式,并當(dāng)目標(biāo)進程鎖的模式為阻塞模式時,觸發(fā)第一處理模塊對目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值執(zhí)行增加命令,當(dāng)目標(biāo)進程鎖的模式為非阻塞模式時,向目標(biāo)應(yīng)用進程返回獲取目標(biāo)進程鎖失敗的指示信息。

需要說明的是,當(dāng)目標(biāo)應(yīng)用進程訪問完目標(biāo)資源時,為了使其它應(yīng)用進程能夠訪問目標(biāo)資源,需要將目標(biāo)進程鎖釋放掉?;诖?,本發(fā)明實施例提供的資源訪問裝置還可以包括:第三處理模塊。

第三處理模塊,用于當(dāng)目標(biāo)進程鎖被釋放時,將目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值執(zhí)行刪除命令。其中,刪除命令用于將目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值減少第一預(yù)設(shè)值。

本發(fā)明實施例提供的資源訪問裝置,可為目標(biāo)資源創(chuàng)建目標(biāo)進程鎖,并在數(shù)據(jù)庫系統(tǒng)中為目標(biāo)進程鎖創(chuàng)建標(biāo)識信息,當(dāng)數(shù)據(jù)庫系統(tǒng)接收到應(yīng)用服務(wù)設(shè)備發(fā)送的目標(biāo)進程鎖的屬性信息時,可對目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值執(zhí)行增加命令,當(dāng)目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值是第二預(yù)設(shè)值時,向目標(biāo)應(yīng)用進程返回成功獲得目標(biāo)進程鎖的指示信息,以使目標(biāo)進程對目標(biāo)資源進行訪問,另外,當(dāng)目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值不是第二預(yù)設(shè)值時,可基于預(yù)設(shè)設(shè)定的目標(biāo)進程的模式確定向目標(biāo)應(yīng)用進程返回的信息,進而使目標(biāo)進程基于該信息確定是否能夠?qū)δ繕?biāo)資源進行訪問。本發(fā)明實施例提供的資源訪問裝置,基于目標(biāo)進程鎖實現(xiàn)資源訪問的過程簡單,且能夠應(yīng)對高并發(fā)的訪問。

請參閱圖6,示出了本發(fā)明實施例提供的另一種資源訪問裝置的結(jié)構(gòu)示意圖,該裝置應(yīng)用于一應(yīng)用服務(wù)設(shè)備,應(yīng)用服務(wù)設(shè)備可與數(shù)據(jù)庫系統(tǒng)進行通信該裝置可以包括:創(chuàng)建模塊600、獲取模塊601、確定模塊602和發(fā)送模塊603。

創(chuàng)建模塊600,用于預(yù)先為數(shù)據(jù)庫系統(tǒng)中的目標(biāo)資源創(chuàng)建目標(biāo)進程鎖,并在數(shù)據(jù)庫系統(tǒng)中存儲目標(biāo)進程鎖的屬性信息,屬性信息至少包括目標(biāo)進程鎖的標(biāo)識信息。

獲取模塊601,用于獲取目標(biāo)應(yīng)用進程發(fā)起的對目標(biāo)資源的請求。

確定模塊602,用于通過請求確定與目標(biāo)資源對應(yīng)的目標(biāo)進程鎖的屬性信息。其中,屬性信息至少包括目標(biāo)進程鎖的標(biāo)識信息。

進一步的,目標(biāo)應(yīng)用進程發(fā)起的對目標(biāo)資源的請求中還包括目標(biāo)資源的名稱。則確定模塊602,具體用于通過請求中的目標(biāo)資源的名稱確定與目標(biāo)資源對應(yīng)的目標(biāo)進程鎖的標(biāo)識信息。

發(fā)送模塊603,用于將屬性信息發(fā)送至數(shù)據(jù)庫系統(tǒng),以使數(shù)據(jù)庫系統(tǒng)對目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值執(zhí)行增加命令,并在目標(biāo)進程鎖的標(biāo)識信息當(dāng)前所對應(yīng)的值是第二預(yù)設(shè)值時,向目標(biāo)應(yīng)用進程返回成功獲得目標(biāo)進程鎖的指示信息,以使目標(biāo)應(yīng)用進程對目標(biāo)資源進行訪問。

其中,增加命令用于將目標(biāo)進程鎖的標(biāo)識信息所對應(yīng)的值增加第一預(yù)設(shè)值。

本發(fā)明實施例提供的資源訪問裝置,可獲取目標(biāo)應(yīng)用進程發(fā)起的對目標(biāo)資源的請求,并基于該請求確定與目標(biāo)資源對應(yīng)的目標(biāo)進程鎖的屬性信息,進而將目標(biāo)進程鎖的屬性信息發(fā)送至數(shù)據(jù)庫服務(wù)器,從而使數(shù)據(jù)庫服務(wù)器基于該屬性信息去獲取目標(biāo)進程鎖,并向目標(biāo)應(yīng)用進程返回是否能夠獲取目標(biāo)進程鎖的指示信息,進而使目標(biāo)應(yīng)用進程決定是否訪問目標(biāo)資源。本發(fā)明實施例提供的資源訪問裝置,使得基于目標(biāo)進程鎖實現(xiàn)資源訪問的過程簡單,且能夠應(yīng)對高并發(fā)的訪問。

本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。

在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的方法、裝置和設(shè)備,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些通信接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。

所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。

所述功能如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,RandomAccess Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。

對所公開的實施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
宁河县| 贵定县| 上虞市| 新兴县| 沙洋县| 同仁县| 屏东市| 左云县| 休宁县| 东乡族自治县| 微博| 肇州县| 曲靖市| 十堰市| 保德县| 永安市| 宝坻区| 怀安县| 武清区| 景东| 鄢陵县| 施甸县| 班玛县| 聂拉木县| 邢台市| 宣化县| 清原| 浦县| 兴国县| 巴彦淖尔市| 伽师县| 中卫市| 通化市| 盐池县| 广元市| 赣榆县| 辛集市| 威信县| 波密县| 渝北区| 大安市|