本申請涉及數據處理技術領域,尤其涉及一種文件存儲和讀取的方法及裝置。
背景技術:
近年來,數字視頻的應用迅猛發展。在數字視頻系統中,視頻的采集、傳輸、編碼、解碼等過程會不可避免地引入存儲問題,存儲的性能,直接影響到視頻的觀看質量。
單論存儲,目前業界有各種不同的存儲。針對視頻存儲而言,視頻的數據量大,訪問呈現形式是流式。在實現本申請過程中,發明人發現相關技術中至少存在如下問題:有些網絡存儲,在大規模內容分發網絡或者直播場景下,并不適合部署,成本太高。而傳統的分布式存儲因小文件眾多,對節點內存使用過大,也不適用,并且,某些文件系統響應速度比較慢,也不適合在低延時的視頻應用中做中繼或者邊緣節點使用。
技術實現要素:
本申請實施例提供了一種文件存儲和讀取的方法及裝置,以至少解決現有技術中存儲成本高及讀取速度不夠快的問題。
第一方面,本申請實施例提供一種文件存儲方法,包括:
將待存儲的文件,分成N個源碼塊;
對所述N個源碼塊進行分組,生成M個碼塊組,其中,每個碼塊組均包括至少一個源碼塊,M>N;
對所述M個碼塊組分別進行編碼,以生成M個編碼塊;
將所述M個編碼塊存儲至多個存儲裝置中。
第二方面,本申請實施例提供一種文件存儲裝置,包括:
分塊模塊,配置用于將待存儲的文件,分成N個源碼塊;
分組模塊,配置用于對所述N個源碼塊進行分組,生成M個碼塊組,其中,每個碼塊組均包括至少一個源碼塊,M>N;
編碼模塊,配置用于對所述M個碼塊組分別進行編碼,以生成M個編碼塊;
存儲模塊,配置用于將所述M個編碼塊存儲至多個存儲裝置中。
第三方面,本申請實施例還提供了一種電子設備,包括:至少一個處理器;以及存儲器;其中,所述存儲器存儲有可被所述至少一個處理器執行的程序,所述指令被所述至少一個處理器執行,以使所述至少一個處理器能夠執行本申請上述任一項文件存儲方法。
第四方面,本申請實施例還提供一種文件讀取方法,包括:
根據文件讀取請求,確定所述文件的源碼塊的數量N、編碼塊的數量M、以及所述M個編碼塊所在的多個存儲裝置;
向各存儲裝置發送編碼塊獲取請求;
當自所述存儲裝置接收到S個編碼塊時,對所述S個編碼塊進行譯碼,其中,N≤S<M;
當譯碼后成功恢復所述文件時,利用所述恢復后的文件響應所述文件讀取請求。
第五方面,本申請實施例提供一種文件讀取裝置,包括:
確定模塊,配置用于根據文件讀取請求,確定所述文件的源碼塊的數量N、編碼塊的數量M、以及所述M個編碼塊所在的多個存儲裝置;
發送模塊,配置用于向各存儲裝置發送編碼塊獲取請求;
譯碼模塊,配置用于當自所述存儲裝置接收到S個編碼塊時,對所述S個編碼塊進行譯碼,其中,N≤S<M;
響應模塊,配置用于當譯碼后成功恢復所述文件時,利用所述恢復后的文件響應所述文件讀取請求。
第六方面,本申請實施例還提供了一種電子設備,包括:至少一個處理器;以及存儲器;其中,所述存儲器存儲有可被所述至少一個處理器執行的程序,所述指令被所述至少一個處理器執行,以使所述至少一個處理器能夠執行本申請上述任一項文件讀取方法。
本申請實施例的文件存儲方法可以實現利用零碎的空間存儲數據,例如視頻數據這種可以切分的數據。本申請實施例的文件讀取方法,可以實現不用等到所有請求被響應,即可開始恢復數據,從而可以有效的提高讀取性能,降低部署成本。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1是本申請一實施例提供的一種文件存儲方法的流程圖;
圖2是本申請一實施例提供的另一種文件存儲方法的流程圖;
圖3是本申請一實施例提供的一種文件讀取方法的流程圖;
圖4是本申請一實施例提供的另一種文件讀取方法的流程圖;
圖5是本申請一實施例提供的又一種文件讀取方法的流程圖;
圖6是本申請一實施例提供的文件讀取方法的一種實現的流程圖;
圖7是本申請一實施例提供的一種文件存儲裝置的結構示意圖;
圖8是本申請一實施例提供的一種文件讀取裝置的結構示意圖;
圖9是本申請一實施例提供的電子設備的結構示意圖。
具體實施方式
為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
請參考圖1,其示出了本申請一實施例提供的一種文件存儲方法的流程圖,本實施例的技術方案可適用于將一個文件分成多個部分并進行多個備份的存儲,該方法可以由文件存儲的電子設備來執行。
本申請實施例提供的一種文件存儲方法,包括如下步驟:
步驟101,將待存儲的文件,分成N個源碼塊;
步驟102,對N個源碼塊進行分組,生成M個碼塊組,其中,每個碼塊組均包括至少一個源碼塊,M>N;
步驟103,對M個碼塊組分別進行編碼,以生成M個編碼塊;
步驟104,將M個編碼塊存儲至多個存儲裝置中。
在本實施例中,對于步驟101,電子設備可以將待存儲的文件,分成N個源碼塊,可以將一個待存儲的視頻文件切分成多塊,例如講一個視頻文件切分成9塊,還可以依次對其進行編號,形成編號為1、2、3、4、5、6、7、8、9的9個源碼塊,從而之后可以利用比較零碎的空間來存儲視頻。
之后,對于步驟102,電子設備可以對之前在步驟101中分成的N個源碼塊進行重新分組,形成M個碼塊組,其中,每一個碼塊組中可以包括至少一個源碼塊。例如可以將前面的9個源碼塊分為一個一組、兩個一組、三個一組等,當然也可以分為更多個例如8個一組之類的,但是如果一組里面有太多源碼塊的話,也違背了當初把文件切分成多塊的初衷,所以比較優選的還是分成少量的幾個一組,例如三個一組,具體的,可以是123、246、589、478之類的。
然后,對于步驟103,電子設備可以對分好的M個碼塊組分別進行編碼,以形成M個編碼塊,例如對之前的123、246、589之類的碼塊組重新編碼,形成新的編碼塊,例如123可以對應為編碼塊a,246可以對應為編碼塊b,589可以對應為編碼塊c,當然也可以有其他編碼方式和命名,本申請在此方面沒有限制。
最后,對于步驟104,電子設備可以將M個編碼塊分別存儲至多個存儲裝置中,例如可以存儲在磁盤中,當然也可以存儲在其他外部設備如硬盤、軟盤、U盤、光盤之類的,本申請在此方面沒有限制。需要說明的是,不同的編碼塊也可以存儲在相同的存儲裝置中,例如也可以存儲在同一磁盤的不同位置。
本實施例的文件存儲方法,通過對待存儲文件進行分塊、分組、編碼和存儲,可以將一個文件分成多個部分存儲在不同的地方,從而可以利用比較零碎的空間存儲文件,進一步地,由于多個編碼塊中一般都會或多或少存在重復的部分,因此,相當于對文件進行了一次或多次備份,從而即使其中部分編碼塊損壞,也不會影響文件的完整性,也能憑借部分編碼塊對文件進行恢復。
請參考圖2,其示出了本申請一實施例提供的另一種文件存儲方法的流程圖。本實施例中的流程是對圖1中步驟103的細化的流程,具體包括以下步驟:
步驟201,根據每個碼塊組中的源碼塊的數量,選擇相應的編碼方式;
步驟202,利用編碼方式對每個碼塊組進行編碼以生成相應的編碼塊。
在本實施例中,對于步驟201,電子設備可以根據每一個碼塊組中源碼塊的數量,選擇不同的編碼方式或者選擇不同的命名方式,從而是各種數量的編碼塊更易被識別,例如,當碼塊組中只含有一個源碼塊時,可以在編碼和命名時有所區別,例如編成以a開頭的,例如a3可以指代只有一個源碼塊,是只包含源碼塊為3的碼塊組。
之后,對于步驟202,電子設備可以按照之前的方式對碼塊組進行編碼以生成相應的編碼塊。
本實施例的方法,在圖1的實施例所對應的方法的基礎上,通過根據碼塊組中的源碼塊的數量在編碼時有所區別,可以使編碼塊更加容易被識別,從而可以加快之后譯碼的速度。
進一步參考圖3,其示出了本申請一實施例提供的一種文件讀取方法的流程圖。本實施例的技術方案可適用于響應于文件讀取請求,快速向用戶提供該文件,該方法可以由文件讀取的電子設備來執行。具體包括如下步驟:
步驟301,根據文件讀取請求,確定文件的源碼塊的數量N、編碼塊的數量M以及M個編碼塊所在的多個存儲裝置;
步驟302,向各存儲裝置發送編碼塊獲取請求;
步驟303,當自存儲裝置接收到S個編碼塊時,對S個編碼塊進行譯碼,其中,N≤S<M;
步驟304,當譯碼后成功恢復文件時,利用恢復后的文件響應文件讀取請求。
在本實施例中,對于步驟301,電子設備根據接收到的文件讀取請求,確定該文件的源碼塊的數量N,編碼塊的數量M以及M個編碼塊所在的多個存儲裝置,例如,其中源碼塊的數量可以為9,編碼塊的數量可以為30,存儲裝置的數量沒有限制。
之后,對于步驟302,電子設備向各個存儲裝置發送編碼塊獲取請求。
之后,對于步驟303,當自各存儲裝置接收到的編碼塊的個數S≥N時,對S個編碼塊進行譯碼,其中,S<M,從而,不用收到全部的M個編碼塊就可以開始譯碼。
最后,對于步驟304,當譯碼后成功恢復文件時,利用恢復后的文件響應之前的文件讀取請求,將恢復后的文件發送給相應的設備。
本實施例的方法,通過在沒有接收到所有的編碼塊的時候就開始譯碼從而可以能夠快速的恢復文件,更加快速的對文件讀取請求作出響應。
請參考圖4,其示出了本申請一實施例提供的另一種文件讀取方法的流程圖。本實施例中的流程是對圖3中步驟301的細化的流程,具體包括以下步驟:
步驟401,根據文件讀取請求,獲取文件的文件名;
步驟402,根據文件名,索引并解析文件名所對應的元數據,其中,元數據包括文件的源碼塊的數量N、編碼塊的數量M、以及M個編碼塊所在的多個存儲裝置。
在本實施例中,對于步驟401,電子設備根據接收到的文件讀取請求,獲取待讀取的文件的文件名。例如,可以對文件讀取請求中的相關字段進行解析以提取出相應的文件名。
之后,對于步驟402,電子設備根據獲取的文件名,按照該文件名索引出相應的元數據,之后對該元數據進行解析,并獲取其中的某些字段,例如文件的源碼塊的數量N、編碼塊的數量M、以及M個編碼塊所在的多個存儲裝置。進一步地,當存儲裝置為磁盤時,還可以獲取元數據類型,文件片序號,長度,所在磁盤編號,所在磁盤文件編號,長度,文件片校驗值(例如循環冗余校驗值)。
本實施例的文件讀取方法,通過根據文件名找到元數據,之后解析元數據中的相關字段獲取所需的信息,從而之后可以根據解析出來的信息發送編碼塊獲取請求,可以實現對文件讀取請求的解析。
可選的,元數據中還可以包括多個編碼塊的校驗信息,電子設備還可以通過查詢多個編碼塊在存儲裝置中的具體存儲地址,從而確定每一存儲地址中均存儲有與所述每一存儲地址對應的編碼塊;并根據每一編碼塊的校驗信息對每一編碼塊進行校驗,當多個編碼塊均校驗通過時,向所述多個存儲地址發起編碼塊獲取請求。進一步地,也可以在其中超過閾值數量的編碼塊都通過校驗時發起請求,而不用校驗所有的編碼塊,從而可以節省校驗的時間,其中,該閾值可以大于源碼塊的數量N,小于編碼塊的數量M,從而可以減少校驗的數量,節省時間,更快速地響應。
在另一些可選的實施例中,元數據還包括由每一編碼塊及與每一編碼塊對應的源碼塊的映射關系形成的編碼庫,電子設備還可以基于編碼塊根據預設的譯碼算法對所接收的編碼塊進行譯碼;之后,如果譯碼失敗,繼續接收新的編碼塊并繼續譯碼;重復上述步驟直至譯碼成功,從而得到N個源碼塊。從而可以在失敗之后繼續接收和譯碼,從而也能在一定時間上加快對讀取請求的響應速度。
進一步參考圖5,其示出了本申請一實施例提供的另一種文件讀取方法的流程圖。本實施例的流程是在圖3中的步驟302進一步細化的流程。具體包括如下步驟:
步驟501,基于待獲取的M個編碼塊確定待發送的M個輸入輸出請求數據包;
步驟502,檢測數據包中是否存在向同一個存儲裝置發送的數據包;
步驟503,對向同一個存儲裝置發送的數據包進行合并處理;
步驟504,向各存儲裝置發送經合并處理后的多個輸入輸出請求數據包。
在本實施例中,對于步驟501,電子設備根據待獲取的M個編碼塊確定待發送的M個輸入輸出(I/O,Input/Output)請求數據包。之后,對于步驟502,檢測所有的M個數據包中是否存在向同一個存儲裝置發送的數據包,之后對于步驟503,當檢測到其中存在向同一個存儲裝置發送的數據包時,對其進行合并處理,例如存在三個數據包都是向存儲裝置A發出的,則對這三個數據包進行合并,將這三個請求合并在一起,從而通過一次I/O請求就能讀取三次數據。最后,對于步驟504,電子設備向各個存儲裝置發送經過合并處理之后的多個I/O請求。
本實施例的文件讀取方法,通過對向同一存儲裝置發送的多個輸入輸出請求數據包進行合并處理,從而可以減少發送的請求數據包的數量,通過一次請求即可讀取多個數據,從而可以減少發送數據包和讀取數據的時間,進一步地可以減少處理的時間,提高處理效率,快速對讀取請求作出響應。
請參考圖6,其示出了本申請一實施例提供的文件讀取方法的一種實現的流程圖。以下實施例重在解決視頻回看,以及點播中文件讀取的性能方面做優化。提高數據讀取速度。從而提高視頻服務器的性能。降低視頻的卡頓比。
在本實施例中,對于步驟601,對待每次請求數據,檢索數據元數據,根據元數據,確定數據分片所在具體的磁盤。之后,對于步驟602,若元數據損壞,則不對該數據進行處理,通過后臺方式對數據進行恢復。然后對于步驟603,向各個磁盤發起IO請求。最后,對于步驟604,數據到達一定可恢復閾值,利用編碼運算,恢復數據的原貌。
其中,整個系統可以包括元數據模塊、I/O模塊以及編解碼模塊。
在元數據模塊中,元數據索引以文件名為索引,元數據內容為:元數據類型,文件片序號,長度,所在磁盤編號,所在磁盤文件編號,長度,文件片CRC(循環冗余校驗)校驗值。讀取文件元數據后,對文件的元數據進行解碼,解析出上述字段,并檢查磁盤,文件是否存儲,校驗元數據正確性。
在I/O模塊中,并行向所有文件塊發起請求,等待所有I/O請求到達可恢復文件的閾值。在這個模塊,相同的I/O請求會合并,進一步減少磁盤I/O的數量,提高系統有效I/O能力。
編解碼模塊,可以利用噴泉碼的思想。所謂噴泉碼,是指這種編碼的發送端隨機編碼,由k個原始分組生成任意數量的編碼分組,源節點在不知道這些數據包是否被成功接收的情況下,持續發送數據包。而接收端只要收到N=k(1+ε)個編碼分組的任意子集(ε>0),即收到一個稍微大于原來k值的N個子集,就可通過譯碼以高概率(與ε有關)成功地恢復全部原始分組。
現我們將I/O獲得的結果作為輸入源,只要輸入源>K,利用我們的編碼庫,對數據進行恢復。
以上提出了一種針對存儲于多磁盤的存儲方式,可以有效的提高讀取性能,降低部署成本。不僅可以提高存儲讀取性能,并能夠提供數據完備性的方案,將備份與快速讀取合為一體。本發明還可以讓用戶自定義編碼加密功能,保證數據的安全性。
請參考圖7,其示出了本申請一實施例提供的一種文件存儲裝置的結構示意圖。如圖7所示,本實施例的文件存儲裝置700包括分塊模塊701、分組模塊702、編碼模塊703以及存儲模塊704。其中,分塊模塊701,配置用于將待存儲的文件,分成N個源碼塊;分組模塊702,配置用于對N個源碼塊進行分組,生成M個碼塊組,其中,每個碼塊組均包括至少一個源碼塊,M>N;編碼模塊703,配置用于對M個碼塊組分別進行編碼,以生成M個編碼塊;以及存儲模塊704,配置用于將M個編碼塊存儲至多個存儲裝置中。
在一些可選的實施例中,編碼模塊703包括選擇模塊和生成模塊(圖中為示出)。其中,選擇模塊,配置用于根據每個碼塊組中的源碼塊的數量,選擇相應的編碼方式;以及生成模塊,配置用于利用編碼方式對每個碼塊組進行編碼以生成相應的編碼塊。
請參考圖8,其示出了本申請一實施例提供的一種文件讀取裝置的結構示意圖。如圖8所示,文件讀取裝置800包括確定模塊801、發送模塊802、譯碼模塊803和響應模塊804。其中,確定模塊801,配置用于根據文件讀取請求,確定文件的源碼塊的數量N、編碼塊的數量M、以及M個編碼塊所在的多個存儲裝置;發送模塊802,配置用于向各存儲裝置發送編碼塊獲取請求;譯碼模塊803,配置用于當自存儲裝置接收到S個編碼塊時,對S個編碼塊進行譯碼,其中,N≤S<M;以及響應模塊804,配置用于當譯碼后成功恢復文件時,利用恢復后的文件響應文件讀取請求。
在一些可選的實施例中,確定模塊801包括文件名獲取模塊和索引解析模塊(圖中未示出)。其中,文件名獲取模塊,配置用于根據文件讀取請求,獲取文件的文件名;以及索引解析模塊,配置用于根據文件名,索引并解析文件名所對應的元數據,其中,元數據包括文件的源碼塊的數量N、編碼塊的數量M、以及M個編碼塊所在的多個存儲裝置。
在另一些可選的實施例中,發送模塊802包括請求確定模塊、檢測模塊、合并處理模塊和請求發送模塊(圖中未示出)。其中,請求確定模塊,配置用于基于待獲取的M個編碼塊確定待發送的M個輸入輸出請求數據包;檢測模塊,配置用于檢測數據包中是否存在向同一個存儲裝置發送的數據包;合并處理模塊,配置用于對向同一個存儲裝置發送的數據包進行合并處理;以及請求發送模塊,配置用于向各存儲裝置發送經合并處理后的多個輸入輸出請求數據包。
應當理解,圖7和圖8中記載的諸模塊與參考圖1、圖2、圖3、圖4以及圖5描述的方法中的各個步驟相對應。由此,上文針對方法描述的特征和效果同樣適用于圖7和圖8中的諸模塊,在此不再贅述。
值得注意的是,本發明的實施例中的模塊并不用于限制本發明的方案,例如分塊模塊可以描述為用于將待存儲的文件,分成N個源碼塊的模塊。另外,還可以通過硬件處理器來實現相關功能模塊,例如分塊模塊也可以用處理器實現,在此不再贅述。
本申請實施例提供了一種非易失性計算機存儲介質,所述計算機存儲介質存儲有計算機可執行指令,該計算機可執行指令可執行上述任意方法實施例中的文件存儲方法;
作為一種實施方式,本發明的非易失性計算機存儲介質存儲有計算機可執行指令,所述計算機可執行指令設置為:
將待存儲的文件,分成N個源碼塊;
對所述N個源碼塊進行分組,生成M個碼塊組,其中,每個碼塊組均包括至少一個源碼塊,M>N;
對所述M個碼塊組分別進行編碼,以生成M個編碼塊;
將所述M個編碼塊存儲至多個存儲裝置中。
作為另一種實施方式,本發明的非易失性計算機存儲介質存儲有計算機可執行指令,所述計算機可執行指令設置為:
根據文件讀取請求,確定所述文件的源碼塊的數量N、編碼塊的數量M、以及所述M個編碼塊所在的多個存儲裝置;
向各存儲裝置發送編碼塊獲取請求;
當自所述存儲裝置接收到S個編碼塊時,對所述S個編碼塊進行譯碼,其中,N≤S<M;
當譯碼后成功恢復所述文件時,利用所述恢復后的文件響應所述文件讀取請求。
作為一種非易失性計算機可讀存儲介質,可用于存儲非易失性軟件程序、非易失性計算機可執行程序以及模塊,如本申請實施例中的文件存儲方法對應的程序指令/模塊(例如,附圖7所示的分塊模塊701、分組模塊702、編碼模塊703以及存儲模塊704)。所述一個或者多個模塊存儲在所述非易失性計算機可讀存儲介質中,當被處理器執行時,執行上述任意方法實施例中的文件存儲方法或文件讀取方法。
非易失性計算機可讀存儲介質可以包括存儲程序區和存儲數據區,其中,存儲程序區可存儲操作系統、至少一個功能所需要的應用程序;存儲數據區可存儲根據文件存儲系統的使用所創建的數據等。此外,非易失性計算機可讀存儲介質可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他非易失性固態存儲器件。在一些實施例中,非易失性計算機可讀存儲介質可選包括相對于處理器遠程設置的存儲器,這些遠程存儲器可以通過網絡連接至文件存儲裝置。上述網絡的實例包括但不限于互聯網、企業內部網、局域網、移動通信網及其組合。
本發明實施例還提供一種計算機程序產品,所述計算機程序產品包括存儲在非易失性計算機可讀存儲介質上的計算程序,所述計算機程序包括程序指令,當所述程序指令被計算機執行時,使所述計算機執行上述任一項文件存儲方法或文件讀取方法。
圖9是本申請一實施例提供的電子設備的結構示意圖,如圖9所示,該設備包括:
一個或多個處理器910以及存儲器920,圖9中以一個處理器910為例。
文件存儲方法的設備還可以包括:輸入裝置930和輸出裝置940。
處理器910、存儲器920、輸入裝置930和輸出裝置940可以通過總線或者其他方式連接,圖9中以通過總線連接為例。
存儲器920為上述的非易失性計算機可讀存儲介質。處理器910通過運行存儲在存儲器920中的非易失性軟件程序、指令以及模塊,從而執行服務器的各種功能應用以及數據處理,即實現上述方法實施例文件存儲方法。
輸入裝置930可接收輸入的數字或字符信息,以及產生與文件存儲裝置的用戶設置以及功能控制有關的鍵信號輸入。輸出裝置940可包括顯示屏等顯示設備。
上述產品可執行本申請實施例所提供的方法,具備執行方法相應的功能模塊和有益效果。未在本實施例中詳盡描述的技術細節,可參見本申請實施例所提供的方法。
作為一種實施方式,上述電子設備包括:至少一個處理器;以及,與所述至少一個處理器通信連接的存儲器;其中,所述存儲器存儲有可被所述至少一個處理器執行的指令,所述指令被所述至少一個處理器執行,以使所述至少一個處理器能夠:
將待存儲的文件,分成N個源碼塊;
對所述N個源碼塊進行分組,生成M個碼塊組,其中,每個碼塊組均包括至少一個源碼塊,M>N;
對所述M個碼塊組分別進行編碼,以生成M個編碼塊;
將所述M個編碼塊存儲至多個存儲裝置中。
作為另一種實施方式,上述電子設備包括:至少一個處理器;以及,與所述至少一個處理器通信連接的存儲器;其中,所述存儲器存儲有可被所述至少一個處理器執行的指令,所述指令被所述至少一個處理器執行,以使所述至少一個處理器能夠:
根據文件讀取請求,確定所述文件的源碼塊的數量N、編碼塊的數量M、以及所述M個編碼塊所在的多個存儲裝置;
向各存儲裝置發送編碼塊獲取請求;
當自所述存儲裝置接收到S個編碼塊時,對所述S個編碼塊進行譯碼,其中,N≤S<M;
當譯碼后成功恢復所述文件時,利用所述恢復后的文件響應所述文件讀取請求。
本申請實施例的電子設備以多種形式存在,包括但不限于:
(1)服務器:提供計算服務的設備,服務器的構成包括處理器、硬盤、內存、系統總線等,服務器和通用的計算機架構類似,但是由于需要提供高可靠的服務,因此在處理能力、穩定性、可靠性、安全性、可擴展性、可管理性等方面要求較高。
(2)其他具有數據交互功能的電子裝置。
以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本實施例方案的目的。本領域普通技術人員在不付出創造性的勞動的情況下,即可以理解并實施。
通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到各實施方式可借助軟件加必需的通用硬件平臺的方式來實現,當然也可以通過硬件。基于這樣的理解,上述技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品可以存儲在計算機可讀存儲介質中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行各個實施例或者實施例的某些部分所述的方法。
最后應說明的是:以上實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的精神和范圍。