[發明專利]一種多線程并行編/解碼方法、編/解碼器、用戶端在審
| 申請號: | 202110796828.2 | 申請日: | 2021-07-14 |
| 公開(公告)號: | CN113590376A | 公開(公告)日: | 2021-11-02 |
| 發明(設計)人: | 曹強;孫磊 | 申請(專利權)人: | 華中科技大學 |
| 主分類號: | G06F11/10 | 分類號: | G06F11/10;G06F3/06 |
| 代理公司: | 華中科技大學專利中心 42201 | 代理人: | 徐美琳 |
| 地址: | 430074 湖北*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 多線程 并行 解碼 方法 解碼器 用戶端 | ||
本發明公開了一種多線程并行編/解碼方法、編/解碼器、用戶端,屬于計算機存儲技術領域。包括:根據指定的編碼規則對文件進行編碼得到編碼文件;對于容錯范圍內的多個數據塊失效,可以根據現存的有效數據塊恢復出原始數據;根據設置,使用不同線程數量并行完成數據編解碼和文件讀取過程,實現具有糾錯能力的高速文件并發讀寫過程。
技術領域
本發明屬于計算機存儲技術領域,更具體地,涉及一種多線程并行編/解碼方法、編/解碼器、用戶端。
背景技術
存儲系統中為了保證數據可靠性,通常使用多副本、可擦除編碼的方式存儲數據。通常使用的副本存儲會導致磁盤使用空間的升高,以及隨之而來的存儲成本的增加。為了降低磁盤空間的使用,文件編碼在數據可靠性方面的應用逐漸廣泛。
使用文件編碼保證數據可靠性的存儲系統性能受限于編碼過程的吞吐率。用戶需要持久化保存的數據需要通過編碼得到一定長度的校驗數據,將校驗數據和用戶數據都保存在磁盤上,當一部分數據出現錯誤,使用剩余的無錯數據,通過解碼過程恢復出用戶數據。可見,編解碼過程出現在數據讀寫的關鍵路徑上,編解碼的速度決定了系統性能,低速的編解碼性能將成為系統瓶頸。
發明內容
針對現有技術的缺陷和改進需求,本發明提供了一種多線程并行編/解碼方法、編/解碼器、用戶端,其目的在于通過多線程編解碼提高編解碼速度,縮短文件讀寫關鍵路徑,同時保證用戶數據的可靠性。
為實現上述目的,按照本發明的第一方面,提供了一種多線程并行編碼方法,包括以下步驟:
使用多個I/O線程從存儲設備讀取源文件;
將所述源文件分割為n*z個用戶數據塊,其中包含z個數量為n的用戶數據條帶,使用T個編碼線程,第t個編碼線程按照每n個用戶數據塊得到k個校驗數據塊的編碼規則對ti個數據條帶進行編碼,其中,1≤t≤T,當t≤z%T時,當t>z%T時,
使用多個I/O線程,將編碼文件進行布局寫入存儲設備。
優選地,分割的規則為:
若用戶數據塊的大小是m,對于長度為x的源文件:
(a)若x能被n*m整除,那么用戶數據塊的總量為x/m,分為n*z個用戶數據塊;
(b)若x不能被n*m整除,那么用戶數據塊的總量為通過補零或者補充預設數據的方法補全為n*z個用戶數據塊。
優選地,布局方法包括:
用戶數據塊與校驗數據塊的垂直布局方法:n*z個用戶數據塊,編碼得到k*z個校驗數據塊,將用戶數據塊連續存放在編碼文件的前部,然后在編碼文件尾部對應地連續存放校驗數據塊;
或者用戶數據塊與校驗數據塊的水平布局方法:用戶數據塊與校驗數據塊按照條帶次序放置,每個條帶中的數據塊連續存放,同時,用戶數據塊連續存放在條帶前部,校驗數據塊連續存放在條帶后部。
或者用戶數據塊與校驗數據塊的水平交叉布局方法:用戶數據塊與校驗數據塊按照條帶次序放置,但條帶內部用戶數據塊與校驗數據塊間隔分布,用戶數據塊與校驗數據塊按照約定間隔存放。
本發明第二方面提供了一種多線程并行解碼方法,編碼文件包括z個條帶,每個條帶包括n個用戶數據塊和k個校驗數據塊;解碼包括以下步驟:
使用多個I/O線程從存儲設備讀取編碼文件到內存中;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華中科技大學,未經華中科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110796828.2/2.html,轉載請聲明來源鉆瓜專利網。





