麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

文件存儲和讀取的方法及裝置與流程

文檔序號:11157584閱讀:904來源:國知局
文件存儲和讀取的方法及裝置與制造工藝

本申請涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種文件存儲和讀取的方法及裝置。



背景技術(shù):

近年來,數(shù)字視頻的應(yīng)用迅猛發(fā)展。在數(shù)字視頻系統(tǒng)中,視頻的采集、傳輸、編碼、解碼等過程會不可避免地引入存儲問題,存儲的性能,直接影響到視頻的觀看質(zhì)量。

單論存儲,目前業(yè)界有各種不同的存儲。針對視頻存儲而言,視頻的數(shù)據(jù)量大,訪問呈現(xiàn)形式是流式。在實現(xiàn)本申請過程中,發(fā)明人發(fā)現(xiàn)相關(guān)技術(shù)中至少存在如下問題:有些網(wǎng)絡(luò)存儲,在大規(guī)模內(nèi)容分發(fā)網(wǎng)絡(luò)或者直播場景下,并不適合部署,成本太高。而傳統(tǒng)的分布式存儲因小文件眾多,對節(jié)點內(nèi)存使用過大,也不適用,并且,某些文件系統(tǒng)響應(yīng)速度比較慢,也不適合在低延時的視頻應(yīng)用中做中繼或者邊緣節(jié)點使用。



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

本申請實施例提供了一種文件存儲和讀取的方法及裝置,以至少解決現(xiàn)有技術(shù)中存儲成本高及讀取速度不夠快的問題。

第一方面,本申請實施例提供一種文件存儲方法,包括:

將待存儲的文件,分成N個源碼塊;

對所述N個源碼塊進行分組,生成M個碼塊組,其中,每個碼塊組均包括至少一個源碼塊,M>N;

對所述M個碼塊組分別進行編碼,以生成M個編碼塊;

將所述M個編碼塊存儲至多個存儲裝置中。

第二方面,本申請實施例提供一種文件存儲裝置,包括:

分塊模塊,配置用于將待存儲的文件,分成N個源碼塊;

分組模塊,配置用于對所述N個源碼塊進行分組,生成M個碼塊組,其中,每個碼塊組均包括至少一個源碼塊,M>N;

編碼模塊,配置用于對所述M個碼塊組分別進行編碼,以生成M個編碼塊;

存儲模塊,配置用于將所述M個編碼塊存儲至多個存儲裝置中。

第三方面,本申請實施例還提供了一種電子設(shè)備,包括:至少一個處理器;以及存儲器;其中,所述存儲器存儲有可被所述至少一個處理器執(zhí)行的程序,所述指令被所述至少一個處理器執(zhí)行,以使所述至少一個處理器能夠執(zhí)行本申請上述任一項文件存儲方法。

第四方面,本申請實施例還提供一種文件讀取方法,包括:

根據(jù)文件讀取請求,確定所述文件的源碼塊的數(shù)量N、編碼塊的數(shù)量M、以及所述M個編碼塊所在的多個存儲裝置;

向各存儲裝置發(fā)送編碼塊獲取請求;

當(dāng)自所述存儲裝置接收到S個編碼塊時,對所述S個編碼塊進行譯碼,其中,N≤S<M;

當(dāng)譯碼后成功恢復(fù)所述文件時,利用所述恢復(fù)后的文件響應(yīng)所述文件讀取請求。

第五方面,本申請實施例提供一種文件讀取裝置,包括:

確定模塊,配置用于根據(jù)文件讀取請求,確定所述文件的源碼塊的數(shù)量N、編碼塊的數(shù)量M、以及所述M個編碼塊所在的多個存儲裝置;

發(fā)送模塊,配置用于向各存儲裝置發(fā)送編碼塊獲取請求;

譯碼模塊,配置用于當(dāng)自所述存儲裝置接收到S個編碼塊時,對所述S個編碼塊進行譯碼,其中,N≤S<M;

響應(yīng)模塊,配置用于當(dāng)譯碼后成功恢復(fù)所述文件時,利用所述恢復(fù)后的文件響應(yīng)所述文件讀取請求。

第六方面,本申請實施例還提供了一種電子設(shè)備,包括:至少一個處理器;以及存儲器;其中,所述存儲器存儲有可被所述至少一個處理器執(zhí)行的程序,所述指令被所述至少一個處理器執(zhí)行,以使所述至少一個處理器能夠執(zhí)行本申請上述任一項文件讀取方法。

本申請實施例的文件存儲方法可以實現(xiàn)利用零碎的空間存儲數(shù)據(jù),例如視頻數(shù)據(jù)這種可以切分的數(shù)據(jù)。本申請實施例的文件讀取方法,可以實現(xiàn)不用等到所有請求被響應(yīng),即可開始恢復(fù)數(shù)據(jù),從而可以有效的提高讀取性能,降低部署成本。

附圖說明

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

圖1是本申請一實施例提供的一種文件存儲方法的流程圖;

圖2是本申請一實施例提供的另一種文件存儲方法的流程圖;

圖3是本申請一實施例提供的一種文件讀取方法的流程圖;

圖4是本申請一實施例提供的另一種文件讀取方法的流程圖;

圖5是本申請一實施例提供的又一種文件讀取方法的流程圖;

圖6是本申請一實施例提供的文件讀取方法的一種實現(xiàn)的流程圖;

圖7是本申請一實施例提供的一種文件存儲裝置的結(jié)構(gòu)示意圖;

圖8是本申請一實施例提供的一種文件讀取裝置的結(jié)構(gòu)示意圖;

圖9是本申請一實施例提供的電子設(shè)備的結(jié)構(gòu)示意圖。

具體實施方式

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

請參考圖1,其示出了本申請一實施例提供的一種文件存儲方法的流程圖,本實施例的技術(shù)方案可適用于將一個文件分成多個部分并進行多個備份的存儲,該方法可以由文件存儲的電子設(shè)備來執(zhí)行。

本申請實施例提供的一種文件存儲方法,包括如下步驟:

步驟101,將待存儲的文件,分成N個源碼塊;

步驟102,對N個源碼塊進行分組,生成M個碼塊組,其中,每個碼塊組均包括至少一個源碼塊,M>N;

步驟103,對M個碼塊組分別進行編碼,以生成M個編碼塊;

步驟104,將M個編碼塊存儲至多個存儲裝置中。

在本實施例中,對于步驟101,電子設(shè)備可以將待存儲的文件,分成N個源碼塊,可以將一個待存儲的視頻文件切分成多塊,例如講一個視頻文件切分成9塊,還可以依次對其進行編號,形成編號為1、2、3、4、5、6、7、8、9的9個源碼塊,從而之后可以利用比較零碎的空間來存儲視頻。

之后,對于步驟102,電子設(shè)備可以對之前在步驟101中分成的N個源碼塊進行重新分組,形成M個碼塊組,其中,每一個碼塊組中可以包括至少一個源碼塊。例如可以將前面的9個源碼塊分為一個一組、兩個一組、三個一組等,當(dāng)然也可以分為更多個例如8個一組之類的,但是如果一組里面有太多源碼塊的話,也違背了當(dāng)初把文件切分成多塊的初衷,所以比較優(yōu)選的還是分成少量的幾個一組,例如三個一組,具體的,可以是123、246、589、478之類的。

然后,對于步驟103,電子設(shè)備可以對分好的M個碼塊組分別進行編碼,以形成M個編碼塊,例如對之前的123、246、589之類的碼塊組重新編碼,形成新的編碼塊,例如123可以對應(yīng)為編碼塊a,246可以對應(yīng)為編碼塊b,589可以對應(yīng)為編碼塊c,當(dāng)然也可以有其他編碼方式和命名,本申請在此方面沒有限制。

最后,對于步驟104,電子設(shè)備可以將M個編碼塊分別存儲至多個存儲裝置中,例如可以存儲在磁盤中,當(dāng)然也可以存儲在其他外部設(shè)備如硬盤、軟盤、U盤、光盤之類的,本申請在此方面沒有限制。需要說明的是,不同的編碼塊也可以存儲在相同的存儲裝置中,例如也可以存儲在同一磁盤的不同位置。

本實施例的文件存儲方法,通過對待存儲文件進行分塊、分組、編碼和存儲,可以將一個文件分成多個部分存儲在不同的地方,從而可以利用比較零碎的空間存儲文件,進一步地,由于多個編碼塊中一般都會或多或少存在重復(fù)的部分,因此,相當(dāng)于對文件進行了一次或多次備份,從而即使其中部分編碼塊損壞,也不會影響文件的完整性,也能憑借部分編碼塊對文件進行恢復(fù)。

請參考圖2,其示出了本申請一實施例提供的另一種文件存儲方法的流程圖。本實施例中的流程是對圖1中步驟103的細(xì)化的流程,具體包括以下步驟:

步驟201,根據(jù)每個碼塊組中的源碼塊的數(shù)量,選擇相應(yīng)的編碼方式;

步驟202,利用編碼方式對每個碼塊組進行編碼以生成相應(yīng)的編碼塊。

在本實施例中,對于步驟201,電子設(shè)備可以根據(jù)每一個碼塊組中源碼塊的數(shù)量,選擇不同的編碼方式或者選擇不同的命名方式,從而是各種數(shù)量的編碼塊更易被識別,例如,當(dāng)碼塊組中只含有一個源碼塊時,可以在編碼和命名時有所區(qū)別,例如編成以a開頭的,例如a3可以指代只有一個源碼塊,是只包含源碼塊為3的碼塊組。

之后,對于步驟202,電子設(shè)備可以按照之前的方式對碼塊組進行編碼以生成相應(yīng)的編碼塊。

本實施例的方法,在圖1的實施例所對應(yīng)的方法的基礎(chǔ)上,通過根據(jù)碼塊組中的源碼塊的數(shù)量在編碼時有所區(qū)別,可以使編碼塊更加容易被識別,從而可以加快之后譯碼的速度。

進一步參考圖3,其示出了本申請一實施例提供的一種文件讀取方法的流程圖。本實施例的技術(shù)方案可適用于響應(yīng)于文件讀取請求,快速向用戶提供該文件,該方法可以由文件讀取的電子設(shè)備來執(zhí)行。具體包括如下步驟:

步驟301,根據(jù)文件讀取請求,確定文件的源碼塊的數(shù)量N、編碼塊的數(shù)量M以及M個編碼塊所在的多個存儲裝置;

步驟302,向各存儲裝置發(fā)送編碼塊獲取請求;

步驟303,當(dāng)自存儲裝置接收到S個編碼塊時,對S個編碼塊進行譯碼,其中,N≤S<M;

步驟304,當(dāng)譯碼后成功恢復(fù)文件時,利用恢復(fù)后的文件響應(yīng)文件讀取請求。

在本實施例中,對于步驟301,電子設(shè)備根據(jù)接收到的文件讀取請求,確定該文件的源碼塊的數(shù)量N,編碼塊的數(shù)量M以及M個編碼塊所在的多個存儲裝置,例如,其中源碼塊的數(shù)量可以為9,編碼塊的數(shù)量可以為30,存儲裝置的數(shù)量沒有限制。

之后,對于步驟302,電子設(shè)備向各個存儲裝置發(fā)送編碼塊獲取請求。

之后,對于步驟303,當(dāng)自各存儲裝置接收到的編碼塊的個數(shù)S≥N時,對S個編碼塊進行譯碼,其中,S<M,從而,不用收到全部的M個編碼塊就可以開始譯碼。

最后,對于步驟304,當(dāng)譯碼后成功恢復(fù)文件時,利用恢復(fù)后的文件響應(yīng)之前的文件讀取請求,將恢復(fù)后的文件發(fā)送給相應(yīng)的設(shè)備。

本實施例的方法,通過在沒有接收到所有的編碼塊的時候就開始譯碼從而可以能夠快速的恢復(fù)文件,更加快速的對文件讀取請求作出響應(yīng)。

請參考圖4,其示出了本申請一實施例提供的另一種文件讀取方法的流程圖。本實施例中的流程是對圖3中步驟301的細(xì)化的流程,具體包括以下步驟:

步驟401,根據(jù)文件讀取請求,獲取文件的文件名;

步驟402,根據(jù)文件名,索引并解析文件名所對應(yīng)的元數(shù)據(jù),其中,元數(shù)據(jù)包括文件的源碼塊的數(shù)量N、編碼塊的數(shù)量M、以及M個編碼塊所在的多個存儲裝置。

在本實施例中,對于步驟401,電子設(shè)備根據(jù)接收到的文件讀取請求,獲取待讀取的文件的文件名。例如,可以對文件讀取請求中的相關(guān)字段進行解析以提取出相應(yīng)的文件名。

之后,對于步驟402,電子設(shè)備根據(jù)獲取的文件名,按照該文件名索引出相應(yīng)的元數(shù)據(jù),之后對該元數(shù)據(jù)進行解析,并獲取其中的某些字段,例如文件的源碼塊的數(shù)量N、編碼塊的數(shù)量M、以及M個編碼塊所在的多個存儲裝置。進一步地,當(dāng)存儲裝置為磁盤時,還可以獲取元數(shù)據(jù)類型,文件片序號,長度,所在磁盤編號,所在磁盤文件編號,長度,文件片校驗值(例如循環(huán)冗余校驗值)。

本實施例的文件讀取方法,通過根據(jù)文件名找到元數(shù)據(jù),之后解析元數(shù)據(jù)中的相關(guān)字段獲取所需的信息,從而之后可以根據(jù)解析出來的信息發(fā)送編碼塊獲取請求,可以實現(xiàn)對文件讀取請求的解析。

可選的,元數(shù)據(jù)中還可以包括多個編碼塊的校驗信息,電子設(shè)備還可以通過查詢多個編碼塊在存儲裝置中的具體存儲地址,從而確定每一存儲地址中均存儲有與所述每一存儲地址對應(yīng)的編碼塊;并根據(jù)每一編碼塊的校驗信息對每一編碼塊進行校驗,當(dāng)多個編碼塊均校驗通過時,向所述多個存儲地址發(fā)起編碼塊獲取請求。進一步地,也可以在其中超過閾值數(shù)量的編碼塊都通過校驗時發(fā)起請求,而不用校驗所有的編碼塊,從而可以節(jié)省校驗的時間,其中,該閾值可以大于源碼塊的數(shù)量N,小于編碼塊的數(shù)量M,從而可以減少校驗的數(shù)量,節(jié)省時間,更快速地響應(yīng)。

在另一些可選的實施例中,元數(shù)據(jù)還包括由每一編碼塊及與每一編碼塊對應(yīng)的源碼塊的映射關(guān)系形成的編碼庫,電子設(shè)備還可以基于編碼塊根據(jù)預(yù)設(shè)的譯碼算法對所接收的編碼塊進行譯碼;之后,如果譯碼失敗,繼續(xù)接收新的編碼塊并繼續(xù)譯碼;重復(fù)上述步驟直至譯碼成功,從而得到N個源碼塊。從而可以在失敗之后繼續(xù)接收和譯碼,從而也能在一定時間上加快對讀取請求的響應(yīng)速度。

進一步參考圖5,其示出了本申請一實施例提供的另一種文件讀取方法的流程圖。本實施例的流程是在圖3中的步驟302進一步細(xì)化的流程。具體包括如下步驟:

步驟501,基于待獲取的M個編碼塊確定待發(fā)送的M個輸入輸出請求數(shù)據(jù)包;

步驟502,檢測數(shù)據(jù)包中是否存在向同一個存儲裝置發(fā)送的數(shù)據(jù)包;

步驟503,對向同一個存儲裝置發(fā)送的數(shù)據(jù)包進行合并處理;

步驟504,向各存儲裝置發(fā)送經(jīng)合并處理后的多個輸入輸出請求數(shù)據(jù)包。

在本實施例中,對于步驟501,電子設(shè)備根據(jù)待獲取的M個編碼塊確定待發(fā)送的M個輸入輸出(I/O,Input/Output)請求數(shù)據(jù)包。之后,對于步驟502,檢測所有的M個數(shù)據(jù)包中是否存在向同一個存儲裝置發(fā)送的數(shù)據(jù)包,之后對于步驟503,當(dāng)檢測到其中存在向同一個存儲裝置發(fā)送的數(shù)據(jù)包時,對其進行合并處理,例如存在三個數(shù)據(jù)包都是向存儲裝置A發(fā)出的,則對這三個數(shù)據(jù)包進行合并,將這三個請求合并在一起,從而通過一次I/O請求就能讀取三次數(shù)據(jù)。最后,對于步驟504,電子設(shè)備向各個存儲裝置發(fā)送經(jīng)過合并處理之后的多個I/O請求。

本實施例的文件讀取方法,通過對向同一存儲裝置發(fā)送的多個輸入輸出請求數(shù)據(jù)包進行合并處理,從而可以減少發(fā)送的請求數(shù)據(jù)包的數(shù)量,通過一次請求即可讀取多個數(shù)據(jù),從而可以減少發(fā)送數(shù)據(jù)包和讀取數(shù)據(jù)的時間,進一步地可以減少處理的時間,提高處理效率,快速對讀取請求作出響應(yīng)。

請參考圖6,其示出了本申請一實施例提供的文件讀取方法的一種實現(xiàn)的流程圖。以下實施例重在解決視頻回看,以及點播中文件讀取的性能方面做優(yōu)化。提高數(shù)據(jù)讀取速度。從而提高視頻服務(wù)器的性能。降低視頻的卡頓比。

在本實施例中,對于步驟601,對待每次請求數(shù)據(jù),檢索數(shù)據(jù)元數(shù)據(jù),根據(jù)元數(shù)據(jù),確定數(shù)據(jù)分片所在具體的磁盤。之后,對于步驟602,若元數(shù)據(jù)損壞,則不對該數(shù)據(jù)進行處理,通過后臺方式對數(shù)據(jù)進行恢復(fù)。然后對于步驟603,向各個磁盤發(fā)起IO請求。最后,對于步驟604,數(shù)據(jù)到達(dá)一定可恢復(fù)閾值,利用編碼運算,恢復(fù)數(shù)據(jù)的原貌。

其中,整個系統(tǒng)可以包括元數(shù)據(jù)模塊、I/O模塊以及編解碼模塊。

在元數(shù)據(jù)模塊中,元數(shù)據(jù)索引以文件名為索引,元數(shù)據(jù)內(nèi)容為:元數(shù)據(jù)類型,文件片序號,長度,所在磁盤編號,所在磁盤文件編號,長度,文件片CRC(循環(huán)冗余校驗)校驗值。讀取文件元數(shù)據(jù)后,對文件的元數(shù)據(jù)進行解碼,解析出上述字段,并檢查磁盤,文件是否存儲,校驗元數(shù)據(jù)正確性。

在I/O模塊中,并行向所有文件塊發(fā)起請求,等待所有I/O請求到達(dá)可恢復(fù)文件的閾值。在這個模塊,相同的I/O請求會合并,進一步減少磁盤I/O的數(shù)量,提高系統(tǒng)有效I/O能力。

編解碼模塊,可以利用噴泉碼的思想。所謂噴泉碼,是指這種編碼的發(fā)送端隨機編碼,由k個原始分組生成任意數(shù)量的編碼分組,源節(jié)點在不知道這些數(shù)據(jù)包是否被成功接收的情況下,持續(xù)發(fā)送數(shù)據(jù)包。而接收端只要收到N=k(1+ε)個編碼分組的任意子集(ε>0),即收到一個稍微大于原來k值的N個子集,就可通過譯碼以高概率(與ε有關(guān))成功地恢復(fù)全部原始分組。

現(xiàn)我們將I/O獲得的結(jié)果作為輸入源,只要輸入源>K,利用我們的編碼庫,對數(shù)據(jù)進行恢復(fù)。

以上提出了一種針對存儲于多磁盤的存儲方式,可以有效的提高讀取性能,降低部署成本。不僅可以提高存儲讀取性能,并能夠提供數(shù)據(jù)完備性的方案,將備份與快速讀取合為一體。本發(fā)明還可以讓用戶自定義編碼加密功能,保證數(shù)據(jù)的安全性。

請參考圖7,其示出了本申請一實施例提供的一種文件存儲裝置的結(jié)構(gòu)示意圖。如圖7所示,本實施例的文件存儲裝置700包括分塊模塊701、分組模塊702、編碼模塊703以及存儲模塊704。其中,分塊模塊701,配置用于將待存儲的文件,分成N個源碼塊;分組模塊702,配置用于對N個源碼塊進行分組,生成M個碼塊組,其中,每個碼塊組均包括至少一個源碼塊,M>N;編碼模塊703,配置用于對M個碼塊組分別進行編碼,以生成M個編碼塊;以及存儲模塊704,配置用于將M個編碼塊存儲至多個存儲裝置中。

在一些可選的實施例中,編碼模塊703包括選擇模塊和生成模塊(圖中為示出)。其中,選擇模塊,配置用于根據(jù)每個碼塊組中的源碼塊的數(shù)量,選擇相應(yīng)的編碼方式;以及生成模塊,配置用于利用編碼方式對每個碼塊組進行編碼以生成相應(yīng)的編碼塊。

請參考圖8,其示出了本申請一實施例提供的一種文件讀取裝置的結(jié)構(gòu)示意圖。如圖8所示,文件讀取裝置800包括確定模塊801、發(fā)送模塊802、譯碼模塊803和響應(yīng)模塊804。其中,確定模塊801,配置用于根據(jù)文件讀取請求,確定文件的源碼塊的數(shù)量N、編碼塊的數(shù)量M、以及M個編碼塊所在的多個存儲裝置;發(fā)送模塊802,配置用于向各存儲裝置發(fā)送編碼塊獲取請求;譯碼模塊803,配置用于當(dāng)自存儲裝置接收到S個編碼塊時,對S個編碼塊進行譯碼,其中,N≤S<M;以及響應(yīng)模塊804,配置用于當(dāng)譯碼后成功恢復(fù)文件時,利用恢復(fù)后的文件響應(yīng)文件讀取請求。

在一些可選的實施例中,確定模塊801包括文件名獲取模塊和索引解析模塊(圖中未示出)。其中,文件名獲取模塊,配置用于根據(jù)文件讀取請求,獲取文件的文件名;以及索引解析模塊,配置用于根據(jù)文件名,索引并解析文件名所對應(yīng)的元數(shù)據(jù),其中,元數(shù)據(jù)包括文件的源碼塊的數(shù)量N、編碼塊的數(shù)量M、以及M個編碼塊所在的多個存儲裝置。

在另一些可選的實施例中,發(fā)送模塊802包括請求確定模塊、檢測模塊、合并處理模塊和請求發(fā)送模塊(圖中未示出)。其中,請求確定模塊,配置用于基于待獲取的M個編碼塊確定待發(fā)送的M個輸入輸出請求數(shù)據(jù)包;檢測模塊,配置用于檢測數(shù)據(jù)包中是否存在向同一個存儲裝置發(fā)送的數(shù)據(jù)包;合并處理模塊,配置用于對向同一個存儲裝置發(fā)送的數(shù)據(jù)包進行合并處理;以及請求發(fā)送模塊,配置用于向各存儲裝置發(fā)送經(jīng)合并處理后的多個輸入輸出請求數(shù)據(jù)包。

應(yīng)當(dāng)理解,圖7和圖8中記載的諸模塊與參考圖1、圖2、圖3、圖4以及圖5描述的方法中的各個步驟相對應(yīng)。由此,上文針對方法描述的特征和效果同樣適用于圖7和圖8中的諸模塊,在此不再贅述。

值得注意的是,本發(fā)明的實施例中的模塊并不用于限制本發(fā)明的方案,例如分塊模塊可以描述為用于將待存儲的文件,分成N個源碼塊的模塊。另外,還可以通過硬件處理器來實現(xiàn)相關(guān)功能模塊,例如分塊模塊也可以用處理器實現(xiàn),在此不再贅述。

本申請實施例提供了一種非易失性計算機存儲介質(zhì),所述計算機存儲介質(zhì)存儲有計算機可執(zhí)行指令,該計算機可執(zhí)行指令可執(zhí)行上述任意方法實施例中的文件存儲方法;

作為一種實施方式,本發(fā)明的非易失性計算機存儲介質(zhì)存儲有計算機可執(zhí)行指令,所述計算機可執(zhí)行指令設(shè)置為:

將待存儲的文件,分成N個源碼塊;

對所述N個源碼塊進行分組,生成M個碼塊組,其中,每個碼塊組均包括至少一個源碼塊,M>N;

對所述M個碼塊組分別進行編碼,以生成M個編碼塊;

將所述M個編碼塊存儲至多個存儲裝置中。

作為另一種實施方式,本發(fā)明的非易失性計算機存儲介質(zhì)存儲有計算機可執(zhí)行指令,所述計算機可執(zhí)行指令設(shè)置為:

根據(jù)文件讀取請求,確定所述文件的源碼塊的數(shù)量N、編碼塊的數(shù)量M、以及所述M個編碼塊所在的多個存儲裝置;

向各存儲裝置發(fā)送編碼塊獲取請求;

當(dāng)自所述存儲裝置接收到S個編碼塊時,對所述S個編碼塊進行譯碼,其中,N≤S<M;

當(dāng)譯碼后成功恢復(fù)所述文件時,利用所述恢復(fù)后的文件響應(yīng)所述文件讀取請求。

作為一種非易失性計算機可讀存儲介質(zhì),可用于存儲非易失性軟件程序、非易失性計算機可執(zhí)行程序以及模塊,如本申請實施例中的文件存儲方法對應(yīng)的程序指令/模塊(例如,附圖7所示的分塊模塊701、分組模塊702、編碼模塊703以及存儲模塊704)。所述一個或者多個模塊存儲在所述非易失性計算機可讀存儲介質(zhì)中,當(dāng)被處理器執(zhí)行時,執(zhí)行上述任意方法實施例中的文件存儲方法或文件讀取方法。

非易失性計算機可讀存儲介質(zhì)可以包括存儲程序區(qū)和存儲數(shù)據(jù)區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng)、至少一個功能所需要的應(yīng)用程序;存儲數(shù)據(jù)區(qū)可存儲根據(jù)文件存儲系統(tǒng)的使用所創(chuàng)建的數(shù)據(jù)等。此外,非易失性計算機可讀存儲介質(zhì)可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他非易失性固態(tài)存儲器件。在一些實施例中,非易失性計算機可讀存儲介質(zhì)可選包括相對于處理器遠(yuǎn)程設(shè)置的存儲器,這些遠(yuǎn)程存儲器可以通過網(wǎng)絡(luò)連接至文件存儲裝置。上述網(wǎng)絡(luò)的實例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動通信網(wǎng)及其組合。

本發(fā)明實施例還提供一種計算機程序產(chǎn)品,所述計算機程序產(chǎn)品包括存儲在非易失性計算機可讀存儲介質(zhì)上的計算程序,所述計算機程序包括程序指令,當(dāng)所述程序指令被計算機執(zhí)行時,使所述計算機執(zhí)行上述任一項文件存儲方法或文件讀取方法。

圖9是本申請一實施例提供的電子設(shè)備的結(jié)構(gòu)示意圖,如圖9所示,該設(shè)備包括:

一個或多個處理器910以及存儲器920,圖9中以一個處理器910為例。

文件存儲方法的設(shè)備還可以包括:輸入裝置930和輸出裝置940。

處理器910、存儲器920、輸入裝置930和輸出裝置940可以通過總線或者其他方式連接,圖9中以通過總線連接為例。

存儲器920為上述的非易失性計算機可讀存儲介質(zhì)。處理器910通過運行存儲在存儲器920中的非易失性軟件程序、指令以及模塊,從而執(zhí)行服務(wù)器的各種功能應(yīng)用以及數(shù)據(jù)處理,即實現(xiàn)上述方法實施例文件存儲方法。

輸入裝置930可接收輸入的數(shù)字或字符信息,以及產(chǎn)生與文件存儲裝置的用戶設(shè)置以及功能控制有關(guān)的鍵信號輸入。輸出裝置940可包括顯示屏等顯示設(shè)備。

上述產(chǎn)品可執(zhí)行本申請實施例所提供的方法,具備執(zhí)行方法相應(yīng)的功能模塊和有益效果。未在本實施例中詳盡描述的技術(shù)細(xì)節(jié),可參見本申請實施例所提供的方法。

作為一種實施方式,上述電子設(shè)備包括:至少一個處理器;以及,與所述至少一個處理器通信連接的存儲器;其中,所述存儲器存儲有可被所述至少一個處理器執(zhí)行的指令,所述指令被所述至少一個處理器執(zhí)行,以使所述至少一個處理器能夠:

將待存儲的文件,分成N個源碼塊;

對所述N個源碼塊進行分組,生成M個碼塊組,其中,每個碼塊組均包括至少一個源碼塊,M>N;

對所述M個碼塊組分別進行編碼,以生成M個編碼塊;

將所述M個編碼塊存儲至多個存儲裝置中。

作為另一種實施方式,上述電子設(shè)備包括:至少一個處理器;以及,與所述至少一個處理器通信連接的存儲器;其中,所述存儲器存儲有可被所述至少一個處理器執(zhí)行的指令,所述指令被所述至少一個處理器執(zhí)行,以使所述至少一個處理器能夠:

根據(jù)文件讀取請求,確定所述文件的源碼塊的數(shù)量N、編碼塊的數(shù)量M、以及所述M個編碼塊所在的多個存儲裝置;

向各存儲裝置發(fā)送編碼塊獲取請求;

當(dāng)自所述存儲裝置接收到S個編碼塊時,對所述S個編碼塊進行譯碼,其中,N≤S<M;

當(dāng)譯碼后成功恢復(fù)所述文件時,利用所述恢復(fù)后的文件響應(yīng)所述文件讀取請求。

本申請實施例的電子設(shè)備以多種形式存在,包括但不限于:

(1)服務(wù)器:提供計算服務(wù)的設(shè)備,服務(wù)器的構(gòu)成包括處理器、硬盤、內(nèi)存、系統(tǒng)總線等,服務(wù)器和通用的計算機架構(gòu)類似,但是由于需要提供高可靠的服務(wù),因此在處理能力、穩(wěn)定性、可靠性、安全性、可擴展性、可管理性等方面要求較高。

(2)其他具有數(shù)據(jù)交互功能的電子裝置。

以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上。可以根據(jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實施。

通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實施方式可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當(dāng)然也可以通過硬件。基于這樣的理解,上述技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在計算機可讀存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個實施例或者實施例的某些部分所述的方法。

最后應(yīng)說明的是:以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 淮安市| 龙口市| 西贡区| 靖江市| 同德县| 成安县| 孝义市| 卓尼县| 若羌县| 浠水县| 额敏县| 玉屏| 江安县| 蚌埠市| 那曲县| 乌拉特后旗| 五指山市| 延吉市| 青海省| 西吉县| 盘锦市| 株洲县| 彝良县| 天气| 通榆县| 丽水市| 鹤峰县| 班戈县| 镇康县| 汕头市| 兴业县| 冕宁县| 工布江达县| 随州市| 新巴尔虎右旗| 筠连县| 临沭县| 青岛市| 济宁市| 广德县| 寻乌县|