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

元數(shù)據(jù)處理方法及元數(shù)據(jù)服務(wù)器的制造方法

文檔序號(hào):7772899閱讀:244來源:國知局
元數(shù)據(jù)處理方法及元數(shù)據(jù)服務(wù)器的制造方法
【專利摘要】本發(fā)明實(shí)施例提供一種元數(shù)據(jù)處理方法及元數(shù)據(jù)服務(wù)器,該方法包括:將多個(gè)客戶端發(fā)送的對(duì)同一目錄的至少一個(gè)操作請(qǐng)求緩存至請(qǐng)求隊(duì)列,判斷目錄的鎖是否被授權(quán),若鎖被授權(quán),則遍歷請(qǐng)求隊(duì)列中的每個(gè)操作請(qǐng)求,返回每一操作請(qǐng)求的返回結(jié)果,根據(jù)各返回結(jié)果,對(duì)至少一個(gè)操作請(qǐng)求對(duì)應(yīng)的元數(shù)據(jù)進(jìn)行處理。該過程中,元數(shù)據(jù)服務(wù)器對(duì)相同目錄下的多個(gè)并發(fā)操作請(qǐng)求,如新建操作、刪除操作、修改操作等,先獲取該目錄的鎖,若鎖被授權(quán),則對(duì)多個(gè)客戶端發(fā)送的操作請(qǐng)求進(jìn)行目錄級(jí)別的合并,從而提高對(duì)元數(shù)據(jù)的處理效率。
【專利說明】元數(shù)據(jù)處理方法及元數(shù)據(jù)服務(wù)器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明實(shí)施例涉及通信技木,尤其涉及一種元數(shù)據(jù)處理方法及元數(shù)據(jù)服務(wù)器?!颈尘凹夹g(shù)】
[0002]分布式文件系統(tǒng)是ー種基于客戶機(jī)/服務(wù)器模式的文件系統(tǒng),該系統(tǒng)包括客戶端和元數(shù)據(jù)服務(wù)器,元數(shù)據(jù)和元數(shù)據(jù)信息都存放在元數(shù)據(jù)服務(wù)器??蛻舳诵枰僮魑募?,必須先從元數(shù)據(jù)服務(wù)器上查詢?cè)撐募脑獢?shù)據(jù)信息,根據(jù)元數(shù)據(jù)信息訪問元數(shù)據(jù)服務(wù)器并進(jìn)行操作,操作完后將操作后的元數(shù)據(jù)信息發(fā)送給元數(shù)據(jù)服務(wù)器。目前,對(duì)某個(gè)元數(shù)據(jù)的并發(fā)修改操作是串行執(zhí)行的,例如,當(dāng)一個(gè)客戶端的寫操作A獲得了某個(gè)元數(shù)據(jù)X的寫鎖時(shí),此時(shí)若有多個(gè)客戶端的寫操作{Bi}向元數(shù)據(jù)服務(wù)器發(fā)送該元數(shù)據(jù)X的寫鎖請(qǐng)求,那么該些寫操作{Bi}由于不會(huì)被授權(quán)而處于等待狀態(tài)。對(duì)于客戶端來說,長時(shí)間處于等待狀態(tài),很大程度上影響了數(shù)據(jù)訪問效率。
[0003]現(xiàn)有技術(shù)中,為提高修改元數(shù)據(jù)的效率,元數(shù)據(jù)服務(wù)器將同時(shí)到達(dá)的多個(gè)修改操作緩存至循環(huán)操作隊(duì)列,對(duì)隊(duì)列中最后ー個(gè)操作對(duì)應(yīng)的修改數(shù)據(jù)進(jìn)行存儲(chǔ)寫盤,從而在一定程度上提高了數(shù)據(jù)訪問效率。
[0004]然而,上述技術(shù)方案僅是對(duì)同一個(gè)元數(shù)據(jù)的覆蓋型屬性并發(fā)修改操作,覆蓋型屬性例如最后一次修改文件或目錄的時(shí)間(mtime)、最后一次訪問文件或目錄的時(shí)間(atime)等。但是,元數(shù)據(jù)的處理除了對(duì)同一個(gè)元數(shù)據(jù)的覆蓋型屬性的并發(fā)修改操作外,還包括對(duì)同一個(gè)元數(shù)據(jù)的擴(kuò)展屬性的修改,例如訪問控制列表(Access Control List, ACL)條目的増加、刪除等,以及在同一個(gè)目錄下并發(fā)新建多個(gè)元數(shù)據(jù)的操作、對(duì)同一個(gè)目錄下的多個(gè)元數(shù)據(jù)的多并發(fā)修改操作等,此時(shí),只能采用串行執(zhí)行的方式,導(dǎo)致響應(yīng)時(shí)間長,単位時(shí)間內(nèi)完成的操作請(qǐng)求少,并發(fā)度不高,處理效率低。

【發(fā)明內(nèi)容】

[0005]本發(fā)明實(shí)施例提供一種元數(shù)據(jù)處理方法及元數(shù)據(jù)服務(wù)器,以提高對(duì)元數(shù)據(jù)的處理效率。
[0006]第一個(gè)方面,本發(fā)明實(shí)施例提供一種元數(shù)據(jù)處理方法,包括:
[0007]將多個(gè)客戶端發(fā)送的對(duì)同一目錄的至少ー個(gè)操作請(qǐng)求緩存至請(qǐng)求隊(duì)列;
[0008]判斷所述目錄的鎖是否被授權(quán);
[0009]若所述鎖被授權(quán),則遍歷所述請(qǐng)求隊(duì)列中的每個(gè)操作請(qǐng)求,返回每一所述操作請(qǐng)求的返回結(jié)果;
[0010]根據(jù)各所述返回結(jié)果,對(duì)所述至少ー個(gè)操作請(qǐng)求對(duì)應(yīng)的元數(shù)據(jù)進(jìn)行處理。
[0011]在第一個(gè)方面的第一種可能的實(shí)現(xiàn)方式中,所述若所述鎖被授權(quán),則遍歷所述請(qǐng)求隊(duì)列中的每個(gè)操作請(qǐng)求,返回每一所述操作請(qǐng)求的返回結(jié)果,包括:
[0012]對(duì)于每ー個(gè)操作請(qǐng)求,判斷所述操作請(qǐng)求的類別,所述類別包括:第一類別、第二類別和第三類別,其中,所述第一類別包括對(duì)元數(shù)據(jù)的讀操作,所述第二類別包括對(duì)元數(shù)據(jù)的新建操作、修改操作和刪除操作,所述第三類別包括對(duì)元數(shù)據(jù)的移動(dòng)操作、新建鏈接操作和刪除鏈接操作;
[0013]根據(jù)所述操作請(qǐng)求所屬的類別,返回所述操作請(qǐng)求對(duì)應(yīng)的返回結(jié)果。
[0014]結(jié)合第一個(gè)方面的第一種可能的實(shí)現(xiàn)方式,在第一個(gè)方面的第二種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述操作請(qǐng)求所屬的類別,返回所述操作請(qǐng)求對(duì)應(yīng)的返回結(jié)果,包括:
[0015]若所述操作請(qǐng)求屬于所述第一類別,則返回所述操作請(qǐng)求為讀請(qǐng)求的返回結(jié)果。
[0016]結(jié)合第一個(gè)方面的第一種可能的實(shí)現(xiàn)方式,在第一個(gè)方面的第三種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述操作請(qǐng)求所屬的類別,返回所述操作請(qǐng)求對(duì)應(yīng)的返回結(jié)果,包括:
[0017]若所述操作請(qǐng)求屬于所述第二類別,則判斷所述操作請(qǐng)求對(duì)元數(shù)據(jù)的操作是否合法;
[0018]若不合法,則返回所述操作請(qǐng)求為錯(cuò)誤請(qǐng)求的返回結(jié)果;
[0019]否則,若合法,則判斷合并隊(duì)列中是否存在所述第三類別的操作請(qǐng)求,所述合并隊(duì)列包括可合并的返回結(jié)果對(duì)應(yīng)的操作請(qǐng)求;
[0020]若所述合并隊(duì)列中存在所述第三類別的操作請(qǐng)求,則返回所述操作請(qǐng)求為互斥請(qǐng)求的返回結(jié)果;
[0021]否則,若所述合并隊(duì)列中不存在所述第三類別的操作請(qǐng)求,則將所述第二類別的操作請(qǐng)求加入到所述合并隊(duì)列中,將所述第二類別的操作請(qǐng)求操作的元數(shù)據(jù)加入到緩沖數(shù)據(jù)隊(duì)列中,并返回所述操作請(qǐng)求為可合并請(qǐng)求的返回結(jié)果。
[0022]結(jié)合第一個(gè)方面的第一種可能的實(shí)現(xiàn)方式,在第一個(gè)方面的第四種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述操作請(qǐng)求所屬的類別,返回所述操作請(qǐng)求對(duì)應(yīng)的返回結(jié)果,包括:
[0023]若所述操作請(qǐng)求屬于所述第三類別,則判斷所述操作請(qǐng)求對(duì)元數(shù)據(jù)的操作是否合法;
[0024]若不合法,則返回所述操作請(qǐng)求為錯(cuò)誤請(qǐng)求的返回結(jié)果;
[0025]否則,若合法,則判斷合并隊(duì)列中是否存在所述第二類別的操作請(qǐng)求,或者,所述第三類別的操作請(qǐng)求,所述合并隊(duì)列包括可合并的返回結(jié)果對(duì)應(yīng)的操作請(qǐng)求;
[0026]若所述合并隊(duì)列中存在所述第二類別的操作請(qǐng)求,或者,所述第三類別的操作請(qǐng)求,則返回所述操作請(qǐng)求為互斥請(qǐng)求的返回結(jié)果;
[0027]否則,若所述合并隊(duì)列中不存在所述第二類別的操作請(qǐng)求,并且,不存在所述第三類別的操作請(qǐng)求,則將所述第三類別的操作請(qǐng)求加入到所述合并隊(duì)列中,將所述第三類別的操作請(qǐng)求操作的元數(shù)據(jù)加入到緩沖數(shù)據(jù)隊(duì)列中,并返回所述操作結(jié)果為可合并請(qǐng)求的返回結(jié)果。
[0028]結(jié)合第一個(gè)方面的第二種可能的實(shí)現(xiàn)方式,在第一個(gè)方面的第五種可能的實(shí)現(xiàn)方式中,所述根據(jù)各所述返回結(jié)果,對(duì)所述至少ー個(gè)操作請(qǐng)求對(duì)應(yīng)的元數(shù)據(jù)進(jìn)行處理,包括:
[0029]將所述操作請(qǐng)求移出所述請(qǐng)求隊(duì)列;
[0030]響應(yīng)所述操作請(qǐng)求。
[0031]結(jié)合第一個(gè)方面的第三種或第四種可能的實(shí)現(xiàn)方式,在第一個(gè)方面的第六種可能的實(shí)現(xiàn)方式中,若不合法,返回所述操作請(qǐng)求為錯(cuò)誤請(qǐng)求的返回結(jié)果,則所述根據(jù)各所述返回結(jié)果,對(duì)所述至少ー個(gè)操作請(qǐng)求對(duì)應(yīng)的元數(shù)據(jù)進(jìn)行處理,包括:
[0032]將所述操作請(qǐng)求移出所述請(qǐng)求隊(duì)列;[0033]響應(yīng)所述操作請(qǐng)求。
[0034]結(jié)合第一個(gè)方面的第三種或第四種可能的實(shí)現(xiàn)方式,在第一個(gè)方面的第七種可能的實(shí)現(xiàn)方式中,若返回所述操作請(qǐng)求為互斥請(qǐng)求的返回結(jié)果,則所述根據(jù)各所述返回結(jié)果,對(duì)所述至少ー個(gè)操作請(qǐng)求對(duì)應(yīng)的元數(shù)據(jù)進(jìn)行處理,包括:
[0035]將所述操作請(qǐng)求保存在所述請(qǐng)求隊(duì)列中。
[0036]結(jié)合第一個(gè)方面的第三種、第四種或第七種可能的實(shí)現(xiàn)方式,在第一個(gè)方面的第八種可能的實(shí)現(xiàn)方式中,所述根據(jù)各所述返回結(jié)果,對(duì)所述至少ー個(gè)操作請(qǐng)求對(duì)應(yīng)的元數(shù)據(jù)進(jìn)行處理,包括:
[0037]將所述緩沖數(shù)據(jù)隊(duì)列中的元數(shù)據(jù)發(fā)送給存儲(chǔ)節(jié)點(diǎn),以使所述存儲(chǔ)節(jié)點(diǎn)對(duì)所述元數(shù)據(jù)進(jìn)行寫入以得到事務(wù)結(jié)果;
[0038]根據(jù)所述事務(wù)結(jié)果,向所述合并隊(duì)列中的操作請(qǐng)求對(duì)應(yīng)的客戶端發(fā)送操作響應(yīng)。
[0039]結(jié)合第一個(gè)方面的第八種可能的實(shí)現(xiàn)方式,在第一個(gè)方面的第九種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述事務(wù)結(jié)果,向所述合并隊(duì)列中的操作請(qǐng)求對(duì)應(yīng)的客戶端發(fā)送操作響應(yīng)之后,還包括:
[0040]判斷所述請(qǐng)求隊(duì)列中是否還存在操作請(qǐng)求;
[0041]若存在,則遍歷所述請(qǐng)求隊(duì)列中的每個(gè)操作請(qǐng)求,返回每一所述操作請(qǐng)求的返回
結(jié)果;
[0042]否則,若不存在,則釋放所述鎖。
[0043]第二個(gè)方面,本發(fā)明實(shí)施例提供一種元數(shù)據(jù)服務(wù)器,包括:
[0044]請(qǐng)求隊(duì)列模塊,用于將多個(gè)客戶端發(fā)送的對(duì)同一目錄的至少ー個(gè)操作請(qǐng)求緩存至請(qǐng)求隊(duì)列;
[0045]目錄鎖模塊,用于判斷所述目錄的鎖是否被授權(quán);
[0046]合并判決模塊,用于若所述目錄鎖模塊判斷出所述鎖被授權(quán),則遍歷所述請(qǐng)求隊(duì)列中的每個(gè)操作請(qǐng)求,返回每一所述操作請(qǐng)求的返回結(jié)果;
[0047]請(qǐng)求處理模塊,用于根據(jù)各所述返回結(jié)果,對(duì)所述至少ー個(gè)操作請(qǐng)求對(duì)應(yīng)的元數(shù)據(jù)進(jìn)行處理。
[0048]在第二個(gè)方面的第一種可能的實(shí)現(xiàn)方式中,所述合并判決模塊,對(duì)于每ー個(gè)操作請(qǐng)求,判斷所述操作請(qǐng)求的類別,所述類別包括:第一類別、第二類別和第三類別,其中,所述第一類別包括對(duì)元數(shù)據(jù)的讀操作,所述第二類別包括對(duì)元數(shù)據(jù)的新建操作、修改操作和刪除操作,所述第三類別包括對(duì)元數(shù)據(jù)的移動(dòng)操作、新建鏈接操作和刪除鏈接操作,根據(jù)所述操作請(qǐng)求所屬的類別,返回所述操作請(qǐng)求對(duì)應(yīng)的返回結(jié)果。
[0049]結(jié)合第二個(gè)方面的第一種可能的實(shí)現(xiàn)方式,在第二個(gè)方面的第二種可能的實(shí)現(xiàn)方式中,所述合并判決模塊,用于若所述操作請(qǐng)求屬于所述第一類別,則返回所述操作請(qǐng)求為讀請(qǐng)求的返回結(jié)果。
[0050]結(jié)合第二個(gè)方面的第一種可能的實(shí)現(xiàn)方式,在第二個(gè)方面的第三種可能的實(shí)現(xiàn)方式中,所述合并判決模塊,用于若所述操作請(qǐng)求屬于所述第二類別,則判斷所述操作請(qǐng)求對(duì)元數(shù)據(jù)的操作是否合法,若判斷出所述操作請(qǐng)求對(duì)元數(shù)據(jù)的操作不合法,則返回所述操作請(qǐng)求為錯(cuò)誤請(qǐng)求的返回結(jié)果;
[0051]否則,若判斷出所述操作請(qǐng)求對(duì)元數(shù)據(jù)的操作合法,則判斷合并隊(duì)列中是否存在所述第三類別的操作請(qǐng)求,所述合并隊(duì)列包括可合并的返回結(jié)果對(duì)應(yīng)的操作請(qǐng)求,若判斷出所述合并隊(duì)列中存在所述第三類別的操作請(qǐng)求,則返回所述操作請(qǐng)求為互斥請(qǐng)求的返回結(jié)果;
[0052]否則,若判斷出所述合并隊(duì)列中不存在所述第三類別的操作請(qǐng)求,則所述請(qǐng)求處理模塊用于將所述第二類別的操作請(qǐng)求加入到所述合并隊(duì)列中,將所述第二類別的操作請(qǐng)求操作的元數(shù)據(jù)加入到緩沖數(shù)據(jù)隊(duì)列中,所述合并判決模塊用于返回所述操作請(qǐng)求為可合并請(qǐng)求的返回結(jié)果。
[0053]結(jié)合第二個(gè)方面的第一種可能的實(shí)現(xiàn)方式,在第二個(gè)方面的第四種可能的實(shí)現(xiàn)方式中,所述合并判決模塊,用于若所述操作請(qǐng)求屬于所述第三類別,則判斷所述操作請(qǐng)求對(duì)元數(shù)據(jù)的操作是否合法,若判斷出所述操作請(qǐng)求對(duì)元數(shù)據(jù)的操作不合法,則返回所述操作請(qǐng)求為錯(cuò)誤請(qǐng)求的返回結(jié)果;
[0054]否則,若判斷出所述操作請(qǐng)求對(duì)元數(shù)據(jù)的操作合法,則判斷合并隊(duì)列中是否存在所述第二類別的操作請(qǐng)求,或者,所述第三類別的操作請(qǐng)求,所述合并隊(duì)列包括可合并的返回結(jié)果對(duì)應(yīng)的操作請(qǐng)求;
[0055]若判斷出所述合并隊(duì)列中存在所述第二類別的操作請(qǐng)求,或者,所述第三類別的操作請(qǐng)求,則返回所述操作請(qǐng)求為互斥請(qǐng)求的返回結(jié)果;
[0056]否則,若所述合并隊(duì)列中不存在所述第二類別的操作請(qǐng)求,并且,不存在所述第三類別的操作請(qǐng)求,則將所述第三類別的操作請(qǐng)求加入到所述合并隊(duì)列中,將所述第三類別的操作請(qǐng)求操作的元數(shù)據(jù)加入到緩沖數(shù)據(jù)隊(duì)列中,并返回所述操作結(jié)果為可合并請(qǐng)求的返回結(jié)果。
[0057]結(jié)合第二個(gè)方面的第二種可能的實(shí)現(xiàn)方式,在第二個(gè)方面的第五種可能的實(shí)現(xiàn)方式中,所述請(qǐng)求處理模塊,用于將所述操作請(qǐng)求移出所述請(qǐng)求隊(duì)列,并響應(yīng)所述操作請(qǐng)求。
[0058]結(jié)合第二個(gè)方面的第三種或第四種可能的實(shí)現(xiàn)方式,在第二個(gè)方面的第六種可能的實(shí)現(xiàn)方式中,所述請(qǐng)求處理模塊,用于將所述操作請(qǐng)求移出所述請(qǐng)求隊(duì)列,并響應(yīng)所述操作請(qǐng)求。
[0059]結(jié)合第二個(gè)方面的第三種或第四種可能的實(shí)現(xiàn)方式,在第二個(gè)方面的第七種可能的實(shí)現(xiàn)方式中,所述請(qǐng)求處理模塊,用于將所述操作請(qǐng)求保存在所述請(qǐng)求隊(duì)列中。
[0060]結(jié)合第二個(gè)方面的第三種、第四種或第七種可能的實(shí)現(xiàn)方式,在第二個(gè)方面的第八種可能的實(shí)現(xiàn)方式中,所述請(qǐng)求處理模塊,用于將所述緩沖數(shù)據(jù)隊(duì)列中的元數(shù)據(jù)發(fā)送給存儲(chǔ)節(jié)點(diǎn),以使所述存儲(chǔ)節(jié)點(diǎn)對(duì)所述元數(shù)據(jù)進(jìn)行寫入以得到事務(wù)結(jié)果;
[0061]所述元數(shù)據(jù)服務(wù)器,還包括發(fā)送模塊,用于根據(jù)所述事務(wù)結(jié)果,向所述合并隊(duì)列中的操作請(qǐng)求對(duì)應(yīng)的客戶端發(fā)送操作響應(yīng)。
[0062]結(jié)合第二個(gè)方面的第八種可能的實(shí)現(xiàn)方式,在第二個(gè)方面的第九種可能的實(shí)現(xiàn)方式中,所述目錄鎖模塊,還用于判斷所述請(qǐng)求隊(duì)列中是否還存在操作請(qǐng)求;
[0063]所述合并判決模塊,還用于若所述目錄鎖模塊判斷出所述請(qǐng)求隊(duì)列中還存在操作請(qǐng)求,則遍歷所述請(qǐng)求隊(duì)列中的每個(gè)操作請(qǐng)求,返回每一所述操作請(qǐng)求的返回結(jié)果;
[0064]所述請(qǐng)求處理模塊,還用于若所述目錄鎖模塊判斷出所述請(qǐng)求隊(duì)列中不存在操作請(qǐng)求,則釋放所述鎖。
[0065]本發(fā)明實(shí)施例提供的元數(shù)據(jù)處理方法及元數(shù)據(jù)服務(wù)器,元數(shù)據(jù)服務(wù)器對(duì)相同目錄下的多個(gè)并發(fā)操作請(qǐng)求,如新建操作、刪除操作、修改操作等,先獲取該目錄的鎖,若鎖被授權(quán),則對(duì)多個(gè)客戶端發(fā)送的操作請(qǐng)求進(jìn)行目錄級(jí)別的合井,從而提高對(duì)元數(shù)據(jù)的處理效率。
【專利附圖】

【附圖說明】
[0066]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作ー簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0067]圖1為本發(fā)明元數(shù)據(jù)處理方法實(shí)施例一的流程圖;
[0068]圖2A為本發(fā)明元數(shù)據(jù)處理方法中MDS處理主過程ー的示意圖;
[0069]圖2B為本發(fā)明元數(shù)據(jù)處理方法中子過程ニ的示意圖;
[0070]圖2C為本發(fā)明元數(shù)據(jù)處理方法中子過程三的示意圖;
[0071]圖3為本發(fā)明元數(shù)據(jù)服務(wù)器實(shí)施例一的結(jié)構(gòu)示意圖;
[0072]圖4為本發(fā)明元數(shù)據(jù)服務(wù)器實(shí)施例ニ的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0073]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0074]圖1為本發(fā)明元數(shù)據(jù)處理方法實(shí)施例一的流程圖。本實(shí)施例的執(zhí)行主體為元數(shù)據(jù)服務(wù)器。具體的,本實(shí)施例包括如下步驟:
[0075]101、將多個(gè)客戶端發(fā)送的對(duì)同一目錄的至少ー個(gè)操作請(qǐng)求緩存至請(qǐng)求隊(duì)列。
[0076]分布式文件系統(tǒng)包括多個(gè)元數(shù)據(jù)服務(wù)器(Metadata Server, , MDS),所有的元數(shù)據(jù)按照其歸屬目錄的元數(shù)據(jù)標(biāo)識(shí),分配給指定的元數(shù)據(jù)服務(wù)器,以確保對(duì)該目錄下的元數(shù)據(jù),例如子目錄項(xiàng)(包括目錄及文件等)的操作均是由該MDS來處理,便于目錄級(jí)的元數(shù)據(jù)操作的合井。本步驟中,多個(gè)客戶端(CLIENT)發(fā)送操作請(qǐng)求,案子操作請(qǐng)求所操作的元數(shù)據(jù)歸屬目錄的元數(shù)據(jù)標(biāo)識(shí),將對(duì)同一目錄的至少ー個(gè)操作請(qǐng)求緩存至請(qǐng)求隊(duì)列。
[0077]例如,目錄為/mountfs/2013,其元數(shù)據(jù)標(biāo)識(shí)為dirFIDl,該目錄下已有文件包括:
[0078]/mountfs/2013/file001,目錄 fileOOl 的元數(shù)據(jù)標(biāo)識(shí)為 FIDl ;
[0079]/mountfs/2013/file002,目錄 file002 的元數(shù)據(jù)標(biāo)識(shí)為 FID2 ;
[0080]/mountfs/2013/file003,目錄 file003 的元數(shù)據(jù)標(biāo)識(shí)為 FID3 ;
[0081]/mountfs/2013/file004,目錄 file004 的元數(shù)據(jù)標(biāo)識(shí)為 FID4。
[0082]上述已有的文件按照元數(shù)據(jù)標(biāo)識(shí)可以表示為{dirFID已有元數(shù)據(jù)}。
[0083]對(duì)屬于/mountfs/2013的操作請(qǐng)求,均由元數(shù)據(jù)標(biāo)識(shí)為dirFIDl的目錄對(duì)應(yīng)的元數(shù)據(jù)服務(wù)器進(jìn)行處理,即多個(gè)客戶端并發(fā)的操作請(qǐng)求,都到達(dá)該元數(shù)據(jù)服務(wù)器的請(qǐng)求隊(duì)列。例如:
[0084]CLIENTl.create (dirFID, newfile005),表不在/mountfs/2013 目錄下新建文件newfile005 ;[0085]CLIENT2.create (dirFID, newfile006),表不在/mountfs/2013 目錄下新建文件newfile006 ;
[0086]CLIENT3.unlink (dirFID, newfileOOl),表不在/mountfs/2013 目錄下刪除文件fileOOl ;
[0087]CLIENT4.unlink (dirFID, newfile002),表不在/mountfs/2013 目錄下刪除文件file002 ;
[0088]CLIENT5.setattr (FID3, file003, Add ACL),表示對(duì)/mountfs/2013/file003,增加 ACL ;
[0089]CLIENT6.setattr(FID3, file004, Remove ACL),表不對(duì) /mountfs/2013/file004,刪除ACL。
[0090]102、判斷目錄的鎖是否被授權(quán)。
[0091]分布式文件系統(tǒng)中,引入了鎖的概念。如果客戶端要操作某一元數(shù)據(jù),例如,某個(gè)目錄或子目錄等,需先申請(qǐng)到該元數(shù)據(jù)的鎖,從而使得多個(gè)客戶端操作元數(shù)據(jù)時(shí)就可以防止數(shù)據(jù)的修改和讀取的不一致性。本步驟中,目錄對(duì)應(yīng)的元數(shù)據(jù)服務(wù)器判斷該目錄的鎖是否被授權(quán),根據(jù)鎖授權(quán)的結(jié)果進(jìn)行后續(xù)處理。若該目錄的鎖未被授權(quán),不對(duì)操作請(qǐng)求對(duì)應(yīng)的元數(shù)據(jù)進(jìn)行處理;否則,若該目錄對(duì)應(yīng)的鎖被授權(quán),則執(zhí)行步驟103。其中,元數(shù)據(jù)服務(wù)器如何判斷目錄的鎖是否被授權(quán),可參見現(xiàn)有技木,此處不再贅述。
[0092]需要說明檔是,上述101和102的執(zhí)行并沒有嚴(yán)格的先后順序。
[0093]103、若鎖被授權(quán),則遍歷請(qǐng)求隊(duì)列中的每個(gè)操作請(qǐng)求,返回每ー操作請(qǐng)求的返回結(jié)果。
[0094]若元數(shù)據(jù)服務(wù)器判斷出目錄的鎖已被授權(quán),則遍歷請(qǐng)求隊(duì)列中的各個(gè)操作請(qǐng)求,根據(jù)預(yù)設(shè)的規(guī)則等返回每ー個(gè)操作請(qǐng)求的返回結(jié)果,該返回結(jié)果指示元數(shù)據(jù)服務(wù)器對(duì)操作請(qǐng)求的處理方式,例如,將操作請(qǐng)求移出請(qǐng)求隊(duì)列、繼續(xù)保存在請(qǐng)求隊(duì)列、對(duì)操作請(qǐng)求進(jìn)行響應(yīng)等。
[0095]104、根據(jù)各返回結(jié)果,對(duì)至少ー個(gè)操作請(qǐng)求對(duì)應(yīng)的元數(shù)據(jù)進(jìn)行處理。
[0096]本步驟中,元數(shù)據(jù)服務(wù)器根據(jù)各操作請(qǐng)求對(duì)應(yīng)的返回結(jié)果,對(duì)各操作請(qǐng)求對(duì)應(yīng)的元數(shù)據(jù)進(jìn)行處理。例如,若返回結(jié)果為將操作請(qǐng)求移出請(qǐng)求隊(duì)列,則若操作請(qǐng)求為讀請(qǐng)求,則對(duì)發(fā)送讀請(qǐng)求的客戶端進(jìn)行響應(yīng),若操作請(qǐng)求為錯(cuò)誤請(qǐng)求,則向發(fā)送該操作請(qǐng)求的客戶端響應(yīng)失敗,繼續(xù)遍歷請(qǐng)求隊(duì)列;若返回結(jié)果是可合并,則將操作請(qǐng)求添加到合并隊(duì)列中,將合并隊(duì)列中的操作請(qǐng)求對(duì)應(yīng)的元數(shù)據(jù)加入到緩沖數(shù)據(jù)隊(duì)列中,使得遍歷完請(qǐng)求隊(duì)列后,將緩沖數(shù)據(jù)隊(duì)列中經(jīng)合并的元數(shù)據(jù)一次性提交給存儲(chǔ)節(jié)點(diǎn)寫盤。
[0097]本發(fā)明實(shí)施例提供的元數(shù)據(jù)處理方法,元數(shù)據(jù)服務(wù)器對(duì)相同目錄下的多個(gè)并發(fā)操作請(qǐng)求,如新建操作、刪除操作、修改操作等,先獲取該目錄的鎖,若鎖被授權(quán),則對(duì)多個(gè)客戶端發(fā)送的操作請(qǐng)求進(jìn)行目錄級(jí)別的合并,從而提高對(duì)元數(shù)據(jù)的處理效率。
[0098]圖2A為本發(fā)明元數(shù)據(jù)處理方法中MDS處理主過程ー的示意圖,以下為描述清楚起見,將該過程稱之為【主過程1-MDS處理主過程】。本實(shí)施例的執(zhí)行主體為元數(shù)據(jù)服務(wù)器。具體的,本實(shí)施例包括如下步驟:
[0099]201、元數(shù)據(jù)服務(wù)器將至少ー個(gè)操作請(qǐng)求緩存至請(qǐng)求隊(duì)列。
[0100]對(duì)于某一個(gè)目錄,例如dirFID,其指定的元數(shù)據(jù)服務(wù)器接收到多個(gè)客戶端對(duì)該目錄的操作請(qǐng)求后,將操作請(qǐng)求緩存至該目錄的請(qǐng)求隊(duì)列,例如{dirFID請(qǐng)求隊(duì)列},后續(xù)若繼續(xù)接收到對(duì)目錄dirFID的操作請(qǐng)求,則將該些操作請(qǐng)求繼續(xù)緩存至{dirFID請(qǐng)求隊(duì)列}。
[0101]202、元數(shù)據(jù)服務(wù)器獲取目錄的鎖,并判斷鎖是否被授權(quán)。
[0102]與目錄對(duì)應(yīng)的元數(shù)據(jù)服務(wù)器判斷目錄的鎖是否被授權(quán)。若鎖未被授權(quán),則執(zhí)行203 ;否則,若鎖被授權(quán),則執(zhí)行204。
[0103]203、等待處理。
[0104]若元數(shù)據(jù)服務(wù)器判斷出鎖未被授權(quán),則等待處理。
[0105]204、執(zhí)行【子過程2-請(qǐng)求合并子過程】。
[0106]若元數(shù)據(jù)服務(wù)器判斷出鎖被授權(quán),執(zhí)行【子過程2-請(qǐng)求合并子過程】。
[0107]本步驟中,MDS遍歷{dirFID請(qǐng)求隊(duì)列}中的姆個(gè)操作請(qǐng)求,對(duì)姆個(gè)操作請(qǐng)求按照【子過程2-請(qǐng)求合并子過程】進(jìn)行處理,返回各操作請(qǐng)求的返回結(jié)果。其中,【子過程2-請(qǐng)求合并子過程】可參見圖2B。
[0108]205、根據(jù)返回結(jié)果,對(duì)操作請(qǐng)求對(duì)應(yīng)的元數(shù)據(jù)進(jìn)行處理。
[0109]具體的,本步驟包括如下可選子步驟(圖中未示出):
[0110]2051、讀請(qǐng)求的返回結(jié)果。
[0111]若返回結(jié)果為讀請(qǐng)求(RE Q_IS_READ),則將該返回結(jié)果對(duì)應(yīng)的操作請(qǐng)求移出{dirFID請(qǐng)求隊(duì)列},若元數(shù)據(jù)服務(wù)器的緩存中能夠命中該操作請(qǐng)求,則直接對(duì)發(fā)起該操作請(qǐng)求的客戶端進(jìn)行響應(yīng);否則,若未命中,則到存儲(chǔ)節(jié)點(diǎn)讀取該操作請(qǐng)求后響應(yīng)客戶端,繼續(xù)遍歷{dirFID請(qǐng)求隊(duì)列}。
[0112]2052、錯(cuò)誤請(qǐng)求的返回結(jié)果。
[0113]若返回結(jié)果為錯(cuò)誤請(qǐng)求(REQ_IS_ERR0R),則向該返回結(jié)果對(duì)應(yīng)的操作請(qǐng)求的發(fā)起客戶端響應(yīng)錯(cuò)誤,繼續(xù)遍歷{dirFID請(qǐng)求隊(duì)列}。
[0114]2053、可合并的返回結(jié)果。
[0115]若返回結(jié)果為可合并(REQ_IS_MERGED),則將該返回結(jié)果對(duì)應(yīng)的操作請(qǐng)求加入到合并隊(duì)列中,例如{dirFID合并隊(duì)列},并將該操作請(qǐng)求所操作的元數(shù)據(jù)加入到緩沖數(shù)據(jù)隊(duì)列中,例如{dirFID緩沖數(shù)據(jù)隊(duì)列},繼續(xù)遍歷{dirFID請(qǐng)求隊(duì)列}。其中操作請(qǐng)求所操作的元數(shù)據(jù)例如為新增元數(shù)據(jù)、刪除原數(shù)據(jù)、修改元數(shù)據(jù)等。
[0116]2054、互斥的返回結(jié)果。
[0117]若返回結(jié)果為互斥(REQ_IS_MUTEXED),則將該返回結(jié)果對(duì)應(yīng)的操作請(qǐng)求保存在{dirFID請(qǐng)求隊(duì)列}中,退出循環(huán),執(zhí)行步驟205。
[0118]2055、遍歷完畢。
[0119]元數(shù)據(jù)服務(wù)器判斷是否遍歷完畢{dirFID請(qǐng)求隊(duì)列},若未遍歷完畢,則繼續(xù)循環(huán);否則,若遍歷完畢,則退出循環(huán),執(zhí)行步驟205。
[0120]206、將緩沖數(shù)據(jù)隊(duì)列中的元數(shù)據(jù)發(fā)送給存儲(chǔ)節(jié)點(diǎn)。
[0121]元數(shù)據(jù)服務(wù)器一次性的將緩沖數(shù)據(jù)隊(duì)列中的數(shù)據(jù)發(fā)送給存儲(chǔ)節(jié)點(diǎn),以使存儲(chǔ)節(jié)點(diǎn)通過事務(wù)機(jī)制保證多個(gè)元數(shù)據(jù)寫入的原子性,等待事務(wù)結(jié)果。
[0122]207、向合并隊(duì)列中的操作請(qǐng)求對(duì)應(yīng)的客戶端發(fā)送操作響應(yīng)。
[0123]元數(shù)據(jù)服務(wù)器等待到事務(wù)結(jié)果后,對(duì){dirFID合并隊(duì)列}中的所有操作請(qǐng)求,根據(jù)事務(wù)結(jié)果進(jìn)行響應(yīng)。例如,若事務(wù)成功,則發(fā)送成功響應(yīng);否則,若是否失敗,則發(fā)送失敗響應(yīng)。對(duì){dirFID合并隊(duì)列}中的所有操作請(qǐng)求發(fā)起的客戶端響應(yīng)完畢后,合并操作請(qǐng)求結(jié)束。
[0124]208、判斷請(qǐng)求隊(duì)列中是否還存在操作請(qǐng)求。
[0125]元數(shù)據(jù)服務(wù)器繼續(xù)檢查{dirFID請(qǐng)求隊(duì)列},若{dirFID請(qǐng)求隊(duì)列}中還有操作請(qǐng)求在等待,則返回204 ;否則,執(zhí)行209.[0126]209、釋放鎖。
[0127]若{dirFID請(qǐng)求隊(duì)列}中沒有等待的操作請(qǐng)求,則釋放鎖。
[0128]上述圖2A是從【主過程1-MDS處理主過程】的角度對(duì)本發(fā)明進(jìn)行詳細(xì)闡述,下面,對(duì)步驟203中的【子過程2-請(qǐng)求合并子過程】進(jìn)行詳細(xì)說明。
[0129]本發(fā)明實(shí)施例中,對(duì)元數(shù)據(jù)的操作請(qǐng)求可分為以下三類,第一類別:對(duì)元數(shù)據(jù)的讀操作;第二類別:對(duì)元數(shù)據(jù)的新建操作、修改操作和刪除操作;第三類別:對(duì)元數(shù)據(jù)的移動(dòng)操作、新建鏈接操作和刪除其中,第一類別的操作請(qǐng)求與第二類別的操作請(qǐng)求互斥,即遍歷{dirFID請(qǐng)求隊(duì)列}的過程中,對(duì)于第一類別的操作請(qǐng)求,若{dirFID合并隊(duì)列}中已存在第二類別的操作請(qǐng)求,則不把該當(dāng)前正在遍歷的操作請(qǐng)求加入到{dirFID合并隊(duì)列},而是返回互斥請(qǐng)求(REQ_IS_MERGED)的返回結(jié)果;同理,若當(dāng)前遍歷的操作請(qǐng)求屬于第二類別,且{dirFID合并隊(duì)列}中已存在第一類別或第二類別的操作請(qǐng)求時(shí),也不把該當(dāng)前正在遍歷的第二類別的操作請(qǐng)求加入到{dirFID合并隊(duì)列},而是返回互斥請(qǐng)求的返回結(jié)果。具體的,可參見表1,表1為本發(fā)明操作請(qǐng)求分類表。
[0130]表1
【權(quán)利要求】
1.一種元數(shù)據(jù)處理方法,其特征在于,包括: 將多個(gè)客戶端發(fā)送的對(duì)同一目錄的至少ー個(gè)操作請(qǐng)求緩存至請(qǐng)求隊(duì)列; 判斷所述目錄的鎖是否被授權(quán); 若所述鎖被授權(quán),則遍歷所述請(qǐng)求隊(duì)列中的每個(gè)操作請(qǐng)求,返回每一所述操作請(qǐng)求的返回結(jié)果; 根據(jù)各所述返回結(jié)果,對(duì)所述至少ー個(gè)操作請(qǐng)求對(duì)應(yīng)的元數(shù)據(jù)進(jìn)行處理。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述若所述鎖被授權(quán),則遍歷所述請(qǐng)求隊(duì)列中的每個(gè)操作請(qǐng)求,返回每一所述操作請(qǐng)求的返回結(jié)果,包括: 對(duì)于每ー個(gè)操作請(qǐng)求,判斷所述操作請(qǐng)求的類別,所述類別包括:第一類別、第二類別和第三類別,其中,所述第一類別包括對(duì)元數(shù)據(jù)的讀操作,所述第二類別包括對(duì)元數(shù)據(jù)的新建操作、修改操作和刪除操作,所述第三類別包括對(duì)元數(shù)據(jù)的移動(dòng)操作、新建鏈接操作和刪除鏈接操作; 根據(jù)所述操作請(qǐng)求所屬的類別,返回所述操作請(qǐng)求對(duì)應(yīng)的返回結(jié)果。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)所述操作請(qǐng)求所屬的類別,返回所述操作請(qǐng)求對(duì)應(yīng)的返回結(jié)果,包括: 若所述操作請(qǐng)求屬于所述第一類別,則返回所述操作請(qǐng)求為讀請(qǐng)求的返回結(jié)果。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)所述操作請(qǐng)求所屬的類別,返回所述操作請(qǐng)求對(duì)應(yīng)的返回結(jié)果,包括:` 若所述操作請(qǐng)求屬于所述第二類別,則判斷所述操作請(qǐng)求對(duì)元數(shù)據(jù)的操作是否合法; 若不合法,則返回所述操作請(qǐng)求為錯(cuò)誤請(qǐng)求的返回結(jié)果; 否則,若合法,則判斷合并隊(duì)列中是否存在所述第三類別的操作請(qǐng)求,所述合并隊(duì)列包括可合并的返回結(jié)果對(duì)應(yīng)的操作請(qǐng)求; 若所述合并隊(duì)列中存在所述第三類別的操作請(qǐng)求,則返回所述操作請(qǐng)求為互斥請(qǐng)求的返回結(jié)果; 否則,若所述合并隊(duì)列中不存在所述第三類別的操作請(qǐng)求,則將所述第二類別的操作請(qǐng)求加入到所述合并隊(duì)列中,將所述第二類別的操作請(qǐng)求操作的元數(shù)據(jù)加入到緩沖數(shù)據(jù)隊(duì)列中,并返回所述操作請(qǐng)求為可合并請(qǐng)求的返回結(jié)果。
5.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)所述操作請(qǐng)求所屬的類別,返回所述操作請(qǐng)求對(duì)應(yīng)的返回結(jié)果,包括: 若所述操作請(qǐng)求屬于所述第三類別,則判斷所述操作請(qǐng)求對(duì)元數(shù)據(jù)的操作是否合法; 若不合法,則返回所述操作請(qǐng)求為錯(cuò)誤請(qǐng)求的返回結(jié)果; 否則,若合法,則判斷合并隊(duì)列中是否存在所述第二類別的操作請(qǐng)求,或者,所述第三類別的操作請(qǐng)求,所述合并隊(duì)列包括可合并的返回結(jié)果對(duì)應(yīng)的操作請(qǐng)求; 若所述合并隊(duì)列中存在所述第二類別的操作請(qǐng)求,或者,所述第三類別的操作請(qǐng)求,則返回所述操作請(qǐng)求為互斥請(qǐng)求的返回結(jié)果; 否則,若所述合并隊(duì)列中不存在所述第二類別的操作請(qǐng)求,并且,不存在所述第三類別的操作請(qǐng)求,則將所述第三類別的操作請(qǐng)求加入到所述合并隊(duì)列中,將所述第三類別的操作請(qǐng)求操作的元數(shù)據(jù)加入到緩沖數(shù)據(jù)隊(duì)列中,并返回所述操作結(jié)果為可合并請(qǐng)求的返回結(jié)果。
6.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述根據(jù)各所述返回結(jié)果,對(duì)所述至少ー個(gè)操作請(qǐng)求對(duì)應(yīng)的元數(shù)據(jù)進(jìn)行處理,包括: 將所述操作請(qǐng)求移出所述請(qǐng)求隊(duì)列; 響應(yīng)所述操作請(qǐng)求。
7.根據(jù)權(quán)利要求4或5所述的方法,其特征在于,若不合法,返回所述操作請(qǐng)求為錯(cuò)誤請(qǐng)求的返回結(jié)果,則所述根據(jù)各所述返回結(jié)果,對(duì)所述至少ー個(gè)操作請(qǐng)求對(duì)應(yīng)的元數(shù)據(jù)進(jìn)行處理,包括: 將所述操作請(qǐng)求移出所述請(qǐng)求隊(duì)列; 響應(yīng)所述操作請(qǐng)求。
8.根據(jù)權(quán)利要求4或5所述的方法,其特征在于,若返回所述操作請(qǐng)求為互斥請(qǐng)求的返回結(jié)果,則所述根據(jù)各所述返回結(jié)果,對(duì)所述至少ー個(gè)操作請(qǐng)求對(duì)應(yīng)的元數(shù)據(jù)進(jìn)行處理,包括: 將所述操作請(qǐng)求保存在所述請(qǐng)求隊(duì)列中。
9.根據(jù)權(quán)利要求4、5或8所述的方法,其特征在于,所述根據(jù)各所述返回結(jié)果,對(duì)所述至少ー個(gè)操作請(qǐng)求對(duì)應(yīng)的元數(shù)據(jù)進(jìn)行處理,包括: 將所述緩沖數(shù)據(jù)隊(duì)列中的元數(shù)據(jù)發(fā)送給存儲(chǔ)節(jié)點(diǎn),以使所述存儲(chǔ)節(jié)點(diǎn)對(duì)所述元數(shù)據(jù)進(jìn)行寫入以得到事務(wù)結(jié)果; 根據(jù)所述事務(wù)結(jié)果,向所 述合并隊(duì)列中的操作請(qǐng)求對(duì)應(yīng)的客戶端發(fā)送操作響應(yīng)。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述根據(jù)所述事務(wù)結(jié)果,向所述合并隊(duì)列中的操作請(qǐng)求對(duì)應(yīng)的客戶端發(fā)送操作響應(yīng)之后,還包括: 判斷所述請(qǐng)求隊(duì)列中是否還存在操作請(qǐng)求; 若存在,則遍歷所述請(qǐng)求隊(duì)列中的每個(gè)操作請(qǐng)求,返回每一所述操作請(qǐng)求的返回結(jié)果; 否則,若不存在,則釋放所述鎖。
11.一種元數(shù)據(jù)服務(wù)器,其特征在于,包括: 請(qǐng)求隊(duì)列模塊,用于將多個(gè)客戶端發(fā)送的對(duì)同一目錄的至少ー個(gè)操作請(qǐng)求緩存至請(qǐng)求隊(duì)列; 目錄鎖模塊,用于判斷所述目錄的鎖是否被授權(quán); 合并判決模塊,用于若所述目錄鎖模塊判斷出所述鎖被授權(quán),則遍歷所述請(qǐng)求隊(duì)列中的每個(gè)操作請(qǐng)求,返回每一所述操作請(qǐng)求的返回結(jié)果; 請(qǐng)求處理模塊,用于根據(jù)各所述返回結(jié)果,對(duì)所述至少ー個(gè)操作請(qǐng)求對(duì)應(yīng)的元數(shù)據(jù)進(jìn)行處理。
12.根據(jù)權(quán)利要求11所述的元數(shù)據(jù)服務(wù)器,其特征在干, 所述合并判決模塊,對(duì)于每ー個(gè)操作請(qǐng)求,判斷所述操作請(qǐng)求的類別,所述類別包括:第一類別、第二類別和第三類別,其中,所述第一類別包括對(duì)元數(shù)據(jù)的讀操作,所述第二類別包括對(duì)元數(shù)據(jù)的新建操作、修改操作和刪除操作,所述第三類別包括對(duì)元數(shù)據(jù)的移動(dòng)操作、新建鏈接操作和刪除鏈接操作,根據(jù)所述操作請(qǐng)求所屬的類別,返回所述操作請(qǐng)求對(duì)應(yīng)的返回結(jié)果。
13.根據(jù)權(quán)利要求12所述的元數(shù)據(jù)服務(wù)器,其特征在干,所述合并判決模塊,用于若所述操作請(qǐng)求屬于所述第一類別,則返回所述操作請(qǐng)求為讀請(qǐng)求的返回結(jié)果。
14.根據(jù)權(quán)利要求12所述的元數(shù)據(jù)服務(wù)器,其特征在干, 所述合并判決模塊,用于若所述操作請(qǐng)求屬于所述第二類別,則判斷所述操作請(qǐng)求對(duì)元數(shù)據(jù)的操作是否合法,若判斷出所述操作請(qǐng)求對(duì)元數(shù)據(jù)的操作不合法,則返回所述操作請(qǐng)求為錯(cuò)誤請(qǐng)求的返回結(jié)果; 否則,若判斷出所述操作請(qǐng)求對(duì)元數(shù)據(jù)的操作合法,則判斷合并隊(duì)列中是否存在所述第三類別的操作請(qǐng)求,所述合并隊(duì)列包括可合并的返回結(jié)果對(duì)應(yīng)的操作請(qǐng)求,若判斷出所述合并隊(duì)列中存在所述第三類別的操作請(qǐng)求,則返回所述操作請(qǐng)求為互斥請(qǐng)求的返回結(jié)果; 否則,若判斷出所述合并隊(duì)列中不存在所述第三類別的操作請(qǐng)求,則所述請(qǐng)求處理模塊用于將所述第二類別的操作請(qǐng)求加入到所述合并隊(duì)列中,將所述第二類別的操作請(qǐng)求操作的元數(shù)據(jù)加入到緩沖數(shù)據(jù)隊(duì)列中,所述合并判決模塊用于返回所述操作請(qǐng)求為可合并請(qǐng)求的返回結(jié)果。
15.根據(jù)權(quán)利要求12所述的元數(shù)據(jù)服務(wù)器,其特征在干, 所述合并判決模塊,用于若所述操作請(qǐng)求屬于所述第三類別,則判斷所述操作請(qǐng)求對(duì)元數(shù)據(jù)的操作是否合法,若判斷出所述操作請(qǐng)求對(duì)元數(shù)據(jù)的操作不合法,則返回所述操作請(qǐng)求為錯(cuò)誤請(qǐng)求的返回結(jié)果; 否則,若判斷出所述操作請(qǐng)求對(duì)元數(shù)據(jù)的操作合法,則判斷合并隊(duì)列中是否存在所述第二類別的操作請(qǐng)求,或者,所述第三類別的操作請(qǐng)求,所述合并隊(duì)列包括可合并的返回結(jié)果對(duì)應(yīng)的操作請(qǐng)求;` 若判斷出所述合并隊(duì)列中存在所述第二類別的操作請(qǐng)求,或者,所述第三類別的操作請(qǐng)求,則返回所述操作請(qǐng)求為互斥請(qǐng)求的返回結(jié)果; 否則,若所述合并隊(duì)列中不存在所述第二類別的操作請(qǐng)求,并且,不存在所述第三類別的操作請(qǐng)求,則將所述第三類別的操作請(qǐng)求加入到所述合并隊(duì)列中,將所述第三類別的操作請(qǐng)求操作的元數(shù)據(jù)加入到緩沖數(shù)據(jù)隊(duì)列中,并返回所述操作結(jié)果為可合并請(qǐng)求的返回結(jié)果。
16.根據(jù)權(quán)利要求13所述的元數(shù)據(jù)服務(wù)器,其特征在干, 所述請(qǐng)求處理模塊,用于將所述操作請(qǐng)求移出所述請(qǐng)求隊(duì)列,并響應(yīng)所述操作請(qǐng)求。
17.根據(jù)權(quán)利要求14或15所述的元數(shù)據(jù)服務(wù)器,其特征在干, 所述請(qǐng)求處理模塊,用于將所述操作請(qǐng)求移出所述請(qǐng)求隊(duì)列,并響應(yīng)所述操作請(qǐng)求。
18.根據(jù)權(quán)利要求14或15所述的元數(shù)據(jù)服務(wù)器,其特征在干, 所述請(qǐng)求處理模塊,用于將所述操作請(qǐng)求保存在所述請(qǐng)求隊(duì)列中。
19.根據(jù)權(quán)利要求14、15或18所述的元數(shù)據(jù)服務(wù)器,其特征在干, 所述請(qǐng)求處理模塊,用于將所述緩沖數(shù)據(jù)隊(duì)列中的元數(shù)據(jù)發(fā)送給存儲(chǔ)節(jié)點(diǎn),以使所述存儲(chǔ)節(jié)點(diǎn)對(duì)所述元數(shù)據(jù)進(jìn)行寫入以得到事務(wù)結(jié)果; 所述元數(shù)據(jù)服務(wù)器,還包括發(fā)送模塊,用于根據(jù)所述事務(wù)結(jié)果,向所述合并隊(duì)列中的操作請(qǐng)求對(duì)應(yīng)的客戶端發(fā)送操作響應(yīng)。
20.根據(jù)權(quán)利要求19所述的元數(shù)據(jù)服務(wù)器,其特征在干,所述目錄鎖模塊,還用于判斷所述請(qǐng)求隊(duì)列中是否還存在操作請(qǐng)求; 所述合并判決模塊,還用于若所述目錄鎖模塊判斷出所述請(qǐng)求隊(duì)列中還存在操作請(qǐng)求,則遍歷所述請(qǐng)求隊(duì)列中的每個(gè)操作請(qǐng)求,返回每一所述操作請(qǐng)求的返回結(jié)果; 所述請(qǐng)求處理模塊,還用于若所述目錄鎖模塊判斷出所述請(qǐng)求隊(duì)列中不存在操作請(qǐng)求,則釋放所述鎖。`
【文檔編號(hào)】H04L29/08GK103501339SQ201310464137
【公開日】2014年1月8日 申請(qǐng)日期:2013年9月30日 優(yōu)先權(quán)日:2013年9月30日
【發(fā)明者】謝曉芹 申請(qǐng)人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
浏阳市| 泸水县| 沁源县| 阳西县| 翁源县| 五大连池市| 邵武市| 田林县| 奉化市| 扬中市| 独山县| 涡阳县| 台州市| 容城县| 茌平县| 济源市| 同仁县| 渑池县| 改则县| 屏东县| 霍林郭勒市| 乐山市| 密云县| 淮北市| 神农架林区| 浦县| 会理县| 兴义市| 集贤县| 宝丰县| 崇义县| 元江| 晋宁县| 长武县| 保德县| 安徽省| 施秉县| 东辽县| 潼关县| 乌兰察布市| 白朗县|