TWI755878B - 動態改變資料預取量的方法及使用其之終端裝置 - Google Patents

動態改變資料預取量的方法及使用其之終端裝置 Download PDF

Info

Publication number
TWI755878B
TWI755878B TW109133991A TW109133991A TWI755878B TW I755878 B TWI755878 B TW I755878B TW 109133991 A TW109133991 A TW 109133991A TW 109133991 A TW109133991 A TW 109133991A TW I755878 B TWI755878 B TW I755878B
Authority
TW
Taiwan
Prior art keywords
data
prefetch
blocks
request
read
Prior art date
Application number
TW109133991A
Other languages
English (en)
Other versions
TW202215233A (zh
Inventor
蘇璟瑋
鄭欽宗
Original Assignee
威聯通科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 威聯通科技股份有限公司 filed Critical 威聯通科技股份有限公司
Priority to TW109133991A priority Critical patent/TWI755878B/zh
Priority to US17/152,826 priority patent/US11249650B1/en
Application granted granted Critical
Publication of TWI755878B publication Critical patent/TWI755878B/zh
Publication of TW202215233A publication Critical patent/TW202215233A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Abstract

一種動態改變資料預取量的方法及使用其之終端裝置,此方法根據資料傳輸平均速度及讀取倍數而決定每次請求的資料區塊數量,在取得並儲存多個資料區塊之後將其中一個資料區塊設定為預取啟動區塊,並且在預取啟動區塊被讀取時依照預設規則設定讀取倍數。

Description

動態改變資料預取量的方法及使用其之終端裝置
本發明是有關於一種資料預取的方法,特別是有關於一種動態改變資料預取量的方法。
資料預取(prefetch)是先預測使用者可能會使用到的特定資料並且在使用者尚未使用到之前先取得這些特定資料的技術。由於可以在使用者進行其它操作的時候進行資料預取的操作,所以藉由使用資料預取技術就有機會降低使用者在整體操作過程中耗費在等候資料的時間。因此,在資料處理的領域中,資料預取技術一直都受到廣泛的重視。
然而,在現有的雲端檔案資料預取技術中,藉由每一次的資料預取要求所取得的資料量都受到固定的限制,例如每次取得固定大小的資料或者每次固定取得一個檔案的所有資料等。這樣死板的限制一方面在傳輸頻寬不足的時候可能會造成網路壅塞,另一方面在所要取得的資料量太多的時候就必須多次發出資料預取請求並因此造成伺服器的處理困擾。由此可見,現有的資料預取技術還有需要改進的地方。
有鑑於此,本發明的其中一個目的是提出一種動態改變資料預取量的方法及使用其之終端裝置,其可以根據近期的資料傳輸平均速度以及使用者讀取行為來調整每次資料預取操作時所要求的資料量,因此可以減少在網路頻寬較低的時候造成網路壅塞的可能性,並且在傳輸速度較快的時候藉由增加每次資料預取操作所要求的資料量來降低整體發出預取請求的數量,減少伺服器花費在處理預取請求上的時間。
從一個方面來看,本發明的說明內容提供了一種動態改變資料預取量的方法,此方法包括以下步驟:步驟甲係根據資料傳輸平均速度及預先設定好的讀取倍數決定區塊數量;步驟乙係發出資料請求指令以取得指定內容中的請求資料,此請求資料包括的資料區塊的數量為先前決定的區塊數量;步驟丙係將取得的請求資料儲存為預取資料,此預取資料包括數量為前述區塊數量的預取資料區塊,其中,當區塊數量為兩個以上的時候,設定這些預取資料區塊之一為預取啟動區塊,並且在預取啟動區塊被讀取時依照預設規則設定讀取倍數。
在一個實施例中,前述根據資料傳輸平均速度及預先設定好的讀取倍數決定區塊數量的步驟,包括:選取預設時間範圍內的多個時間點及獲取分別與每一個時間點相對應的資料傳輸速度;平均這些資料傳輸速度以獲得前述的資料傳輸平均速度;根據所獲得的資料傳輸平均速度決定基礎請求量,其中,基礎請求量隨著資料傳輸平均速度上升而逐步增加,且基礎請求量最少為1;以及以基礎請求量乘上讀取倍數而產生區塊數量。
在一個實施例中,前述在預取啟動區塊被讀取時依照預設規則設定讀取倍數的步驟,包括:設定讀取倍數增加1直至達到讀取倍數最大值為止。
在一個實施例中,在依照預設規則設定讀取倍數之後,更在指定內容還有需要請求的部分時,重複步驟甲、步驟乙及步驟丙。
在一個實施例中,預取啟動區塊為預取資料區塊中排列於第二者至倒數第一者其中之一者。
在一個實施例中,當區塊數量為兩個以上的時候,更包括以下步驟:在此次請求指令所請求的預取資料區塊的最後一個被儲存完成時致能一個加速預取標籤;以及在讀取完此次請求指令所請求的預取資料區塊的倒數第二個的時候檢查加速預取標籤一次,並在檢查發現加速預取標籤被致能且指定內容還有需要請求的部分時,重複步驟甲、步驟乙及步驟丙。
在一個實施例中,在此次請求指令所請求的預取資料區塊中的前M個預取資料區塊被儲存完成之後才允許開始讀取儲存完成的預取資料區塊。
從另一個方面來看,本發明的說明內容提供了一種終端裝置,其可透過網路預取伺服器中的資料。此終端裝置包括:處理單元、至少一個儲存裝置以及至少一個傳輸介面模組。其中,處理單元適於運行至少一個應用程式以及至少一個檔案管理系統,此處理單元根據資料傳輸平均速度及預先設定好的讀取倍數決定區塊數量;儲存裝置用於儲存應用程式中的資料;傳輸介面模組用於與伺服器透過網路連結。在運作中,終端裝置經由傳輸介面模組向伺服器發出資料請求指令以取得指定內容中的請求資料,此請求資料包括的資料區塊的數量為前述的區塊數量;接著,處理單元將取得的請求資料儲存於前述的至少一儲存裝置中成為預取資料,此預取資料包括數量為前述區塊數量的預取資料區塊;當區塊數量為兩個以上時,處理單元設定這些預取資料區塊之一為預取啟動區塊,並且在預取啟動區塊被讀取時依照預設規則設定讀取倍數。
在一個實施例中,前述的預設規則包括:處理單元設定讀取倍數增加1直至達到讀取倍數最大值為止。
根據上述技術,本發明說明內容提出的動態改變資料預取量的方法可以根據近期的資料傳輸平均速度以及使用者讀取行為來調整每次資料預取操作時所要求的資料量,因此可以減少在網路頻寬較低的時候造成網路壅塞的可能性,而在傳輸速度較快的時候也可以逐步增加每次資料預取操作所要求的資料量以降低整體發出預取請求的數量,減少伺服器花費在處理預取請求上的時間。
請參照圖1,其為根據本發明一實施例的施行動態改變資料預取量的方法的系統的架構示意圖。本實施例的系統10包括了一個終端裝置100以及一個伺服器150,使用者可以透過操作終端裝置100而從伺服器150取得雲端檔案的資料。具體來說,在本實施例中,處理單元104可以運行一個以上的應用程式102以及檔案管理系統110,而且應用程式102在運作過程中可以藉由檔案管理系統110的協助而取得所需的資料。詳細地說,在需要資料的時候,應用程式102會通知檔案管理系統110以要求取得資料,而檔案管理系統110則會判斷應用程式102所需要的資料是否儲存在儲存裝置106之中;當應用程式102需要的資料已經被儲存在儲存裝置106之中的時候,檔案管理系統110就可以在應用程式102開始讀取資料時直接從儲存裝置106中取得所需的資料並將其提供給應用程式102使用;相對的,當應用程式102需要的資料並未儲存在儲存裝置106之中,檔案管理系統110就會透過傳輸介面模組108經過外部網路或內部網路到適當的位置(例如伺服器150)去取得相應的資料。
為了能清楚說明本發明的技術內容,後續將應用程式102所需要的資料稱為指定內容,將每一次資料請求指令Req所請求的資料稱為請求資料,並將由資料請求指令Req請求後得到並儲存到儲存裝置106中的資料稱為預取資料。另外,在本實施例中是假設將指定內容存放在伺服器150之中。於是在收到應用程式102的請求之後,檔案管理系統110會透過傳輸介面模組108而向伺服器150發出資料請求指令Req,而每一次由資料請求指令Req所請求的請求資料DATA的多寡則可以根據網路的傳輸速度來決定,其詳細過程將合併圖2一起進行說明。
請一併參照圖1與圖2,其中,圖2為根據本發明一實施例的動態改變資料預取量的方法的流程圖,且此實施例可被運用於圖1所示的系統中。如圖2所示,檔案管理系統110會先判斷此次所要讀取的指定內容是否是第一次被要求讀取(步驟S200)。當步驟S200的判斷結果為是,則檔案管理系統110會進一步判斷所要讀取的資料區塊是否已經被儲存在儲存裝置106內(步驟S202)。假若經過步驟S202的判斷發現所要讀取的資料區塊是已經儲存在儲存裝置106內的資料,檔案管理系統110就直接通知應用程式102以表示資料已經準備好可供取用(步驟S214)。相對的,假若經過步驟S202的判斷發現所要讀取的資料區塊尚未被儲存在儲存裝置106內,那麼檔案管理系統110會先設定與此份指定內容相對應的一個讀取倍數(步驟S204)並接著取得目前時間點的資料傳輸平均速度(步驟S206)。
上述在步驟S206取得資料傳輸平均速度的詳細過程可藉由圖3所示的實施例來完成。如圖3所示,檔案管理系統110首先要決定用來判斷傳輸速度的時間點(步驟S300),例如,檔案管理系統110可以選取在目前時間點之前且最接近目前時間點的一段時間範圍內(例如距今10秒內)的數個時間點作為判斷傳輸速度的時間點。在決定了所需的時間點之後,檔案管理系統110就可以進一步從儲存與傳輸量相關的資訊的處所取得傳輸通道(在此處為伺服器150與傳輸介面模組108之間的連線)在這些時間點的資料傳輸速度(步驟S302)。由於在現有的作業系統或網路裝置中一般都設置有記錄過往資料傳輸速度的功能,因此檔案管理系統110在步驟S302中可以輕易地從作業系統、檔案系統所紀錄的歷史資訊或傳輸介面模組108(例如:網路界面卡,Network Interface Card,NIC)取得與傳輸量相關的資訊。最後,檔案管理系統110再根據所獲得的傳輸量資訊來計算對應的資料傳輸速度,並將所獲得的資料傳輸速度加以平均而獲得所需要的資料傳輸平均速度(步驟S304)。
應注意的是,在步驟S300決定時間點的時候並不一定僅能採用前段所述的作法。前段所提選取在目前時間點之前且最接近目前時間點的一段時間範圍內的數個時間點作為判斷傳輸速度的時間點的作法,擁有可以即時性的反應現有傳輸通道狀況的優點;而其它的作法,例如選擇過去數日或數週的目前或接下來一段時間內的時間點作為判斷傳輸速度的時間點,則擁有將可能發生的例行性的傳輸作業納入考量的優點。具體在選取時間點時採用哪一種機制當視需求而定,採用的選取機制並不影響本發明的核心運作內容。
除此之外,檔案管理系統110在根據所獲取的與傳輸量相關的資訊而產生對應的資料傳輸速度甚至是平均資料傳輸速度時也可以有很多種作法。一般來說,由於所獲取到的與傳輸量相關的資訊會是某個時間點的每秒資料傳輸量,因此檔案管理系統110只要直接將所獲取的資訊進行平均就可以獲得所需要的平均資料傳輸速度。而在另一種作法中,檔案管理系統110可以將全部的傳輸頻寬減去所獲取到的每秒資料傳輸量而獲得分別與每個時間點對應的可用頻寬,這些可用頻寬被視為前述的資料傳輸速度並由檔案管理系統110進行平均而獲得平均資料傳輸速度。上述兩種作法以及其它計算資料傳輸速度或可用頻寬的作法都可以被運用在本發明中,本領域的技術人員當可視需求而進行適當地選擇及設計。
值得說明的是,雖然在本實施例中是將圖3的操作過程以檔案管理系統110來完成,但實際施行時並不以此為限。本領域的技術人員當可將相關的處理程序改由處理單元104執行的其它程式來完成,此種變更並不影響本案技術的正常施行。
請再參照圖2,在步驟S206之後,檔案管理系統110在對應每一個指定內容的其中一部份發出資料請求指令前會根據現有的資料傳輸平均速度、讀取倍數以及指定內容的大小來決定此次資料請求指令所要請求的區塊數量(步驟S208)。在本實施例中,對於對應每一個指定內容所發出的第一個資料請求指令來說,這個讀取倍數會被設定為1,亦即,步驟S204是將讀取倍數預設為1;而對於對應到同一個指定內容所發出的其它資料請求指令(第二個、第三個乃至於最後一個資料請求指令)來說,讀取倍數可以保持為1或者以其它方式來進行增減。舉例來說,設計者可以對系統10設定一或多個臨界條件以使得在到達臨界條件的時候可以對應地增減讀取倍數的值。
圖4顯示了執行步驟S208時的一個詳細實施例的流程圖。請一併參照圖4,首先,檔案管理系統110在步驟S400中將資料傳輸平均速度除以儲存裝置106中每一個區塊的大小而獲得一個數值,由於這個數值可能非為整數但是在要求資料的時候都是以區塊為基礎單位,因此在一個可能的作法中就會將計算所得的數值以無條件進位的方式進位成整數,而進位所得的整數則被稱為基礎請求量。由計算過程可見,隨著資料傳輸平均速度上升,最終得到的基礎請求量也會逐步增加。再者,為了要確保能藉由資料請求指令來獲取資料,基礎請求量最少應該被設定為1較佳。
在決定了基礎請求量之後,檔案管理系統110可以利用基礎請求量與讀取倍數來產生所需要的區塊數量(步驟S402)。在一個實施例中,可以將基礎請求量乘上讀取倍數而產生所需要的區塊數量,但是本發明並不需要受限於這樣的方式,任何適當的、可以使區塊數量適當反映出基礎請求量及讀取倍數的變化情形的數學關係都可以被運用於此。
在執行步驟S208之後,檔案管理系統110會將與步驟S208決定的區塊數量相對應的資料所涵蓋的範圍轉換為對應的參數,例如:檔案的偏移量及請求資料量的大小(步驟S220)。之後,檔案管理系統110就可以根據這些參數以經由傳輸介面模組108向伺服器150發出相應的資料請求指令Req(步驟S226)。在另一方面,當決定了區塊數量之後,檔案管理系統110會根據區塊數量的多寡而決定後續的處理方式(步驟S210)。在步驟S210中,檔案管理系統110根據區塊數量是否為兩個以上為判斷依據而決定後續的處理方式。假若區塊數量為1,那麼檔案管理系統110就將從伺服器150收到的請求資料DATA儲存到儲存裝置106的一個區塊(後稱預取資料區塊)中而成為預取資料,並且在判斷出請求資料DATA已經下載完成之後(步驟S212)通知應用程式102(步驟S214)以便應用程式102開始取用資料;相對的,假若區塊數量大於或等於2,那麼檔案管理系統110會額外決定要將用來儲存請求資料的多個預取資料區塊的其中一者設定為預取啟動區塊(步驟S228),例如以一個連續讀取啟動標籤指向其中一個預取資料區塊,並且在確認已經下載完成足夠數量的資料之後(步驟S230)通知應用程式102(步驟S214)以便應用程式102開始取用資料。
要另外說明的是,在步驟S230中用來判斷是否下載足夠數量的資料的標準可以隨著需求而調整。例如,在一次資料請求指令Req得到的預取資料的區塊數量是N個的時候,可以設定在獲得M(M≤N且M≥1)個預取資料區塊的預取資料之後才認定為已經下載完成足夠數量的資料,檔案管理系統110才允許應用程式102開始讀取儲存完成的該些預取資料區塊。上述M值的大小並不影響本發明技術的正常操作,本領域的技術人員可視實際需求而設定適當的M值。
以上說明了對於某一個請求內容發出第一次資料請求指令及下載相應資料的過程。接下來將說明對於同一個請求內容發出第二次及以後的資料請求指令的操作過程。
請再參照圖2,當步驟S200的判斷結果為否,則檔案管理系統110同樣會進一步判斷所要讀取的資料區塊是否已經被儲存在儲存裝置106內(步驟S220)。假若經過步驟S220的判斷發現所要讀取的資料區塊是已經儲存在儲存裝置106內的資料,檔案管理系統110就直接通知應用程式102以表示資料已經準備好可供取用(步驟S214)。相對的,假若經過步驟S220的判斷發現所要讀取的資料區塊尚未被儲存在儲存裝置106內,檔案管理系統110就會先根據先前對於同一個請求內容的讀取行為來設定讀取倍數(步驟S222),之後再執行步驟S206及之後的程序以獲取相應的資料。
以下藉由同時參照圖5A~5D及圖6以說明在施行上述技術的一個實施例中的預取資料區塊的狀態變化過程以及讀取倍數的設定方式,其中,圖5A~5D是根據本發明一實施例的預取資料區塊的示意圖,圖6是根據本發明一實施例在步驟S222設定讀取倍數時的流程圖;而且在本實施例中還假設一開始的讀取倍數被設定為1,以及假設一開始的資料傳輸平均速度為每秒0.5個預取資料區塊的大小。
根據上述對於步驟S208以及圖4的相關說明,當資料傳輸平均速度為每秒0.5個預取資料區塊大小的時候,可以將0.5以無條件進位的方式進位成整數1。因此,當資料傳輸平均速度為每秒0.5個預取資料區塊大小的時候,經由無條件進入法而得到的對應的基礎請求量就是1。接下來,由於最初設定的讀取倍數也是1,所以基礎請求量與讀取倍數相乘後獲得的區塊數量就是1。因此,第一次在步驟S208中發出的、要預取某一個指定內容(後稱第一指定內容)的資料請求指令(後亦稱為第一資料請求指令)所請求的資料量,就相當於一個預取資料區塊的容量。第一資料請求指令所請求的請求資料(後稱第一請求資料)最終會被儲存到儲存裝置106的預取資料區塊501中,並且在第一請求資料被儲存好之後開放給應用程式102取用。值得注意的是,由於此時只預取了一個預取資料區塊的內容,所以檔案管理系統110不會將儲存第一請求資料的區塊設定為預取啟動區塊。
在發出第一資料請求指令之後,檔案管理系統110會開始處理接續在第一資料請求指令之後要發出的資料請求指令(後稱第二資料請求指令)。在第二資料請求指令所請求的請求資料(後稱第二請求資料)不接續在第一請求資料之後的狀況下,檔案管理系統110會將第二資料請求指令歸類為隨機讀取的類型並且將第二資料請求指令的讀取倍數設定為1;相對的,在第二請求資料是接續在第一請求資料之後的資料的狀況下,檔案管理系統110會將第二資料請求指令歸類為連續讀取的類型並且將現有的讀取倍數遞增1直到事先設定的最大值為止。也就是說,當第二資料請求指令的類型為隨機讀取的時候,用來決定第二資料請求指令所請求的資料量的讀取倍數會固定為1;而當第二資料請求指令的類型為連續讀取的時候,用來決定第二資料請求指令所請求的資料量的讀取倍數會大於或等於決定第一資料請求指令所請求的資料量的讀取倍數。
請參照圖5B,假設第二資料請求指令是隨機讀取的類型而且此時的資料傳輸平均速度為每秒2.7個預取資料區塊大小,於是對應的基礎請求量會是3且讀取倍數仍然維持在1。所以,最終獲得的區塊數量,亦即基礎請求量與讀取倍數相乘的結果,就會是3。因此,這一次在步驟S208中發出的、要預取某一個指定內容的第二資料請求指令所請求的資料量,就相當於三個預取資料區塊的容量。進一步的,第二資料請求指令所請求的資料會被逐步儲存到儲存裝置106的預取資料區塊502~504中,並且在資料儲存到一定程度之後開放給應用程式102取用。在本實施例中設定在預取資料區塊502的資料儲存完成之後就開放給應用程式102取用資料,但實際上也可以等到儲存完成預取資料區塊503之後才開放給應用程式102取用資料,甚至也可以等到全部預取資料區塊502~504的資料都儲存完成後才開放給應用程式102取用資料,亦即本實施例中M值可設為1或2或3的整數,這些變化只與實際需求有關,並不影響本發明的施行。
由於第二資料請求指令所請求的資料量相當於三個預取資料區塊的容量,所以在從伺服器150下載資料之前、同時或之後,檔案管理系統110會將預取資料區塊502~504的其中之一設定為預取啟動區塊。於是,在本實施例中設定了預取資料區塊503為預取啟動區塊,而檔案管理系統110則會監視資料讀取的操作,以在應用程式102取用到預取資料區塊503的資料時依照預設規則來設定讀取倍數,並根據後續是否還有屬於同一份指定內容的資料需要取得而進行對應的操作。值得一提的是,前述設定讀取倍數時依循的預設規則可以是任何的規則,例如,請參照圖6的實施例,在此實施例中是先取得現有的讀取倍數(步驟S600),之後分別判斷所要發出的資料請求指令是否為連續讀取的類型(步驟S602)以及是否是因為讀取了預取啟動區塊而發出此資料請求指令(步驟S604)。若步驟S602或步驟S604的判斷結果為是,則檔案管理系統110會執行步驟S606以判斷現有的讀取倍數是否已經達到事先設定好的最大值(後稱讀取倍數最大值)。當現有的讀取倍數已經達到讀取倍數最大值的時候,檔案管理系統110會保持現有的讀取倍數不變(步驟S608);相對的,當現有的讀取倍數尚未達到讀取倍數最大值的時候,檔案管理系統110會將現有的讀取倍數的值遞增1以作為新的讀取倍數(步驟S610)。在另一方面,假若步驟S602與步驟S604的判斷結果都為否,則檔案管理系統110就會將現有的讀取倍數設定為1(步驟S612)。
請再參照圖5B。假設讀取倍數最大值為2,那麼當應用程式102取用到預取資料區塊503的資料時,由於預取資料區塊503為預取啟動區塊,所以檔案管理系統110會在此時開始準備發出新的資料請求指令,並且藉由執行圖6設定讀取倍數的流程而將現有數值為1的讀取倍數遞增為2,於是新的讀取倍數的數值就是2。接下來,只要同一份請求內容中還有尚未被請求的資料存在伺服器150中,檔案管理系統110就會再次發出資料請求指令(後稱第三資料請求指令)。在發出第三資料請求指令的時候,檔案管理系統110會參照目前計算而得的資料傳輸平均速度及讀取倍數(目前為2)來決定第三資料請求指令請求的資料量。在此時,若資料傳輸平均速度下降到每秒小於等於1個預取資料區塊大小的時候,則對應的基礎請求量的數值會降為1,而最終的區塊數量的數值則會降為2;若資料傳輸平均速度上升到每秒4個預取資料區塊大小的時候,對應的基礎請求量的數值會提升為4,而最終的區塊數量的數值則會提升為8。在本實施例中假設資料傳輸平均速度保持在每秒2.7個預取資料區塊大小,因此對應的基礎請求量的數值會保持在3,而最終的區塊數量的數值會因為讀取倍數的增加而提升到6。因此,在圖5C中,因第三資料請求指令而準備用於儲存對應的請求資料就包括了預取資料區塊505~510。
由於圖5C中的預取資料區塊的數量大於2,因此根據圖2的步驟S210的作法,預取資料區塊505~510中的至少一者會被設定為預取啟動區塊。假若此時因為讀取預取資料區塊505~510中的預取啟動區塊而產生的資料請求指令(後稱第四資料請求指令)是接續在第三資料請求指令後的第一個資料請求指令,那麼根據圖6所示的讀取倍數設定流程來看,因為現有的讀取倍數2已經到達讀取倍數最大值(在之前假設為2),因此使用在第四資料請求指令的讀取倍數會仍然保持為2,進而使得第四資料請求指令獲得的請求資料最多可被儲存在預取資料區塊511~516共六個資料區塊中(如圖5D所示)。在另一個實施例中,假若第四資料請求指令與第三資料請求指令中插入一個請求不連續資料的資料請求指令(後稱第五資料請求指令),那麼根據圖6所示的讀取倍數設定流程來看,第五資料請求指令所使用的讀取倍數會因為設定流程到達步驟S612而被重新設定為1,而第四資料請求指令所使用的讀取倍數則會因為設定流程經由步驟S604、S606與S610而被設定為2。
根據上述說明可知,在進行連續讀取或讀取了被設定為預取啟動區塊的資料區塊的時候,讀取倍數的值將會逐步增大直到預設的上限。因此,即使在資料傳輸速度保持不變的狀況下也可以逐漸增加每次預取的資料量並因此降低發出預取請求的整體數量,減少終端裝置100與伺服器150雙方花費在溝通上的處理時間及傳輸頻寬。
值得一提的是,雖然在上述實施例中是以排列在中央的預取資料區塊為預取啟動區塊,但這並非不可變更的限制條件。實際上,隨著實際需求的不同,預取資料區塊502~504中的任一者都可被用來作為預取啟動區塊;或者,在另一個實施例中,檔案管理系統11可以將預取資料區塊502~504中除了第一個預取資料區塊502以外的預取資料區塊擇一設定為預取啟動區塊。同樣的,預取資料區塊505~510中的任一者也都可以被用來作為預取啟動區塊;或者,在另一個實施例中,可以將除了第一個預取資料區塊505以外的任一個預取資料區塊擇一設定為預取啟動區塊。另外,除了大範圍的指定預取資料區塊為預取啟動區塊之外,還可以縮小範圍以指定預取資料區塊中的某部分作為啟動預取操作及設定讀取倍數的觸發點。如先前於步驟S228利用設定連續讀取啟動標籤來設定預取啟動區塊時,除了可以將一整個預取資料區塊設定為預取啟動區塊(亦即,啟動預取操作及設定讀取倍數的觸發點)之外,也可以將預取資料區塊的其中一部份,例如:預取資料區塊503的首端503h、預取資料區塊503的尾端503t或者預取資料區塊504的首端504h等處指定為啟動預取操作及設定讀取倍數的觸發點。其它的預取資料區塊或其部分也可以被指定為啟動預取操作及設定讀取倍數的觸發點,不需受到說明書中特定實施例的限制。
更進一步的,在用來儲存每一次請求資料所使用的預取資料區塊中也可以不只包括一個預取啟動區塊或者一個啟動預取操作及設定讀取倍數的觸發點。以先前圖5B及圖5C所示的實施例來看,除了將預取資料區塊503設定為預取啟動區塊之外,還可以在預取資料區塊502~504的資料都儲存完成(亦即最後一個預取資料區塊儲存完成)之後進一步致能一個加速預取標籤。檔案管理系統110會在應用程式102讀取完預取資料區塊502(亦即倒數第二個預取資料區塊)的時候檢查一次加速預取標籤的狀態。當這一次檢查的時候發現加速預取標籤還沒有被致能,檔案管理系統110就知道網路傳輸的速度可能並不是十分的快,因此為了不造成更多的資料流量,檔案管理系統110就可以選擇不做任何額外的操作;相對的,當這一次檢查的時候發現加速預取標籤已經被致能,檔案管理系統110就知道網路傳輸的速度應該沒有太大問題,因此只要確認了同一份指定內容還有需要請求的部分,檔案管理系統110就可以再根據現有的參數(包括資料傳輸平均速度及讀取倍數)而發出一次預取請求。
值得一提的是,雖然在上述的說明中並沒有在發現加速預取標籤被致能時也再度設定讀取倍數,但這並非限定條件。在其它的實施例中,因為發現加速預取標籤被致能而發出預取請求之前,也可以根據圖6所示的流程或任何預設規則來設定讀取倍數。
綜合上述,本發明提出的動態改變資料預取量的方法可以根據近期的資料傳輸平均速度與使用者讀取行為是否要求連續讀取資料區塊來調整每次資料預取操作時所要求的資料量,因此可以減少在網路頻寬較低的時候造成網路壅塞的可能性。進一步的,在傳輸速度較快或就同一份指定內容多次發出請求指令的時候,還可以逐步增加每次資料預取操作所要求的資料量以降低整體發出預取請求的數量,減少伺服器與終端裝置雙方花費在處理預取請求上的時間及頻寬。
10:系統 100:終端裝置 102:應用程式 104:處理單元 106:儲存裝置 108:傳輸介面模組 110:檔案管理系統 150:伺服器 501~516:預取資料區塊 503h、504h:首端 503t:尾端 DATA:請求資料 Req:資料請求指令 S200~S230:本發明一實施例的施行步驟 S300~S304:本發明一實施例於施行步驟S206時的詳細步驟 S400~S402:本發明一實施例於施行步驟S208時的詳細步驟 S600~S6112:本發明一實施例於設定讀取倍數時的詳細步驟
圖1為根據本發明一實施例的施行動態改變資料預取量的方法的系統的架構示意圖。 圖2為根據本發明一實施例的動態改變資料預取量的方法的流程圖。 圖3為根據本發明一實施例在取得資料傳輸平均速度時的流程圖。 圖4為根據本發明一實施例在決定區塊數量時的流程圖。 圖5A~5D為根據本發明一實施例的預取資料區塊的示意圖。 圖6為根據本發明一實施例在設定讀取倍數時的流程圖。
S200~S230:本發明一實施例的施行步驟

Claims (9)

  1. 一種動態改變資料預取量的方法,其特徵在於包括下列步驟: 步驟甲:根據一資料傳輸平均速度及預先設定好的一讀取倍數決定一區塊數量; 步驟乙:發出一資料請求指令以取得一指定內容中的一請求資料,該請求資料包括的資料區塊的數量為該區塊數量;以及 步驟丙:將取得的該請求資料儲存為一預取資料,該預取資料包括數量為該區塊數量的預取資料區塊,其中,當該區塊數量為兩個以上的時候,設定該些預取資料區塊之一為一預取啟動區塊,並且在該預取啟動區塊被讀取時依照一預設規則設定該讀取倍數。
  2. 如請求項1所述的方法,其中根據該資料傳輸平均速度及預先設定好的該讀取倍數決定該區塊數量,包括: 選取一預設時間範圍內的多個時間點及獲取分別與每一該些時間點相對應的一資料傳輸速度; 平均該些資料傳輸速度以獲得該資料傳輸平均速度; 根據該資料傳輸平均速度決定一基礎請求量,其中該基礎請求量隨著資料傳輸平均速度上升而逐步增加,且該基礎請求量最少為1;以及 以該基礎請求量乘上該讀取倍數而產生該區塊數量。
  3. 如請求項1所述的方法,其中在該預取啟動區塊被讀取時依照該預設規則設定該讀取倍數,包括: 設定該讀取倍數增加1直至達到一讀取倍數最大值為止。
  4. 如請求項1所述的方法,其中在依照該預設規則設定該讀取倍數之後,更包括: 當該指定內容還有需要請求的部分時,重複步驟甲、步驟乙及步驟丙。
  5. 如請求項1所述的方法,其中該預取啟動區塊為該些預取資料區塊中排列於第二至倒數第一者其中之一。
  6. 如請求項1所述的方法,其中當該區塊數量為兩個以上的時候,更包括: 在該些預取資料區塊的倒數第一者被儲存完成時致能一加速預取標籤;以及 在讀取完該些預取資料區塊的倒數第二者時檢查該加速預取標籤一次,並在檢查發現該加速預取標籤被致能且該指定內容還有需要請求的部分時,重複步驟甲、步驟乙及步驟丙。
  7. 如請求項1所述的方法,其中在該些預取資料區塊中的前M個預取資料區塊被儲存完成之後才允許開始讀取儲存完成的該些預取資料區塊。
  8. 一種終端裝置,透過網路預取一伺服器中的資料,該終端裝置包含: 一處理單元,該處理單元適於運行至少一個應用程式以及至少一檔案管理系統,該處理單元根據一資料傳輸平均速度及預先設定好的一讀取倍數決定一區塊數量; 至少一儲存裝置,用於儲存該應用程式中的資料,以及; 至少一傳輸介面模組,用於與該伺服器透過網路連結; 其中,該終端裝置經由該至少一傳輸介面模組向該伺服器發出一資料請求指令以取得一指定內容中的一請求資料,該請求資料包括的資料區塊的數量為該區塊數量;以及該處理單元將取得的該請求資料儲存於該至少一儲存裝置中成為一預取資料,該預取資料包括數量為該區塊數量的預取資料區塊;當該區塊數量為兩個以上時,該處理單元設定該些預取資料區塊之一為一預取啟動區塊,並且在該預取啟動區塊被讀取時依照一預設規則設定該讀取倍數。
  9. 如請求項8所述的終端裝置,其中該預設規則包括:該處理單元設定該讀取倍數增加1直至達到一讀取倍數最大值為止。
TW109133991A 2020-09-30 2020-09-30 動態改變資料預取量的方法及使用其之終端裝置 TWI755878B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW109133991A TWI755878B (zh) 2020-09-30 2020-09-30 動態改變資料預取量的方法及使用其之終端裝置
US17/152,826 US11249650B1 (en) 2020-09-30 2021-01-20 Data prefetch method in dynamically adjustable amount

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW109133991A TWI755878B (zh) 2020-09-30 2020-09-30 動態改變資料預取量的方法及使用其之終端裝置

Publications (2)

Publication Number Publication Date
TWI755878B true TWI755878B (zh) 2022-02-21
TW202215233A TW202215233A (zh) 2022-04-16

Family

ID=80249534

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109133991A TWI755878B (zh) 2020-09-30 2020-09-30 動態改變資料預取量的方法及使用其之終端裝置

Country Status (2)

Country Link
US (1) US11249650B1 (zh)
TW (1) TWI755878B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7359890B1 (en) * 2002-05-08 2008-04-15 Oracle International Corporation System load based adaptive prefetch
TWI560547B (en) * 2014-10-20 2016-12-01 Via Tech Inc Dynamically updating hardware prefetch trait to exclusive or shared in multi-memory access agent
US9990296B2 (en) * 2015-07-31 2018-06-05 Oracle International Corporation Systems and methods for prefetching data
CN109195180A (zh) * 2018-07-20 2019-01-11 重庆邮电大学 一种减小移动内容中心网络中内容获取时延的解决方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5680640A (en) * 1995-09-01 1997-10-21 Emc Corporation System for migrating data by selecting a first or second transfer means based on the status of a data element map initialized to a predetermined state
KR100335500B1 (ko) * 2000-05-16 2002-05-08 윤종용 직접사상 캐쉬와 완전연관 버퍼를 포함한 캐쉬 시스템의제어 방법
US9304928B2 (en) * 2013-07-26 2016-04-05 Netapp, Inc. Systems and methods for adaptive prefetching
CN110226158B (zh) * 2017-12-29 2021-06-29 华为技术有限公司 一种数据预取方法、装置和存储设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7359890B1 (en) * 2002-05-08 2008-04-15 Oracle International Corporation System load based adaptive prefetch
TWI560547B (en) * 2014-10-20 2016-12-01 Via Tech Inc Dynamically updating hardware prefetch trait to exclusive or shared in multi-memory access agent
US9990296B2 (en) * 2015-07-31 2018-06-05 Oracle International Corporation Systems and methods for prefetching data
CN109195180A (zh) * 2018-07-20 2019-01-11 重庆邮电大学 一种减小移动内容中心网络中内容获取时延的解决方法

Also Published As

Publication number Publication date
US11249650B1 (en) 2022-02-15
TW202215233A (zh) 2022-04-16

Similar Documents

Publication Publication Date Title
US9894140B2 (en) Managing file downloads
US9967205B2 (en) Resource downloading method and apparatus
US9350826B2 (en) Pre-fetching data
CN109684228B (zh) 一种性能测试方法、装置、系统和存储介质
CN110109953A (zh) 一种数据查询方法、装置及设备
CN113381944B (zh) 系统限流方法、装置、电子设备、介质和程序产品
CN111367651B (zh) 服务限流系统、方法、装置及电子设备
CN109471843B (zh) 一种元数据缓存方法、系统及相关装置
CN113672524A (zh) 基于多级缓存的数据处理方法及系统
CN111343252A (zh) 基于http2协议的高并发数据传输方法及相关设备
TWI755878B (zh) 動態改變資料預取量的方法及使用其之終端裝置
US7668783B2 (en) System and method for providing rental software, and rental software providing server and wireless terminal thereof
US11005776B2 (en) Resource allocation using restore credits
KR101693658B1 (ko) 거래 이력 데이터를 저장하고 검색하는 방법, 업무 처리 서버 및 데이터 처리 서버
CN108228323B (zh) 基于数据本地性的Hadoop任务调度方法及装置
JP2011191856A (ja) ファイルキャッシュの管理方法、ファイルキャッシュ装置、及び、プログラム
TWI766387B (zh) 一種具延遲感知負載平衡的反向代理方法和存儲裝置
JP2002259197A (ja) アクティブコンテンツキャッシュ制御システムと、アクティブコンテンツキャッシュ制御装置及び方法と、アクティブコンテンツキャッシュ制御処理用プログラム及びそのプログラムの記録媒体
US8856378B2 (en) Fast HTTP seeking
CN114610691B (zh) 存储对象的获取方法、存储对象的获取装置、设备及介质
US11755534B2 (en) Data caching method and node based on hyper-converged infrastructure
CN108600116A (zh) 一种资源请求的处理方法和装置
CN111526098B (zh) 一种智能场景的访问流量控制方法、设备及存储介质
CN116303770A (zh) 基于区块链的数据处理方法、装置及设备
JP2005031829A (ja) ネットワークファイルサーバにおける先読み処理