亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種云存儲中小文件的合并方法及裝置與流程

文檔序號:11250720閱讀:776來源:國知局
一種云存儲中小文件的合并方法及裝置與流程

本發(fā)明涉及數(shù)據(jù)存儲技術(shù)領(lǐng)域,特別涉及一種云存儲中小文件的合并方法及裝置。



背景技術(shù):

隨著現(xiàn)代社會科技的發(fā)展,云存儲作為一種新興的網(wǎng)絡(luò)存儲技術(shù)已經(jīng)廣泛應(yīng)用到人們的生活中。hdfs(hadoopdistributedfilesystem)是一種具有高度容錯(cuò)性質(zhì)的分布式文件系統(tǒng)模型,可以部署在支持java運(yùn)行環(huán)境的普通機(jī)器或虛擬機(jī)上,能夠提供高吞吐量的數(shù)據(jù)訪問,非常適合部署云存儲平臺。

hdfs采用主從式架構(gòu)設(shè)計(jì)模式(master/slavearchitecture),一個(gè)名稱節(jié)點(diǎn)(namenode)和若干數(shù)據(jù)節(jié)點(diǎn)(datanode)構(gòu)成hdfs集群。hdfs的這種單名稱節(jié)點(diǎn)的設(shè)計(jì)極大地簡化了文件系統(tǒng)的結(jié)構(gòu),然而也因此引發(fā)了hdfs的小文件存儲效率低的問題。

現(xiàn)有技術(shù)中,解決如基于hdfs的存儲系統(tǒng)的云存儲中小文件存儲效率問題的主流思想是將小文件合并或組合為大文件,目前主要的方法分為2種,一種是利用hadoop歸檔(hadooparchive,har)等技術(shù)實(shí)現(xiàn)小文件合并的方法,另一種則是針對具體的應(yīng)用而提出的文件組合方法。這兩種方法都是基于文件的合并或組合來解決小文件存儲效率不高的問題,然而這兩種方法均存在以下問題:未考慮云存儲系統(tǒng)的負(fù)載狀況,云存儲作為一個(gè)完整的系統(tǒng),在提高小文件存儲效率的同時(shí),也應(yīng)該考慮到系統(tǒng)的負(fù)載狀況,因?yàn)椴还苁俏募喜⑦€是文件組合,對與如hdfs的云存儲系統(tǒng)而言都是一個(gè)額外的操作;并且未對小文件合并規(guī)模進(jìn)行研究,即尚未確定多少個(gè)小文件合并為一個(gè)大文件可以使系統(tǒng)性能達(dá)到最優(yōu)。因此,如何根據(jù)云存儲系統(tǒng)的負(fù)載狀況,對達(dá)到一定規(guī)模小文件進(jìn)行合并,實(shí)現(xiàn)云存儲系統(tǒng)的負(fù)載均衡,優(yōu)化小文件存儲效率,是現(xiàn)今急需解決的問題。



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

本發(fā)明的目的是提供一種云存儲中小文件的合并方法及裝置,以采用序列文件技術(shù)將小文件合并為大文件,并利用系統(tǒng)負(fù)載預(yù)測算法實(shí)現(xiàn)系統(tǒng)的負(fù)載均衡,優(yōu)化小文件存儲效率。

為解決上述技術(shù)問題,本發(fā)明提供一種云存儲中小文件的合并方法,包括:

接收sfq發(fā)送的隊(duì)列滿信號;

通過系統(tǒng)負(fù)載預(yù)測算法計(jì)算系統(tǒng)的負(fù)載;

判斷所述負(fù)載是否小于第一閾值;

若否,則將當(dāng)前時(shí)刻的所述sfq存儲的小文件的索引號存儲至對應(yīng)的一個(gè)bq;其中,每個(gè)bq存儲各自對應(yīng)的一個(gè)時(shí)刻的所述sfq的索引號;

若是,則合并所述sfq存儲的索引號對應(yīng)的小文件,或合并所述sfq和全部bq各自存儲的索引號對應(yīng)的小文件。

可選的,所述將當(dāng)前時(shí)刻的所述sfq存儲的小文件的索引號存儲至對應(yīng)的一個(gè)bq,包括:

判斷已存儲索引號的bq是否達(dá)到預(yù)設(shè)數(shù)量;

若是,則合并所述sfq和全部bq各自存儲的索引號對應(yīng)的小文件;

若否,則將當(dāng)前時(shí)刻的所述sfq存儲的索引號存儲至對應(yīng)的一個(gè)bq。

可選的,所述接收sfq發(fā)送的隊(duì)列滿信號之前,還包括:

基于序列文件技術(shù),將用戶上傳的小文件的所述索引號存儲至所述sfq;

所述sfq存儲的所述索引號的數(shù)量達(dá)到第二閾值時(shí),發(fā)送所述隊(duì)列滿信號。

可選的,所述通過系統(tǒng)負(fù)載預(yù)測算法計(jì)算系統(tǒng)的負(fù)載,包括:

通過基于層次分析法的系統(tǒng)負(fù)載預(yù)測算法計(jì)算所述負(fù)載。

可選的,所述接收sfq發(fā)送的隊(duì)列滿信號,包括:

識別接收到的信號;其中,所述信號包括所述隊(duì)列滿信號和定時(shí)器發(fā)送的時(shí)間到信號;

若所述信號為所述隊(duì)列滿信號,則執(zhí)行所述通過系統(tǒng)負(fù)載預(yù)測算法計(jì)算系統(tǒng)的負(fù)載的步驟;

若所述信號為所述時(shí)間到信號,則通過所述系統(tǒng)負(fù)載預(yù)測算法計(jì)算所述負(fù)載;

判斷所述負(fù)載是否小于所述第一閾值;

若所述負(fù)載小于所述第一閾值,則合并全部bq各自存儲的索引號對應(yīng)的小文件。

可選的,所述識別接收到的信號之前,還包括:

所述定時(shí)器按預(yù)設(shè)時(shí)間間隔發(fā)送所述時(shí)間到信號。

此外,本發(fā)明還提供了一種云存儲中小文件的合并裝置,包括:

接收模塊,用于接收sfq發(fā)送的隊(duì)列滿信號;

計(jì)算模塊,用于通過系統(tǒng)負(fù)載預(yù)測算法計(jì)算系統(tǒng)的負(fù)載;

判斷模塊,用于判斷所述負(fù)載是否小于第一閾值;

存儲模塊,用于當(dāng)所述負(fù)載不小于所述第一閾值時(shí),將當(dāng)前時(shí)刻的所述sfq存儲的小文件的索引號存儲至對應(yīng)的一個(gè)bq;其中,每個(gè)bq存儲各自對應(yīng)的一個(gè)時(shí)刻的所述sfq的索引號;

合并模塊,用于當(dāng)所述負(fù)載小于所述第一閾值時(shí),合并所述sfq存儲的索引號對應(yīng)的小文件,或合并所述sfq和全部bq各自存儲的索引號對應(yīng)的小文件。

可選的,所述存儲模塊,包括:

第一判斷子模塊,用于判斷已存儲索引號的bq是否達(dá)到預(yù)設(shè)數(shù)量;

第一合并子模塊,用于當(dāng)已存儲索引號的bq達(dá)到所述預(yù)設(shè)數(shù)量時(shí),合并所述sfq和全部bq各自存儲的索引號對應(yīng)的小文件;

存儲子模塊,用于當(dāng)已存儲索引號的bq未達(dá)到所述預(yù)設(shè)數(shù)量時(shí),將當(dāng)前時(shí)刻的所述sfq存儲的索引號存儲至對應(yīng)的一個(gè)bq。

可選的,該裝置還包括:

分類存儲模塊,用于基于序列文件技術(shù),將用戶上傳的小文件的所述索引號存儲至所述sfq;

發(fā)送模塊,用于所述sfq存儲的所述索引號的數(shù)量達(dá)到第二閾值時(shí),發(fā)送所述隊(duì)列滿信號。

可選的,所述接收模塊,包括:

識別子模塊,用于識別接收到的信號;若所述信號為所述隊(duì)列滿信號,向所述計(jì)算模塊發(fā)送第一啟動信號;若所述信號為所述時(shí)間到信號,則向計(jì)算子模塊發(fā)送第二啟動信號;

所述計(jì)算子模塊,用于通過所述系統(tǒng)負(fù)載預(yù)測算法計(jì)算所述負(fù)載;

第二判斷子模塊,用于判斷所述負(fù)載是否小于所述第一閾值;

第二合并子模塊,用于當(dāng)所述負(fù)載小于所述第一閾值時(shí),合并全部bq各自存儲的索引號對應(yīng)的小文件。

本發(fā)明所提供的一種云存儲中小文件的合并方法,包括:接收sfq發(fā)送的隊(duì)列滿信號;通過系統(tǒng)負(fù)載預(yù)測算法計(jì)算系統(tǒng)的負(fù)載;判斷所述負(fù)載是否小于第一閾值;若否,則將當(dāng)前時(shí)刻的所述sfq存儲的小文件的索引號存儲至對應(yīng)的一個(gè)bq;其中,每個(gè)bq存儲各自對應(yīng)的一個(gè)時(shí)刻的所述sfq的索引號;若是,則合并所述sfq存儲的索引號對應(yīng)的小文件,或合并所述sfq和全部bq各自存儲的索引號對應(yīng)的小文件;

可見,本發(fā)明通過接收sfq發(fā)送的隊(duì)列滿信號,可以利用sfq(sequencefilequeue,序列文件隊(duì)列)存儲序列文件技術(shù)下的小文件的索引號;通過系統(tǒng)負(fù)載預(yù)測算法計(jì)算系統(tǒng)的負(fù)載,可以對云存儲系統(tǒng)的負(fù)載狀況進(jìn)行計(jì)算;通過當(dāng)負(fù)載小于第一閾值時(shí),合并sfq存儲的索引號對應(yīng)的小文件,或合并sfq和全部bq(backupqueue,備用隊(duì)列)各自存儲的索引號對應(yīng)的小文件,可以在系統(tǒng)負(fù)載不高的情況下,利用序列文件技術(shù)將sfq或每個(gè)bq存儲的全部索引號各自對應(yīng)的小文件合并成一個(gè)大文件,實(shí)現(xiàn)了系統(tǒng)的負(fù)載均衡并提高了系統(tǒng)性能,優(yōu)化了小文件存儲效率,提升了用戶體驗(yàn)。此外,本發(fā)明還提供了云存儲中小文件的合并裝置,同樣具有上述有益效果。

附圖說明

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

圖1為本發(fā)明實(shí)施例所提供的一種云存儲中小文件的合并方法的流程圖;

圖2為本發(fā)明實(shí)施例所提供的另一種云存儲中小文件的合并方法的流程圖;

圖3為本發(fā)明實(shí)施例所提供的另一種云存儲中小文件的合并方法的處理流程示意圖;

圖4為本發(fā)明實(shí)施例所提供的一種云存儲中小文件的合并裝置的結(jié)構(gòu)圖。

具體實(shí)施方式

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

請參考圖1,圖1為本發(fā)明實(shí)施例所提供的一種云存儲中小文件的合并方法的流程圖。該方法可以包括:

步驟101:接收sfq發(fā)送的隊(duì)列滿信號。

其中,隊(duì)列滿信號可以為sfq存儲的小文件的索引號的數(shù)量達(dá)到可合并的閾值時(shí)發(fā)送的信號。對于隊(duì)列滿信號的具體內(nèi)容,也就是sfq發(fā)送的內(nèi)容,可以由設(shè)計(jì)人員自行設(shè)置,本實(shí)施例對此不做任何限制。

可以理解的是,本實(shí)施例所提供的方法可以云存儲系統(tǒng)中控制小文件進(jìn)行合并的控制器所執(zhí)行的方法,還可以在本實(shí)施例所提供的方法的基礎(chǔ)上加入云存儲系統(tǒng)中其他模塊執(zhí)行的步驟,如接收模塊基于序列文件技術(shù),將用戶上傳的小文件的索引號存儲至sfq和sfq模塊當(dāng)sfq存儲的索引號的數(shù)量達(dá)到第二閾值時(shí),發(fā)送隊(duì)列滿信號。本實(shí)施例對此不做任何限制。

需要說明的是,本實(shí)施例所提供的方法可以為控制器只接收隊(duì)列滿信號對小文件進(jìn)行合并,從而達(dá)到優(yōu)化小文件存儲效率的目的;還可以為接收隊(duì)列滿信號和時(shí)間到信號對小文件進(jìn)行合并,也就是云存儲系統(tǒng)中還包括按預(yù)設(shè)時(shí)間間隔向控制器發(fā)送時(shí)間到信號的定時(shí)器,從而進(jìn)一步提高云存儲系統(tǒng)的負(fù)載均衡。本實(shí)施例對此不做任何限制。

步驟102:通過系統(tǒng)負(fù)載預(yù)測算法計(jì)算系統(tǒng)的負(fù)載。

其中,系統(tǒng)負(fù)載預(yù)測算法可以為基于層次分析法(analytichierarchyprocess,ahp)的系統(tǒng)負(fù)載預(yù)測算法,也可以為其他算法,只要可以通過系統(tǒng)負(fù)載預(yù)測算法計(jì)算系統(tǒng)的負(fù)載,對于系統(tǒng)負(fù)載預(yù)測算法的具體內(nèi)容和類型,本實(shí)施例不做任何限制。

可以理解的是,只要可以計(jì)算出云存儲系統(tǒng)的負(fù)載,對于通過系統(tǒng)負(fù)載預(yù)測算法計(jì)算云存儲系統(tǒng)的負(fù)載的具體方式,本實(shí)施例不做任何限制。

步驟103:判斷負(fù)載是否小于第一閾值;若否,則進(jìn)入步驟104;若是,則進(jìn)入步驟105。

其中,第一閾值可以為設(shè)計(jì)人員自行設(shè)置的數(shù)值,當(dāng)云存儲系統(tǒng)負(fù)載達(dá)到該數(shù)值時(shí),證明云存儲的負(fù)載較高。對于第一閾值的具體數(shù)值的設(shè)置,本實(shí)施例不做任何限制。

步驟104:將當(dāng)前時(shí)刻的sfq存儲的小文件的索引號存儲至對應(yīng)的一個(gè)bq;其中,每個(gè)bq存儲各自對應(yīng)的一個(gè)時(shí)刻的sfq的索引號。

其中,本步驟的目的可以為在系統(tǒng)的負(fù)載達(dá)到第一閾值時(shí),將當(dāng)前時(shí)刻的sfq存儲的索引號放到一個(gè)bq,避免在系統(tǒng)負(fù)載較高時(shí),進(jìn)行小文件合并的步驟。

可以理解的是,云存儲系統(tǒng)中可以為每個(gè)用戶建立一個(gè)sfq和多個(gè)bq,每個(gè)bq存儲的是不同時(shí)刻的sfq存儲的多個(gè)小文件的索引號。發(fā)送存儲滿信號的sfq或每個(gè)bq存儲的多個(gè)索引號對應(yīng)的多個(gè)小文件可以為合并為一個(gè)大文件。

需要說明的是,本步驟中將sfq存儲的索引號存儲至對應(yīng)的一個(gè)bq,可以為將sfq存儲的索引號存儲至建立好的一個(gè)未存儲索引號的bq,也可以為將sfq存儲的索引號存儲至新建的一個(gè)bq,本實(shí)施例對此不受任何限制。

優(yōu)選的,為了避免系統(tǒng)中的bq數(shù)量過多,本步驟可以包括判斷已存儲索引號的bq是否達(dá)到預(yù)設(shè)數(shù)量;若已存儲索引號的bq達(dá)到預(yù)設(shè)數(shù)量,則合并sfq和全部bq各自存儲的索引號對應(yīng)的小文件;若已存儲索引號的bq為達(dá)到預(yù)設(shè)數(shù)量,則將當(dāng)前時(shí)刻的sfq存儲的索引號存儲至對應(yīng)的一個(gè)bq。本實(shí)施例對此不受任何限制。

步驟105:合并sfq存儲的索引號對應(yīng)的小文件,或合并sfq和全部bq各自存儲的索引號對應(yīng)的小文件。

其中,本步驟可以為合并小文件的步驟,可以根據(jù)系統(tǒng)中是否存在已存儲索引號的bq對應(yīng)合并小文件,若系統(tǒng)中不存在已存儲索引號的bq,則可以只將sfq存儲的索引號對應(yīng)的小文件合并成一個(gè)大文件;若系統(tǒng)中存在已存儲索引號的bq,則將每個(gè)已存儲索引號的bq各自存儲的索引號對應(yīng)的小文件合并成一個(gè)大文件,并將sfq存儲的索引號對應(yīng)的小文件合并成一個(gè)大文件。

可以理解的是,對于本步驟中合并小文件的具體方式,可以為將sfq存儲的索引號合并為一個(gè)大文件的索引號,并將每個(gè)索引號對應(yīng)的小文件的內(nèi)容合并成一個(gè)大文件的內(nèi)容,也可以為其他方式,只要可以將sfq或每個(gè)bq存儲的索引號對應(yīng)的小文件合并成一個(gè)大文件,對于具體的合并方式,本實(shí)施例不做任何限制。

本實(shí)施例中,本發(fā)明實(shí)施例通過接收sfq發(fā)送的隊(duì)列滿信號,可以利用sfq存儲序列文件技術(shù)下的小文件的索引號;通過系統(tǒng)負(fù)載預(yù)測算法計(jì)算系統(tǒng)的負(fù)載,可以對云存儲系統(tǒng)的負(fù)載狀況進(jìn)行計(jì)算;通過當(dāng)負(fù)載小于第一閾值時(shí),合并sfq存儲的索引號對應(yīng)的小文件,或合并sfq和全部bq各自存儲的索引號對應(yīng)的小文件,可以在系統(tǒng)負(fù)載不高的情況下,利用序列文件技術(shù)將sfq或每個(gè)bq存儲的全部索引號各自對應(yīng)的小文件合并成一個(gè)大文件,實(shí)現(xiàn)了系統(tǒng)的負(fù)載均衡并提高了系統(tǒng)性能,優(yōu)化了小文件存儲效率,提升了用戶體驗(yàn)。

請參考圖2和圖3,圖2為本發(fā)明實(shí)施例所提供的另一種云存儲中小文件的合并方法的流程圖;圖3為本發(fā)明實(shí)施例所提供的另一種云存儲中小文件的合并方法的處理流程示意圖。該方法可以包括:

步驟201:基于序列文件技術(shù),將用戶上傳的小文件的索引號存儲至sfq。

其中,序列文件(sequencefile)是hdfs提供的一種二進(jìn)制文件技術(shù),這種二進(jìn)制文件直接將<key,value>對序列化到文件,文件序列化時(shí)可實(shí)現(xiàn)基于記錄或數(shù)據(jù)塊的壓縮。在云存儲系統(tǒng)中,對二進(jìn)制文件采用sequencefile技術(shù)將小文件合并為大文件,以小文件的索引號為key,內(nèi)容為value的形式進(jìn)行合并,合并的同時(shí)實(shí)現(xiàn)基于數(shù)據(jù)塊的壓縮,這樣,在節(jié)省名稱節(jié)點(diǎn)內(nèi)存空間的同時(shí)也節(jié)省了數(shù)據(jù)節(jié)點(diǎn)的磁盤空間。

具體的,在云存儲系統(tǒng)中,本實(shí)施例所提供的方法的處理流程可以如圖3所示。為提高對小文件的處理效率,云存儲系統(tǒng)為可以每個(gè)用戶建立了3種隊(duì)列:第1種可以為序列文件隊(duì)列(sequencefilequeue,sfq),第2種可以為序列文件操作隊(duì)列(sequencefileoperationqueue,sfoq),第3種可以為備用隊(duì)列(backupqueue,bq)。其中,sfq用于小文件的合并,sfoq用于對合并后小文件的操作,bq用于操作的小文件數(shù)超過sfq或sfoq長度的情況。3種隊(duì)列的長度可以一致,對于隊(duì)列長度的具體數(shù)值,也就是每個(gè)隊(duì)列存儲索引號的數(shù)量可以由設(shè)計(jì)人員根據(jù)實(shí)用場景和用戶需求自行設(shè)置,本實(shí)施例對此不做任何限制。

需要說明的是,本步驟可以如圖3所示,云存儲系統(tǒng)的服務(wù)器接收用戶上傳的本地的文件(過程1),對該文件的類型進(jìn)行判斷(過程2),如果是小文件,則將該文件的索引號存儲至sfq中(過程3)。對于本步驟中的具體過程,如對文件類型判斷的具體方式,可以使用與現(xiàn)有技術(shù)相同或相似的方式,也可以使用其他方式,只要可以將接收到的小文件的索引號存儲至每個(gè)用戶對應(yīng)的sfq中,對于具體的存儲過程,本實(shí)施例不做任何限制。

步驟202:sfq存儲的索引號的數(shù)量達(dá)到第二閾值時(shí),發(fā)送隊(duì)列滿信號。

其中,第二閾值可以為合并成一個(gè)大文件的小文件的數(shù)量,對于該數(shù)量的具體數(shù)值的設(shè)置,可以由設(shè)計(jì)人員根據(jù)實(shí)用場景和用戶需求自行設(shè)置,本實(shí)施例對此不受任何限制。

具體的,本步驟可以如圖3中虛線a所示,當(dāng)sfq存儲的索引號的數(shù)量達(dá)到第二閾值時(shí),也就是sfq滿時(shí),向控制器發(fā)送隊(duì)列滿信號(qf信號)。

步驟203:定時(shí)器按預(yù)設(shè)時(shí)間間隔發(fā)送時(shí)間到信號。

其中,預(yù)設(shè)時(shí)間間隔可以為設(shè)計(jì)人員根據(jù)實(shí)用場景或用戶需求設(shè)置的判斷是否合并小文件的時(shí)間間隔,如30min。本實(shí)施例對此不做任何限制。

具體的,本步驟可以如圖3中虛線b所示,當(dāng)定時(shí)器達(dá)到預(yù)設(shè)時(shí)間間隔的時(shí)間點(diǎn)時(shí),向控制器發(fā)送時(shí)間到信號(tu信號)。

步驟204:識別接收到的信號。

可以理解的是,本步驟可以為控制器識別接收的信號,對于具體的識別過程和識別方式,可以由設(shè)計(jì)人員自行設(shè)置,本實(shí)施例對此不受任何限制。

步驟205:當(dāng)信號為隊(duì)列滿信號時(shí),通過系統(tǒng)負(fù)載預(yù)測算法計(jì)算系統(tǒng)的負(fù)載。

步驟206:判斷負(fù)載是否小于第一閾值;若否,則進(jìn)入步驟207;若是,則進(jìn)入步驟210。

其中,步驟205和步驟206與步驟102和步驟103相似,在此不再贅述。

可以理解的是,本步驟可以如圖3所示,控制器對系統(tǒng)負(fù)載進(jìn)行計(jì)算(過程4.2),決定是否進(jìn)行小文件的合并(過程5)。

步驟207:判斷已存儲索引號的bq是否達(dá)到預(yù)設(shè)數(shù)量;若是,則進(jìn)入步驟208;若否,則進(jìn)入步驟209。

可以理解的是,為了避免系統(tǒng)中已存儲索引號的bq的數(shù)量過多,可以通過本步驟對系統(tǒng)中已存儲索引號的bq的數(shù)量是否達(dá)到預(yù)設(shè)數(shù)量進(jìn)行判斷,然后通過步驟208,在已存儲索引號的bq的數(shù)量達(dá)到預(yù)設(shè)數(shù)量時(shí),合并sfq和全部bq各自存儲的索引號對應(yīng)的小文件。

需要說明的是,對于預(yù)設(shè)數(shù)量的數(shù)值的設(shè)定,可以由設(shè)計(jì)人員根據(jù)實(shí)用場景和用戶需求自行設(shè)置,本實(shí)施例對此不受任何限制。

具體的,本步驟可以如圖3所示,控制器讀取sfq和bq的相關(guān)信息(過程4.1),決定是否進(jìn)行小文件的合并(過程5)。

步驟208:合并sfq和全部bq各自存儲的索引號對應(yīng)的小文件。

可以理解的是,本步驟的目的是將云存儲系統(tǒng)中,該用戶上傳的全部可合并的小文件合并成對應(yīng)的大文件。

步驟209:將當(dāng)前時(shí)刻的sfq存儲的索引號存儲至對應(yīng)的一個(gè)bq。

其中,本步驟的目的是在系統(tǒng)的負(fù)載較高且系統(tǒng)中的bq數(shù)量不多時(shí),通過本步驟避免對小文件的合并。

步驟210:合并sfq存儲的索引號對應(yīng)的小文件,或合并sfq和全部bq各自存儲的索引號對應(yīng)的小文件。

其中,本步驟與步驟105相似,在此不再贅述。

步驟211:當(dāng)信號為時(shí)間到信號時(shí),通過系統(tǒng)負(fù)載預(yù)測算法計(jì)算負(fù)載。

步驟212:判斷負(fù)載是否小于第一閾值;若是,則進(jìn)入步驟213;若否,則結(jié)束本次流程。

其中,步驟211和步驟212與步驟102和步驟103相似,在此不再贅述。

步驟213:合并全部bq各自存儲的索引號對應(yīng)的小文件。

可以理解的是,本步驟的目的是通過定時(shí)器發(fā)送的時(shí)間到信號,在sfq存儲的索引號未達(dá)到第二閾值且系統(tǒng)負(fù)載不高時(shí),對系統(tǒng)中已存儲索引號的bq對應(yīng)的小文件進(jìn)行合并,進(jìn)一步保證系統(tǒng)的負(fù)載均衡。

本實(shí)施例中,本發(fā)明通過判斷已存儲索引號的bq是否達(dá)到預(yù)設(shè)數(shù)量,可以避免云存儲系統(tǒng)中已存儲索引號的bq的數(shù)量過多;通過當(dāng)信號為時(shí)間到信號時(shí),通過系統(tǒng)負(fù)載預(yù)測算法計(jì)算負(fù)載,可以在sfq存儲的索引號未達(dá)到第二閾值且系統(tǒng)負(fù)載不高時(shí),對系統(tǒng)中已存儲索引號的bq對應(yīng)的小文件進(jìn)行合并,進(jìn)一步保證了系統(tǒng)的負(fù)載均衡。

請參考圖4,圖4為本發(fā)明實(shí)施例所提供的一種云存儲中小文件的合并裝置的結(jié)構(gòu)圖。該裝置可以包括:

接收模塊100,用于接收sfq發(fā)送的隊(duì)列滿信號;

計(jì)算模塊200,用于通過系統(tǒng)負(fù)載預(yù)測算法計(jì)算系統(tǒng)的負(fù)載;

判斷模塊300,用于判斷負(fù)載是否小于第一閾值;

存儲模塊400,用于當(dāng)負(fù)載不小于第一閾值時(shí),將當(dāng)前時(shí)刻的sfq存儲的小文件的索引號存儲至對應(yīng)的一個(gè)bq;其中,每個(gè)bq存儲各自對應(yīng)的一個(gè)時(shí)刻的sfq的索引號;

合并模塊500,用于當(dāng)負(fù)載小于第一閾值時(shí),合并sfq存儲的索引號對應(yīng)的小文件,或合并sfq和全部bq各自存儲的索引號對應(yīng)的小文件。

可選的,存儲模塊400,可以包括:

第一判斷子模塊,用于判斷已存儲索引號的bq是否達(dá)到預(yù)設(shè)數(shù)量;

第一合并子模塊,用于當(dāng)已存儲索引號的bq達(dá)到預(yù)設(shè)數(shù)量時(shí),合并sfq和全部bq各自存儲的索引號對應(yīng)的小文件;

存儲子模塊,用于當(dāng)已存儲索引號的bq未達(dá)到預(yù)設(shè)數(shù)量時(shí),將當(dāng)前時(shí)刻的sfq存儲的索引號存儲至對應(yīng)的一個(gè)bq。

可選的,該裝置還可以包括:

分類存儲模塊,用于基于序列文件技術(shù),將用戶上傳的小文件的索引號存儲至sfq;

發(fā)送模塊,用于sfq存儲的索引號的數(shù)量達(dá)到第二閾值時(shí),發(fā)送隊(duì)列滿信號。

可選的,接收模塊100,可以包括:

識別子模塊,用于識別接收到的信號;若信號為隊(duì)列滿信號,向計(jì)算模塊發(fā)送第一啟動信號;若信號為時(shí)間到信號,則向計(jì)算子模塊發(fā)送第二啟動信號;

計(jì)算子模塊,用于通過系統(tǒng)負(fù)載預(yù)測算法計(jì)算負(fù)載;

第二判斷子模塊,用于判斷負(fù)載是否小于第一閾值;

第二合并子模塊,用于當(dāng)負(fù)載小于第一閾值時(shí),合并全部bq各自存儲的索引號對應(yīng)的小文件。

本實(shí)施例中,本發(fā)明通過接收模塊100接收sfq發(fā)送的隊(duì)列滿信號,可以利用sfq存儲序列文件技術(shù)下的小文件的索引號;通過計(jì)算模塊200利用系統(tǒng)負(fù)載預(yù)測算法計(jì)算系統(tǒng)的負(fù)載,可以對云存儲系統(tǒng)的負(fù)載狀況進(jìn)行計(jì)算;通過合并模塊500當(dāng)負(fù)載小于第一閾值時(shí),合并sfq存儲的索引號對應(yīng)的小文件,或合并sfq和全部bq各自存儲的索引號對應(yīng)的小文件,可以在系統(tǒng)負(fù)載不高的情況下,利用序列文件技術(shù)將sfq或每個(gè)bq存儲的全部索引號各自對應(yīng)的小文件合并成一個(gè)大文件,實(shí)現(xiàn)了系統(tǒng)的負(fù)載均衡并提高了系統(tǒng)性能,優(yōu)化了小文件存儲效率,提升了用戶體驗(yàn)。

說明書中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見即可。對于實(shí)施例公開的裝置而言,由于其與實(shí)施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。

專業(yè)人員還可以進(jìn)一步意識到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來實(shí)現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對每個(gè)特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。

結(jié)合本文中所公開的實(shí)施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實(shí)施。軟件模塊可以置于隨機(jī)存儲器(ram)、內(nèi)存、只讀存儲器(rom)、電可編程rom、電可擦除可編程rom、寄存器、硬盤、可移動磁盤、cd-rom、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲介質(zhì)中。

以上對本發(fā)明所提供的云存儲中小文件的合并方法及裝置進(jìn)行了詳細(xì)介紹。本文中應(yīng)用了具體個(gè)例對本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1