本發(fā)明是有關(guān)于一種數(shù)據(jù)處理方法及裝置,且特別是有關(guān)于一種數(shù)據(jù)緩存方法及電子裝置。
背景技術(shù):
隨著云端硬盤的發(fā)展,使用者越來(lái)越習(xí)慣將文件存儲(chǔ)在云端硬盤中??墒?,通過網(wǎng)絡(luò)存取數(shù)據(jù),不可避免的無(wú)法與存取本機(jī)數(shù)據(jù)的速度相比。為了解決這個(gè)問題,市面上現(xiàn)行的云端硬盤方案,大多會(huì)提供本機(jī)緩存(Cache)的機(jī)制。此機(jī)制會(huì)將云端硬盤中的數(shù)據(jù)預(yù)先下載到本機(jī)硬盤,以提供更好的存取速度。
舉例來(lái)說(shuō),美國(guó)Dropbox公司所推出的Dropbox服務(wù)會(huì)將云端硬盤的數(shù)據(jù)全部下載到本機(jī)存儲(chǔ)空間,此設(shè)計(jì)在本機(jī)存儲(chǔ)空間有限時(shí),將會(huì)占據(jù)所有可用空間。另一方面,美國(guó)谷歌公司所推出的Google Drive服務(wù)則預(yù)設(shè)會(huì)將云端硬盤的數(shù)據(jù)全部下載到本機(jī)存儲(chǔ)空間,并讓使用者可選擇不同步部分?jǐn)?shù)據(jù)。然而,此設(shè)計(jì)將會(huì)產(chǎn)生兩個(gè)問題:(1)大部分使用者可能不知道有這個(gè)設(shè)定;(2)選擇不進(jìn)行同步的數(shù)據(jù),將無(wú)法在裝置上直接存取。
再者,美國(guó)微軟公司所推出的OneDrive服務(wù)會(huì)替所有云端硬盤中的數(shù)據(jù)下載一份元數(shù)據(jù)(metadata)到本機(jī)存儲(chǔ)空間,而不會(huì)將整份數(shù)據(jù)完整下載。此元數(shù)據(jù)已足以提供使用者進(jìn)行瀏覽,且只有在確定使用者需要特定數(shù)據(jù)內(nèi)容時(shí),才會(huì)下載數(shù)據(jù)內(nèi)容。然而,雖然存儲(chǔ)元數(shù)據(jù)所需的空間較真實(shí)數(shù)據(jù)小,但依然會(huì)占據(jù)存儲(chǔ)空間,當(dāng)數(shù)據(jù)數(shù)量太大時(shí),仍會(huì)占據(jù)裝置的可用空間。此外,此設(shè)計(jì)在下載一數(shù)據(jù)內(nèi)容后,并無(wú)清除的機(jī)制;因此,隨著裝置使用時(shí)間的增長(zhǎng),會(huì)不斷占據(jù)存儲(chǔ)空間。當(dāng)硬件廠商為了節(jié)省成本,不斷的縮小裝置上的存儲(chǔ)空間時(shí),這樣的存儲(chǔ)機(jī)制,將不再可行。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種數(shù)據(jù)緩存方法及電子裝置,通過適時(shí)地清除電子裝置上緩存的數(shù)據(jù)及元數(shù)據(jù),可節(jié)省電子裝置緩存數(shù)據(jù)所占據(jù)的存儲(chǔ)空間。
本發(fā)明提出一種數(shù)據(jù)緩存方法,適于由電子裝置緩存自遠(yuǎn)程裝置下載的數(shù)據(jù)。此方法攔截對(duì)于遠(yuǎn)程裝置的存取指令,據(jù)以自遠(yuǎn)程裝置下載存取指令所要求存取的數(shù)據(jù)或所要求存取的目錄下的所有數(shù)據(jù)及子目錄的元數(shù)據(jù)。接著,將所下載的數(shù)據(jù)或元數(shù)據(jù)緩存于電子裝置的存儲(chǔ)單元,并記錄緩存所述數(shù)據(jù)的使用時(shí)間。在預(yù)設(shè)條件下,檢查所緩存的所有數(shù)據(jù)的使用時(shí)間,據(jù)以刪除使用時(shí)間距目前時(shí)間最遠(yuǎn)的至少一個(gè)數(shù)據(jù),并檢查所刪除的各個(gè)數(shù)據(jù)所在的目錄下是否未包含任何有緩存數(shù)據(jù)的數(shù)據(jù),據(jù)以將此目錄下所有數(shù)據(jù)及子目錄的元數(shù)據(jù)刪除。
本發(fā)明另提出一種電子裝置,其包括指令攔截模塊、數(shù)據(jù)下載模塊及數(shù)據(jù)刪除模塊。指令攔截模塊攔截對(duì)于遠(yuǎn)程裝置的存取指令。數(shù)據(jù)下載模塊通過通信單元自遠(yuǎn)程裝置下載存取指令所要求存取的數(shù)據(jù)或所要求存取的目錄下的所有數(shù)據(jù)及子目錄的元數(shù)據(jù),將所下載的數(shù)據(jù)或元數(shù)據(jù)緩存于存儲(chǔ)單元,并記錄緩存所述數(shù)據(jù)的使用時(shí)間。數(shù)據(jù)刪除模塊在一預(yù)設(shè)條件下,檢查所緩存的所有數(shù)據(jù)的使用時(shí)間,據(jù)以將使用時(shí)間距目前時(shí)間最遠(yuǎn)的至少一個(gè)數(shù)據(jù)刪除,以及檢查所刪除的各個(gè)數(shù)據(jù)所在的目錄下是否未包含任何有緩存數(shù)據(jù)的數(shù)據(jù),據(jù)以將此目錄下所有數(shù)據(jù)及子目錄的元數(shù)據(jù)刪除。
本發(fā)明的數(shù)據(jù)緩存方法及電子裝置,通過攔截電子裝置使用者對(duì)于遠(yuǎn)程裝置的存取指令,據(jù)以存取本地端緩存的數(shù)據(jù)或從遠(yuǎn)程裝置下載所需的數(shù)據(jù)。而針對(duì)使用者所存取的目錄,電子裝置則會(huì)從遠(yuǎn)程下載所存取目錄下所有數(shù)據(jù)及子目錄的元數(shù)據(jù),并定時(shí)清理太久沒有使用的數(shù)據(jù)及其所屬的目錄。藉此,可節(jié)省電子裝置緩存數(shù)據(jù)所占據(jù)的存儲(chǔ)空間。
為讓本發(fā)明的上述特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉實(shí)施例,并配合附圖作詳細(xì)說(shuō)明如下。
附圖說(shuō)明
圖1是本發(fā)明一實(shí)施例所示出的電子裝置的方塊圖;
圖2是本發(fā)明一實(shí)施例所示出的電子裝置的數(shù)據(jù)緩存方法的流程圖;
圖3是本發(fā)明一實(shí)施例所示出的電子裝置的數(shù)據(jù)緩存方法的流程圖;
圖4是本發(fā)明一實(shí)施例所示出的電子裝置的數(shù)據(jù)緩存方法的流程圖。
附圖標(biāo)記說(shuō)明:
10:電子裝置;
12:通信單元;
14:存儲(chǔ)單元;
142:指令攔截模塊;
144:數(shù)據(jù)下載模塊;
146:數(shù)據(jù)刪除模塊;
16:處理單元;
S202~S208、S302~S314、S402~S414:步驟。
具體實(shí)施方式
本發(fā)明的電子裝置除了針對(duì)使用者使用過的數(shù)據(jù)緩存數(shù)據(jù),還會(huì)針對(duì)使用者使用過的目錄緩存其下所有數(shù)據(jù)及子目錄的元數(shù)據(jù)。此外,電子裝置還會(huì)記錄使用者的數(shù)據(jù)存取歷史,而針對(duì)太久沒有使用的數(shù)據(jù)或目錄,定時(shí)清除本地端的緩存數(shù)據(jù)。藉此,可有效利用有限的存儲(chǔ)空間緩存數(shù)據(jù),在空間需求與數(shù)據(jù)存取效率之間取得平衡。
圖1是本發(fā)明一實(shí)施例所示出的電子裝置的方塊圖。請(qǐng)參照?qǐng)D1,本實(shí)施例的電子裝置10例如是手機(jī)、智能手機(jī)、個(gè)人數(shù)字助理、平板計(jì)算機(jī)等可攜式電子裝置,或是筆記本計(jì)算機(jī)或臺(tái)式計(jì)算機(jī),在此不設(shè)限。電子裝置10包括通信單元12、存儲(chǔ)單元14及處理單元16,其功能分述如下:
通信單元12例如是支持電機(jī)和電子工程師協(xié)會(huì)(Institute of Electrical and Electronics Engineers,簡(jiǎn)稱IEEE)等無(wú)線通信標(biāo)準(zhǔn)的無(wú)線網(wǎng)卡或是支持有線網(wǎng)絡(luò)連結(jié)的網(wǎng)卡,其可通過無(wú)線或有線方式與外部的遠(yuǎn)程裝置(未示出)進(jìn)行網(wǎng)絡(luò)聯(lián)機(jī)。上述的遠(yuǎn)程裝置例如是位于遠(yuǎn)程的服務(wù)器或計(jì)算機(jī),或是另一支手機(jī)、智能手機(jī)、個(gè)人數(shù)字助理或平板計(jì)算機(jī)。
存儲(chǔ)裝置14可以是任何形態(tài)的固定式或可移動(dòng)式隨機(jī)存取存儲(chǔ)器(random access memory,簡(jiǎn)稱RAM)、只讀存儲(chǔ)器(read-only memory,簡(jiǎn)稱ROM)、閃存(flash memory)、硬盤(hard disk drive,簡(jiǎn)稱HDD)、固態(tài)硬盤(solid state drive,簡(jiǎn)稱SSD)或類似組件或上述組件的組合。在本范 例實(shí)施例中,存儲(chǔ)裝置14用以緩存通信單元12自遠(yuǎn)程裝置下載的數(shù)據(jù),并存儲(chǔ)指令攔截模塊142、數(shù)據(jù)下載模塊144及數(shù)據(jù)刪除模塊146的軟件程序。本范例實(shí)施例中所述的存儲(chǔ)裝置14并未限制是單一存儲(chǔ)組件,上述的各軟件模塊也可以分開存儲(chǔ)在不同的兩個(gè)或兩個(gè)以上的相同或不同型態(tài)的存儲(chǔ)組件中。
處理單元16耦接至通信單元12與存儲(chǔ)單元14。處理單元16可以是具有單核或多核的中央處理單元(Central Processing Unit,簡(jiǎn)稱CPU),或是其它可程序化的一般用途或特殊用途的微處理器(Microprocessor)、數(shù)字信號(hào)處理器(Digital Signal Processor,簡(jiǎn)稱DSP)、可編程控制器、特殊應(yīng)用集成電路(Application Specific Integrated Circuit,簡(jiǎn)稱ASIC)或其它類似組件或上述組件的組合。在本范例實(shí)施例中,處理單元16用以存取并執(zhí)行上述存儲(chǔ)裝置14中所記錄的模塊,藉以實(shí)現(xiàn)本發(fā)明的電子裝置10的數(shù)據(jù)緩存方法。本實(shí)施例的處理單元16并未限制是單一處理組件,也可以是由兩個(gè)或兩個(gè)以上的處理組件共同執(zhí)行。
圖2是本發(fā)明一實(shí)施例所示出的電子裝置的數(shù)據(jù)緩存方法的流程圖。請(qǐng)同時(shí)參照?qǐng)D1與圖2,本實(shí)施例的方法適用于上述的電子裝置10,以下即搭配圖1中電子裝置10的各項(xiàng)組件,說(shuō)明本實(shí)施例方法的詳細(xì)流程。
首先,由指令攔截模塊142攔截電子裝置10的使用者對(duì)于遠(yuǎn)程裝置(未示出)的存取指令,而由數(shù)據(jù)下載模塊144據(jù)以自遠(yuǎn)程裝置下載存取指令所要求存取的數(shù)據(jù),或下載存取指令所要求存取的目錄下的所有數(shù)據(jù)及子目錄的元數(shù)據(jù)(步驟S202)。上述的元數(shù)據(jù)例如包括用以描述數(shù)據(jù)、目錄等數(shù)據(jù)屬性(property)的信息,可作為電子裝置10指示存儲(chǔ)位置、顯示歷史數(shù)據(jù)、尋找資源及記錄數(shù)據(jù)的依據(jù)。其中,當(dāng)使用者使用電子裝置10上網(wǎng)瀏覽其存放在遠(yuǎn)程裝置上的數(shù)據(jù)或目錄時(shí),數(shù)據(jù)下載模塊144即可通過下載所欲存取數(shù)據(jù)的元數(shù)據(jù),從而提供遠(yuǎn)程裝置上的數(shù)據(jù)或目錄的相關(guān)信息給使用者,幫助使用者了解其所瀏覽的數(shù)據(jù)或目錄的相關(guān)信息。
接著,數(shù)據(jù)下載模塊144會(huì)將所下載的數(shù)據(jù)或元數(shù)據(jù)緩存于電子裝置10的存儲(chǔ)單元14,并在存儲(chǔ)單元14中記錄其緩存所下載數(shù)據(jù)的使用時(shí)間(步驟S204)。此使用時(shí)間可作為使用者使用各個(gè)數(shù)據(jù)的歷史數(shù)據(jù),而可用以作為后續(xù)電子裝置10清理數(shù)據(jù)的依據(jù)。
需說(shuō)明的是,在本實(shí)施例中,電子裝置10會(huì)將使用者曾經(jīng)瀏覽過的數(shù)據(jù)或所瀏覽目錄的元數(shù)據(jù)緩存在存儲(chǔ)單元14中,以便日后使用者再次瀏覽相同數(shù)據(jù)時(shí),能夠直接存取緩存數(shù)據(jù),從而加快存取速度。通過上述緩存機(jī)制,當(dāng)指令攔截模塊142攔截到存取指令時(shí),數(shù)據(jù)下載模塊144即會(huì)先檢查存儲(chǔ)單元14中是否已有緩存存取指令所欲存取的數(shù)據(jù),以決定是要直接從存儲(chǔ)單元14讀取所需數(shù)據(jù)或是另外從遠(yuǎn)程裝置下載所需數(shù)據(jù)。同時(shí),數(shù)據(jù)下載模塊14會(huì)在存儲(chǔ)單元14中記錄其數(shù)據(jù)的使用時(shí)間。此使用時(shí)間可作為使用者使用各個(gè)數(shù)據(jù)的歷史數(shù)據(jù),而可用以作為后續(xù)電子裝置10清理數(shù)據(jù)的依據(jù)。
舉例來(lái)說(shuō),圖3是本發(fā)明一實(shí)施例所示出的電子裝置的數(shù)據(jù)緩存方法的流程圖。請(qǐng)同時(shí)參照?qǐng)D1與圖3,本實(shí)施例的方法適用于上述的電子裝置10。其中,指令攔截模塊142攔截對(duì)于遠(yuǎn)程裝置的存取指令(步驟S302)。若所攔截到的存取指令是要存取遠(yuǎn)程裝置的數(shù)據(jù),則在指令攔截模塊142攔截到存取指令時(shí),數(shù)據(jù)下載模塊144會(huì)先判斷存儲(chǔ)單元14中是否已有緩存存取指令所要求存取的數(shù)據(jù)(步驟S304)。其中,若數(shù)據(jù)下載模塊144發(fā)現(xiàn)存儲(chǔ)單元14中已有緩存此數(shù)據(jù),則會(huì)直接讀取存儲(chǔ)單元14以取得此數(shù)據(jù),并更新此數(shù)據(jù)的使用時(shí)間(步驟S306);反之,若數(shù)據(jù)下載模塊144發(fā)現(xiàn)存儲(chǔ)單元14中并未緩存此數(shù)據(jù),則會(huì)轉(zhuǎn)而利用通信單元12通過網(wǎng)絡(luò)自遠(yuǎn)程裝置下載此數(shù)據(jù)(步驟S308),并將所下載的數(shù)據(jù)緩存于存儲(chǔ)單元14(步驟S310)。最后,數(shù)據(jù)下載模塊144即可提供存取指令所要求存取的數(shù)據(jù)(步驟S312),例如開啟數(shù)據(jù)或顯示目錄。通過本實(shí)施例的數(shù)據(jù)緩存方法,電子裝置10即可有效利用存儲(chǔ)單元14的空間,提升數(shù)據(jù)的存取效率。
另一方面,圖4是本發(fā)明一實(shí)施例所示出的電子裝置的數(shù)據(jù)緩存方法的流程圖。請(qǐng)同時(shí)參照?qǐng)D1與圖4,本實(shí)施例的方法適用于上述的電子裝置10。其中,指令攔截模塊142攔截對(duì)于遠(yuǎn)程裝置的存取指令(步驟S302)。若所攔截到的存取指令是要存取數(shù)據(jù)的目錄,則在指令攔截模塊142攔截到存取指令(步驟S402)時(shí),數(shù)據(jù)下載模塊144會(huì)先判斷存儲(chǔ)單元14中是否已有緩存存取指令所要求存取的目錄下的所有數(shù)據(jù)及子目錄的元數(shù)據(jù)(步驟S404)。其中,若數(shù)據(jù)下載模塊144發(fā)現(xiàn)存儲(chǔ)單元14中已有緩存此元數(shù)據(jù),數(shù)據(jù)下載模塊144則會(huì)直接讀取存儲(chǔ)單元14以取得此元數(shù)據(jù)(步驟S406);反之,若數(shù)據(jù)下載模塊144發(fā)現(xiàn)存儲(chǔ)單元14中并未緩存此元數(shù)據(jù),則會(huì)轉(zhuǎn)而 利用通信單元12通過網(wǎng)絡(luò)自遠(yuǎn)程裝置下載此元數(shù)據(jù)(步驟S408),并將所下載的元數(shù)據(jù)緩存于存儲(chǔ)單元14(步驟S410)。最后,數(shù)據(jù)下載模塊144即可提供存取指令所要求存取的元數(shù)據(jù)(步驟S412),例如顯示數(shù)據(jù)或目錄的相關(guān)信息。通過本實(shí)施例的數(shù)據(jù)緩存方法,電子裝置10即可有效利用存儲(chǔ)單元14的空間,提升數(shù)據(jù)的存取效率。
回到圖2的流程,在數(shù)據(jù)下載模塊144將所下載的數(shù)據(jù)或元數(shù)據(jù)緩存于電子裝置10的存儲(chǔ)單元14后,數(shù)據(jù)刪除模塊146將在預(yù)設(shè)條件下,檢查存儲(chǔ)單元14所緩存的所有數(shù)據(jù)的使用時(shí)間,據(jù)以將使用時(shí)間距目前時(shí)間最遠(yuǎn)的至少一個(gè)數(shù)據(jù)刪除(步驟S206)。詳言之,在一實(shí)施例中,數(shù)據(jù)刪除模塊146會(huì)定時(shí)啟動(dòng)清除流程,例如在經(jīng)過一預(yù)設(shè)時(shí)間(例如一周、一個(gè)月或其它時(shí)間)后,即自動(dòng)清除存儲(chǔ)單元14中使用者長(zhǎng)時(shí)間未使用的數(shù)據(jù)的緩存數(shù)據(jù)。而在另一實(shí)施例中,數(shù)據(jù)刪除模塊146則會(huì)在存儲(chǔ)單元14中緩存數(shù)據(jù)所占空間超出一預(yù)設(shè)空間時(shí),啟動(dòng)上述的清除流程。上述的預(yù)設(shè)條件僅為舉例說(shuō)明,本領(lǐng)域技術(shù)人員可視實(shí)際需要,設(shè)定不同的條件來(lái)啟動(dòng)上述的清除流程,在此不設(shè)限。此外,在上述步驟中,數(shù)據(jù)刪除模塊146只會(huì)將數(shù)據(jù)刪除,但會(huì)留下該數(shù)據(jù)的元數(shù)據(jù),藉此提供使用者在離線(即,未連結(jié)網(wǎng)絡(luò))狀況下仍可瀏覽數(shù)據(jù)相關(guān)信息。
在刪除數(shù)據(jù)之后,數(shù)據(jù)刪除模塊146還會(huì)進(jìn)一步檢查所刪除的各個(gè)數(shù)據(jù)所在的目錄下是否未包含任何有緩存數(shù)據(jù)的數(shù)據(jù),據(jù)以將此目錄下所有數(shù)據(jù)及子目錄的元數(shù)據(jù)刪除(步驟S208)。詳言之,當(dāng)使用者長(zhǎng)時(shí)間未使用某個(gè)數(shù)據(jù)時(shí),即代表其要存取該數(shù)據(jù)所在目錄的機(jī)會(huì)也會(huì)較低,因此數(shù)據(jù)刪除模塊146在每刪除一個(gè)數(shù)據(jù)的緩存數(shù)據(jù)之后,還會(huì)檢查這個(gè)數(shù)據(jù)所在目錄中是否還有其它有緩存數(shù)據(jù)的數(shù)據(jù)。若此目錄未包含任何有緩存數(shù)據(jù)的數(shù)據(jù),即可判斷使用者將來(lái)存取這個(gè)目錄的機(jī)會(huì)較低,而將此目錄下所有數(shù)據(jù)及子目錄的元數(shù)據(jù)刪除,以節(jié)省存儲(chǔ)單元14的存儲(chǔ)空間。
需說(shuō)明的是,對(duì)于采用樹狀結(jié)構(gòu)的目錄結(jié)構(gòu),每刪除一個(gè)數(shù)據(jù)的緩存數(shù)據(jù),除了可能會(huì)造成其所屬目錄未包含任何有緩存數(shù)據(jù)的數(shù)據(jù),也有可能會(huì)造成此目錄的上層目錄也未包含任何有緩存數(shù)據(jù)的數(shù)據(jù)。據(jù)此,數(shù)據(jù)刪除模塊146在上述刪除目錄下所有數(shù)據(jù)及子目錄的元數(shù)據(jù)的步驟之后,還會(huì)再遞歸檢查此目錄的上層目錄下是否未包含任何有緩存數(shù)據(jù)的數(shù)據(jù),并據(jù)以將此 上層目錄下所有數(shù)據(jù)及子目錄的元數(shù)據(jù)刪除。數(shù)據(jù)刪除模塊146會(huì)持續(xù)往上層目錄逐層目錄進(jìn)行檢查,直到發(fā)現(xiàn)上層目錄有包含有緩存數(shù)據(jù)的數(shù)據(jù)為止。
通過上述的數(shù)據(jù)緩存方法,本發(fā)明實(shí)施例的電子裝置即能夠根據(jù)使用者存取數(shù)據(jù)或目錄的歷史記錄,適時(shí)地將緩存的數(shù)據(jù)或目錄的元數(shù)據(jù)刪除,而可有效地利用存儲(chǔ)空間,提升數(shù)據(jù)的存取效率。
綜上所述,本發(fā)明的電子裝置及其數(shù)據(jù)緩存方法是采用因應(yīng)請(qǐng)求(on demand)的方式下載存放在云端硬盤的數(shù)據(jù),使得僅具有小容量存儲(chǔ)空間的電子裝置在使用云端硬盤上大量數(shù)據(jù)的同時(shí),也能夠保有數(shù)據(jù)的存取效率。此外,本發(fā)明根據(jù)數(shù)據(jù)的使用記錄,定時(shí)清除緩存的數(shù)據(jù)或元數(shù)據(jù),而可有效利用電子裝置的存儲(chǔ)空間,在空間需求與數(shù)據(jù)存取效率之間取得平衡
最后應(yīng)說(shuō)明的是:以上各實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。