本申請涉及信息處理技術(shù)領(lǐng)域,特別涉及一種日志的處理方法及裝置。
背景技術(shù):
業(yè)務(wù)系統(tǒng)可以在用戶操作日志中記錄用戶對系統(tǒng)文件的所有操作。一般地,業(yè)務(wù)系統(tǒng)需要將用戶對文件的變動同步到文件信息數(shù)據(jù)庫中,此時,系統(tǒng)可以對用戶操作日志進(jìn)行分析、處理,將各個用戶對文件的變動信息同步至文件信息數(shù)據(jù)庫中。文件同步對實時性要求較高,因此,如何提高用戶操作日志的分析、處理性能是實現(xiàn)文件同步的關(guān)鍵步驟。
目前常用的處理方法是按順序逐條處理用戶操作日志。但是用戶在多個終端進(jìn)行操作,生成大量的操作日志,按照上述順序處理的方式效率比較低下。針對上述問題,現(xiàn)有技術(shù)中,還可以啟動多個處理線程對所述用戶操作日志進(jìn)行并行處理。但是,某些數(shù)據(jù)存儲結(jié)構(gòu)增加并行處理的難度。例如,當(dāng)數(shù)據(jù)存儲結(jié)構(gòu)為按用戶組織的目錄結(jié)構(gòu)時,不同用戶的數(shù)據(jù)存儲在不用的目錄中。但是,用戶操作日志是全局的,一般是不區(qū)分用戶的,用戶在不同目錄下的操作記錄被按照時間順序記錄在用戶操作日志中。另外,用戶的文件操作具有時間依賴性,例如,用戶先創(chuàng)建目錄1(操作a),在以后的某個時刻又刪除了目錄1(操作b),那么,在處理操作a與操作b時,需要按順序處理,否則將會導(dǎo)致錯誤的數(shù)據(jù)同步。
現(xiàn)有技術(shù)中,數(shù)據(jù)存儲結(jié)構(gòu)等因素可能導(dǎo)致在處理用戶操作日志過程中,出現(xiàn)邏輯順序的錯誤,影響最終的文件同步結(jié)果。
技術(shù)實現(xiàn)要素:
本申請實施例的目的在于提供一種日志的處理方法及裝置,可以提高降低多線程處理過程中出現(xiàn)邏輯順序錯誤的概率,提高數(shù)據(jù)同步的準(zhǔn)確性。
本申請實施例提供的一種日志的處理方法及裝置具體是這樣實現(xiàn)的:
一種日志的處理方法,所述方法包括:
獲取日志中的用戶操作記錄;
從所述用戶操作記錄中解析出用戶名信息;
獲取與所述用戶名信息相關(guān)聯(lián)的處理線程;
調(diào)度所述處理線程處理與所述用戶名信息對應(yīng)的用戶操作記錄。
可選的,在本發(fā)明的一個實施例中,所述獲取與所述用戶名信息相關(guān)聯(lián)的處理線程包括:
當(dāng)已有的處理線程中不存在與所述用戶名相關(guān)聯(lián)的處理線程時,構(gòu)建新的處理線程,并將所述新的處理線程與所述用戶名信息相關(guān)聯(lián)。
可選的,在本發(fā)明的一個實施例中,所述方法還包括:
將與所述用戶名信息對應(yīng)的用戶操作記錄添加到所述處理線程的待處理記錄集合中,基于解析出的所述用戶操作記錄中的用戶操作時刻,將所述用戶操作記錄插入所述記錄集合中,所述待處理記錄集合被設(shè)置成按照用戶操作時刻的先后順序排列;
相應(yīng)地,所述調(diào)度所述處理線程處理與所述用戶名信息對應(yīng)的用戶操作記錄包括:
調(diào)度所述處理線程按照排序后的順序處理與所述用戶名信息對應(yīng)的用戶操作記錄。
可選的,在本發(fā)明的一個實施例中,所述調(diào)度所述處理線程處理所述用戶操作記錄包括:
調(diào)度所述處理線程從所述用戶操作記錄中解析出用戶操作類型以及文件數(shù)據(jù)信息;
調(diào)度所述處理線程通過數(shù)據(jù)庫接口,根據(jù)所述用戶操作類型,將所述文件數(shù)據(jù)信息存儲至數(shù)據(jù)庫中。
可選的,在本發(fā)明的一個實施例中,所述當(dāng)已有的處理線程中不存在與所述用戶名相關(guān)聯(lián)的處理線程時,構(gòu)建新的處理線程,并將所述新的處理線程與所述用戶名信息相關(guān)聯(lián)包括:
當(dāng)已有的處理線程中不存在與所述用戶名相關(guān)聯(lián)的處理線程時,判斷所述已有的處理線程的數(shù)量是否大于預(yù)設(shè)閾值;
若所述判斷的結(jié)果為是,則構(gòu)建新的處理線程,并將所述新的處理線程與所述用戶名信息相關(guān)聯(lián)。
可選的,在本發(fā)明的一個實施例中,所述方法還包括:
獲取所述處理線程已經(jīng)處理完成的用戶操作記錄;
清除所述處理線程已經(jīng)處理完成的用戶操作記錄。
一種日志的處理裝置,所述裝置包括:
操作記錄獲取單元,用于獲取日志中的用戶操作記錄;
用戶名解析單元,用于從所述用戶操作記錄中解析出用戶名信息;
線程獲取單元,用于獲取與所述用戶名信息相關(guān)聯(lián)的處理線程;
線程調(diào)度單元,用于調(diào)度所述處理線程處理與所述用戶名信息對應(yīng)的用戶操作記錄。
可選的,在本發(fā)明的一個實施例中,所述線程獲取單元還用于:
當(dāng)已有的處理線程中不存在與所述用戶名相關(guān)聯(lián)的處理線程時,構(gòu)建新的處理線程,并將所述新的處理線程與所述用戶名信息相關(guān)聯(lián)。
可選的,在本發(fā)明的一個實施例中,所述裝置還包括:
記錄排序單元,用于將與所述用戶名信息對應(yīng)的用戶操作記錄添加到所述處理線程的待處理記錄集合中,基于解析出的所述用戶操作記錄中的用戶操作時刻,將所述用戶操作記錄插入所述記錄集合中,所述待處理記錄集合被設(shè)置成按照用戶操作時刻的先后順序排列;
相應(yīng)地,所述線程調(diào)度單元還用于:調(diào)度所述處理線程按照排序后的順序處理與所述用戶名信息對應(yīng)的用戶操作記錄。
可選的,在本發(fā)明的一個實施例中,所述線程調(diào)度單元包括:
文件數(shù)據(jù)解析單元,用于調(diào)度所述處理線程從所述用戶操作記錄中解析出用戶操作類型以及文件數(shù)據(jù)信息;
數(shù)據(jù)存儲單元,用于調(diào)度所述處理線程通過數(shù)據(jù)庫接口,根據(jù)所述用戶操作類型,將所述文件數(shù)據(jù)信息存儲至數(shù)據(jù)庫中。
可選的,在本發(fā)明的一個實施例中,所述線程獲取單元包括:
線程數(shù)量判斷單元,用于當(dāng)已有的處理線程中不存在與所述用戶名相關(guān)聯(lián)的處理線程時,判斷所述已有的處理線程的數(shù)量是否大于預(yù)設(shè)閾值;
線程構(gòu)建單元,用于若所述判斷的結(jié)果為是,則構(gòu)建新的處理線程,并將所述新的處理線程與所述用戶名信息相關(guān)聯(lián)。
可選的,在本發(fā)明的一個實施例中,所述裝置還包括:
已處理記錄獲取單元,用于獲取所述處理線程已經(jīng)處理完成的用戶操作記錄;
記錄清除單元,用于清除所述處理線程已經(jīng)處理完成的用戶操作記錄。
本申請?zhí)峁┑囊环N日志的處理方法及裝置,可以將用戶名信息與處理線程進(jìn)行關(guān)聯(lián),并將用戶操作記錄分配給與用戶名相關(guān)聯(lián)的線程進(jìn)行處理,可以通過調(diào)度一個處理線程處理一個用戶名對應(yīng)的所有用戶處理記錄。也可以理解為將一個用戶名對應(yīng)的用戶操作記錄分成一組進(jìn)行處理,與現(xiàn)有技術(shù)中不對用戶操作記錄進(jìn)行分組處理的方式相比,本申請的實施方式不僅可以保證多線程處理的高效性,還可以大大降低多線程處理過程中出現(xiàn)邏輯順序錯誤的概率,提高數(shù)據(jù)同步的準(zhǔn)確性。
附圖說明
為了更清楚地說明本申請實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請中記載的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本申請?zhí)峁┑娜罩咎幚矸椒ǖ囊环N實施例的方法流程示意圖;
圖2是本申請?zhí)峁┑恼{(diào)度處理線程處理方法的一種實施例的方法流程圖;
圖3是本發(fā)明提供的日志處理裝置的一種實施例的模塊結(jié)構(gòu)示意圖;
圖4是本發(fā)明提供的日志處理裝置的另一種實施例的模塊結(jié)構(gòu)示意圖;
圖5是本發(fā)明提供的線程調(diào)度單元的一種實施例的方法流程圖;
圖6是本發(fā)明提供的線程獲取單元的一種實施例的方法流程圖;
圖7是本發(fā)明提供的日志處理裝置的另一種實施例的模塊結(jié)構(gòu)示意圖。
具體實施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本申請中的技術(shù)方案,下面將結(jié)合本申請實施例中的附圖,對本申請實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├绢I(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應(yīng)當(dāng)屬于本申請保護(hù)的范圍。
下面結(jié)合附圖對本申請所述的日志處理方法進(jìn)行詳細(xì)的說明。圖1是本申請?zhí)峁┑娜罩咎幚矸椒ǖ囊环N實施例的方法流程示意圖。雖然本申請?zhí)峁┝巳缦率鰧嵤├蚋綀D所示的方法操作步驟,但基于常規(guī)或者無需創(chuàng)造性的勞動在所述方法中可以包括更多或者更少的操作步驟。在邏輯性上不存在必要因果關(guān)系的步驟中,這些步驟的執(zhí)行順序不限于本申請實施例提供的執(zhí)行順序。所述方法在實際中的日志處理過程中或者裝置執(zhí)行時,可以按照實施例或者附圖所示的方法順序執(zhí)行或者并行執(zhí)行(例如并行處理器或者多線程處理的環(huán)境)。
具體的本申請?zhí)峁┑囊环N日志處理方法的一種實施例如圖1所示,所述方法可以包括:
S1:獲取日志中的用戶操作記錄。
本實施例中的日志可以為用戶操作日志,所述用戶操作日志可以記錄用戶對系統(tǒng)文件的所有操作。所述用戶操作日志中至少包含一條用戶操作記錄,所述用戶操作記錄可以包括用戶名信息、用戶操作時間、用戶操作類型、文件數(shù)據(jù)信息等數(shù)據(jù)。本實施例中,所述用戶操作日志可以從存儲系統(tǒng)獲取,在一個具體的場景中,Luster云存儲的數(shù)據(jù)存儲系統(tǒng)為Lustre文件系統(tǒng),每當(dāng)用戶在Luster云存儲客戶端進(jìn)行一次操作,Luster云存儲的數(shù)據(jù)存儲系統(tǒng)都會基于所述用戶操作,生成用戶操作記錄,將預(yù)設(shè)時間段內(nèi)的用戶操作記錄集合起來,作為用戶操作日志。
本實施例的實施主體可以為數(shù)據(jù)同步系統(tǒng),所述數(shù)據(jù)同步系統(tǒng)用于從用戶操作日志中解析出由于用戶操作引起的文件變動,如創(chuàng)建文件、刪除文件、更改文件等,并將所述文件變動同步至后臺數(shù)據(jù)庫中,實現(xiàn)存儲系統(tǒng)的文件與數(shù)據(jù)庫的文件的不同。在上述舉例中,數(shù)據(jù)同步系統(tǒng)可以從Lustre文件系統(tǒng)中讀取Luster用戶操作日志,通過解析Luster用戶操作日志實現(xiàn)Lustre文件系統(tǒng)與數(shù)據(jù)庫中的數(shù)據(jù)同步。
S2:從所述用戶操作記錄中解析出用戶名信息。
本實施例中,所述數(shù)據(jù)同步系統(tǒng)可以從所述用戶操作記錄中解析出用戶名信息,所述用戶操作記錄中往往包含多種信息,并且所述用戶操作記錄的存儲結(jié)構(gòu)一般是基于目錄格式的,無法直接從用戶操作記錄中讀取出相關(guān)信息。本實施例中,可以采用日志解析工具如解析函數(shù)等解析所述用戶操作記錄,從所述用戶操作記錄中解析出用戶名信息。
S3:獲取與所述用戶名信息相關(guān)聯(lián)的處理線程。
本實施例中,所述數(shù)據(jù)同步系統(tǒng)可以獲取與所述用戶名信息相關(guān)聯(lián)的處理線程。在本申請的一個實施例中,可以從已有的處理線程搜索是否存在與所述用戶名信息相關(guān)聯(lián)的處理線程,若存在,則調(diào)度所述處理線程。在本申請的另一個實施例中,所述獲取與所述用戶名信息相關(guān)聯(lián)的處理線程可以包括:
當(dāng)已有的處理線程中不存在與所述用戶名相關(guān)聯(lián)的處理線程時,構(gòu)建新的處理線程,并將所述新的處理線程與所述用戶名信息相關(guān)聯(lián)。
在本申請的一個實施例中,所述用戶名信息與所述處理線程具有一對一的關(guān)聯(lián)關(guān)系。所述數(shù)據(jù)同步系統(tǒng)可以構(gòu)建處理線程,并調(diào)度所述處理線程處理與所述用戶名信息對應(yīng)的用戶操作記錄。本實施例中,所述數(shù)據(jù)同步系統(tǒng)可以通過數(shù)據(jù)表的方式關(guān)聯(lián)存儲用戶名信息和處理線程,數(shù)據(jù)表中的一列可以存儲用戶名信息,另一列可以存儲處理線程,相關(guān)聯(lián)的用戶名信息與處理線程可以處于同一行。當(dāng)然,用戶名信息與處理線程關(guān)聯(lián)的方式不限于上述舉例,所屬領(lǐng)域技術(shù)人員在本申請技術(shù)精髓的啟示下,還可能做出其它變更,但只要其實現(xiàn)的功能和效果與本申請相同或相似,均應(yīng)涵蓋于本申請保護(hù)范圍內(nèi)。
在一個具體的場景中,用戶Luna是Luster云存儲的注冊用戶,用戶名設(shè)置為LUNA2016。數(shù)據(jù)同步系統(tǒng)根據(jù)獲取的用戶操作記錄A,解析得到Luna的用戶名LUNA2016,根據(jù)所述用戶名LUNA2016,搜索數(shù)據(jù)同步系統(tǒng)中已有的處理線程,發(fā)現(xiàn)已經(jīng)存在與所述用戶名相關(guān)聯(lián)的處理線程LUNA2016_thread,則可以調(diào)度處理線程LUNA2016_thread處理用戶操作記錄A。
在本申請的另一個實施例中,所述當(dāng)已有的處理線程中不存在與所述用戶名相關(guān)聯(lián)的處理線程時,構(gòu)建新的處理線程,并將所述新的處理線程與所述用戶名信息相關(guān)聯(lián)可以包括:
當(dāng)已有的處理線程中不存在與所述用戶名相關(guān)聯(lián)的處理線程時,判斷所述已有的處理線程的數(shù)量是否大于預(yù)設(shè)閾值;
若所述判斷的結(jié)果為是,則構(gòu)建新的處理線程,并將所述新的處理線程與所述用戶名信息相關(guān)聯(lián)。
本實施例中,當(dāng)已有的處理線程中不存在與所述用戶名相關(guān)聯(lián)的處理線程時,可以判斷已有的處理線程的數(shù)量是否超過預(yù)設(shè)閾值,當(dāng)判斷結(jié)果為所述處理線程的數(shù)量不大于所述預(yù)設(shè)閾值時,可以構(gòu)建新的處理線程。數(shù)據(jù)同步系統(tǒng)中不可能無限制地增加線程個數(shù),線程數(shù)量越多,占用系統(tǒng)內(nèi)存也越多,為了合理分配系統(tǒng)的內(nèi)存,可以控制處理線程的上限為預(yù)設(shè)閾值,當(dāng)處理線程的數(shù)量超過所述預(yù)設(shè)閾值時,則可以停止構(gòu)建新的處理線程。
本實施例中,可以將用戶名信息與處理線程進(jìn)行關(guān)聯(lián),并調(diào)度一個處理線程處理一個用戶名對應(yīng)的所有用戶處理記錄,也可以理解為將一個用戶名對應(yīng)的用戶操作記錄分成一組進(jìn)行處理,與現(xiàn)有技術(shù)中,不對用戶操作記錄進(jìn)行分組處理的方式相比,本申請的實施方式可以大大降低多線程處理過程中出現(xiàn)邏輯順序錯誤的概率。
S4:調(diào)度所述處理線程處理與所述用戶名信息對應(yīng)的用戶操作記錄。
本實施例中,所述數(shù)據(jù)同步系統(tǒng)可以調(diào)度所述處理線程處理與所述用戶名信息對應(yīng)的用戶操作記錄。在本申請的一個實施例中,圖2是本申請?zhí)峁┑恼{(diào)度處理線程處理方法的一種實施例的方法流程圖,如圖2所示,所述調(diào)度所述處理線程處理所述用戶操作記錄可以包括:
S21:調(diào)度所述處理線程從所述用戶操作記錄中解析出用戶操作類型以及文件數(shù)據(jù)信息;
S22:調(diào)度所述處理線程通過數(shù)據(jù)庫接口,根據(jù)所述用戶操作類型,將所述文件數(shù)據(jù)信息存儲至數(shù)據(jù)庫中。
本實施例中,所述數(shù)據(jù)同步系統(tǒng)可以處理線程進(jìn)行操作,具體的操作可以包括從所述用戶操作記錄中解析出用戶操作類型以及文件數(shù)據(jù)信息,所述用戶操作類型例如創(chuàng)建文件、刪除文件、修改文件等,所述文件數(shù)據(jù)信息可以包括用戶操作文件的訪問路徑、變動內(nèi)容等。在從所述用戶操作記錄中解析出用戶操作類型以及文件數(shù)據(jù)信息之后,所述數(shù)據(jù)同步系統(tǒng)還可以調(diào)度所述處理線程通過數(shù)據(jù)庫接口,根據(jù)所述用戶操作類型,將所述文件數(shù)據(jù)信息存儲至數(shù)據(jù)庫中。通過數(shù)據(jù)同步系統(tǒng)與所述數(shù)據(jù)庫之間的接口,所述數(shù)據(jù)同步系統(tǒng)可以根據(jù)所述用戶操作類型,將所述文件數(shù)據(jù)信息存儲至所述數(shù)據(jù)中,實現(xiàn)存儲系統(tǒng)與所述數(shù)據(jù)庫之間的數(shù)據(jù)同步。
在本申請的一個實施例中,所述方法還可以包括:
將與所述用戶名信息對應(yīng)的用戶操作日志記錄添加到所述處理線程的待處理記錄集合中,基于解析出的所述用戶操作記錄中的用戶操作時刻,將所述用戶操作日志記錄插入所述記錄集合中,所述待處理記錄集合被設(shè)置成按照用戶操作時刻的先后順序排列;
相應(yīng)地,所述調(diào)度所述處理線程處理與所述用戶名信息對應(yīng)的用戶操作記錄包括:
調(diào)度所述處理線程按照排序后的順序處理與所述用戶名信息對應(yīng)的用戶操作記錄。
在本實施例中,所述實施主體可以為所述數(shù)據(jù)處理系統(tǒng),當(dāng)然還可以為所述數(shù)據(jù)操作系統(tǒng)調(diào)度所述處理線程進(jìn)行的操作。本實施例中,可以獲取所述處理線程的待處理記錄集合,基于解析得到的所述用戶操作記錄中的用戶操作時刻,將所述用戶操作記錄插入所述記錄集合中,所述待處理記錄集合被設(shè)置成按照用戶操作時刻的先后順序排列。
本實施例中,將所述待處理記錄集合中的用戶處理記錄按照時間先后順序排列后,可以保證線程的處理順序與用戶的操作順序相匹配,一方面可以完全避免現(xiàn)有技術(shù)中出現(xiàn)邏輯順序錯誤的情況,另一方面可以保證數(shù)據(jù)同步結(jié)果的正確性。
在本申請的另一個實施例中,所述方法還包括:
SS1:獲取所述處理線程已經(jīng)處理完成的用戶操作記錄;
SS2:清除所述處理線程已經(jīng)處理完成的用戶操作記錄。
本實施例中,已經(jīng)處理完成的用戶操作記錄如果不及時清理,不僅占用存儲系統(tǒng)的存儲空間,還延長數(shù)據(jù)同步系統(tǒng)獲取用戶操作記錄的時間,降低處理效率。本實施例中,可以獲取已經(jīng)被處理完成的用戶操作記錄,并清除所述用戶操作記錄。本實施例中,可以判斷所述用戶操作記錄是否被所述處理線程解析出用戶操作類型以及文件數(shù)據(jù)信息,若判斷的結(jié)果為是,則可以確定所述用戶操作記錄已經(jīng)被處理完成,進(jìn)而清除所述用戶操作記錄。清除已經(jīng)被處理完成的用戶操作記錄,不僅可以提升存儲系統(tǒng)的空間利用率,還可以提高數(shù)據(jù)同步系統(tǒng)讀取用戶操作記錄的處理效率。
本申請?zhí)峁┑囊环N日志的處理方法,可以將用戶名信息與處理線程進(jìn)行關(guān)聯(lián),并將用戶操作記錄分配給與用戶名相關(guān)聯(lián)的線程進(jìn)行處理,可以通過調(diào)度一個處理線程處理一個用戶名對應(yīng)的所有用戶處理記錄。也可以理解為將一個用戶名對應(yīng)的用戶操作記錄分成一組進(jìn)行處理,與現(xiàn)有技術(shù)中不對用戶操作記錄進(jìn)行分組處理的方式相比,本申請的實施方式可以在保證多線程處理高效性的前提下,大大降低多線程處理過程中出現(xiàn)邏輯順序錯誤的概率,提高數(shù)據(jù)同步的準(zhǔn)確性。
本發(fā)明另一方面還提供一種日志的處理裝置,圖3是本發(fā)明提供的日志處理裝置的一種實施例的模塊結(jié)構(gòu)示意圖,如圖3所示,所述裝置30可以包括:
操作記錄獲取單元31,用于獲取日志中的用戶操作記錄;
用戶名解析單元32,用于從所述用戶操作記錄中解析出用戶名信息;
線程獲取單元33,用于獲取與所述用戶名信息相關(guān)聯(lián)的處理線程;
線程調(diào)度單元34,用于調(diào)度所述處理線程處理與所述用戶名信息對應(yīng)的用戶操作記錄。
本申請?zhí)峁┑囊环N日志的處理裝置,可以將用戶名信息與處理線程進(jìn)行關(guān)聯(lián),并將用戶操作記錄分配給與用戶名相關(guān)聯(lián)的線程進(jìn)行處理,可以通過調(diào)度一個處理線程處理一個用戶名對應(yīng)的所有用戶處理記錄。也可以理解為將一個用戶名對應(yīng)的用戶操作記錄分成一組進(jìn)行處理,與現(xiàn)有技術(shù)中不對用戶操作記錄進(jìn)行分組處理的方式相比,本申請的實施方式可以在保證多線程處理高效性的前提下,大大降低多線程處理過程中出現(xiàn)邏輯順序錯誤的概率,提高數(shù)據(jù)同步的準(zhǔn)確性。
在本發(fā)明的一個實施例中,所述線程獲取單元33還用于:
當(dāng)已有的處理線程中不存在與所述用戶名相關(guān)聯(lián)的處理線程時,構(gòu)建新的處理線程,并將所述新的處理線程與所述用戶名信息相關(guān)聯(lián)。
圖4是本發(fā)明提供的日志處理裝置的另一種實施例的模塊結(jié)構(gòu)示意圖,如圖4所示,所述裝置40還可以包括:
記錄排序單元41,用于將與所述用戶名信息對應(yīng)的用戶操作記錄添加到所述處理線程的待處理記錄集合中,基于解析出的所述用戶操作記錄中的用戶操作時刻,將所述用戶操作記錄插入所述記錄集合中,所述待處理記錄集合被設(shè)置成按照用戶操作時刻的先后順序排列;
相應(yīng)地,所述線程調(diào)度單元34還用于:調(diào)度所述處理線程按照排序后的順序處理與所述用戶名信息對應(yīng)的用戶操作記錄。
本實施例中,將所述待處理記錄集合中的用戶處理記錄按照時間先后順序排列后,可以保證線程的處理順序與用戶的操作順序相匹配,一方面可以完全避免現(xiàn)有技術(shù)中出現(xiàn)邏輯順序錯誤的情況,另一方面可以保證數(shù)據(jù)同步結(jié)果的正確性。
圖5是本發(fā)明提供的線程調(diào)度單元的一種實施例的方法流程圖,如圖5所示,所述線程調(diào)度單元34包括:
文件數(shù)據(jù)解析單元51,用于調(diào)度所述處理線程從所述用戶操作記錄中解析出用戶操作類型以及文件數(shù)據(jù)信息;
數(shù)據(jù)存儲單元52,用于調(diào)度所述處理線程通過數(shù)據(jù)庫接口,根據(jù)所述用戶操作類型,將所述文件數(shù)據(jù)信息存儲至數(shù)據(jù)庫中。
通過數(shù)據(jù)同步系統(tǒng)與所述數(shù)據(jù)庫之間的接口,所述數(shù)據(jù)同步系統(tǒng)可以根據(jù)所述用戶操作類型,將所述文件數(shù)據(jù)信息存儲至所述數(shù)據(jù)中,實現(xiàn)存儲系統(tǒng)與所述數(shù)據(jù)庫之間的數(shù)據(jù)同步。
圖6是本發(fā)明提供的線程獲取單元的一種實施例的方法流程圖,如圖6所示,所述線程獲取單元33包括:
線程數(shù)量判斷單元61,用于當(dāng)已有的處理線程中不存在與所述用戶名相關(guān)聯(lián)的處理線程時,判斷所述已有的處理線程的數(shù)量是否大于預(yù)設(shè)閾值;
線程構(gòu)建單元62,用于若所述判斷的結(jié)果為是,則構(gòu)建新的處理線程,并將所述新的處理線程與所述用戶名信息相關(guān)聯(lián)。
圖7是本發(fā)明提供的日志處理裝置的另一種實施例的模塊結(jié)構(gòu)示意圖,如圖7所示,所述裝置70還可以包括:
已處理記錄獲取單元71,用于獲取所述處理線程已經(jīng)處理完成的用戶操作記錄;
記錄清除單元72,用于清除所述處理線程已經(jīng)處理完成的用戶操作記錄。
清除已經(jīng)被處理完成的用戶操作記錄,不僅可以提升存儲系統(tǒng)的空間利用率,還可以提高數(shù)據(jù)同步系統(tǒng)讀取用戶操作記錄的處理效率。
盡管本申請內(nèi)容中提到實施例中的構(gòu)建線程、線程調(diào)度、數(shù)據(jù)解析、數(shù)據(jù)判斷等之類的數(shù)據(jù)設(shè)置、處理描述,但是,本申請并不局限于必須是完全符合行業(yè)編程語言設(shè)計標(biāo)準(zhǔn)或?qū)嵤├枋龅臄?shù)據(jù)展示、處理的情況。某些頁面設(shè)計語言或?qū)嵤├枋龅幕A(chǔ)上略加修改后的實施方案也可以實行上述實施例相同、等同或相近、或變形后可預(yù)料的實施效果。當(dāng)然,即使不采用上數(shù)據(jù)處理、判斷的方式,只要符合本申請上述各實施例的數(shù)據(jù)解析、信息交互和信息判斷反饋方式,仍然可以實現(xiàn)相同的申請,在此不再贅述。
雖然本申請?zhí)峁┝巳鐚嵤├蛄鞒虉D所述的方法操作步驟,但基于常規(guī)或者無創(chuàng)造性的手段可以包括更多或者更少的操作步驟。實施例中列舉的步驟順序僅僅為眾多步驟執(zhí)行順序中的一種方式,不代表唯一的執(zhí)行順序。在實際中的裝置或客戶端產(chǎn)品執(zhí)行時,可以按照實施例或者附圖所示的方法順序執(zhí)行或者并行執(zhí)行(例如并行處理器或者多線程處理的環(huán)境)。
上述實施例闡明的單元、裝置,具體可以由計算機(jī)芯片或?qū)嶓w實現(xiàn),或者由具有某種功能的產(chǎn)品來實現(xiàn)。為了描述的方便,描述以上裝置時以功能分為各種模塊分別描述。當(dāng)然,在實施本申請時可以把各模塊的功能在同一個或多個軟件和/或硬件中實現(xiàn)。當(dāng)然,本申請中所述的某一單元模塊也可以將實現(xiàn)同一功能的模塊由多個子模塊或子模塊的組合實現(xiàn)。
本領(lǐng)域技術(shù)人員也知道,除了以純計算機(jī)可讀程序代碼方式實現(xiàn)控制器以外,完全可以通過將方法步驟進(jìn)行邏輯編程來使得控制器以邏輯門、開關(guān)、專用集成電路、可編程邏輯控制器和嵌入微控制器等的形式來實現(xiàn)相同功能。因此這種控制器可以被認(rèn)為是一種硬件部件,而對其內(nèi)部包括的用于實現(xiàn)各種功能的裝置也可以視為硬件部件內(nèi)的結(jié)構(gòu)?;蛘呱踔?,可以將用于實現(xiàn)各種功能的裝置視為既可以是實現(xiàn)方法的軟件模塊又可以是硬件部件內(nèi)的結(jié)構(gòu)。
本申請可以在由計算機(jī)執(zhí)行的計算機(jī)可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)、類等等。也可以在分布式計算環(huán)境中實踐本申請,在這些分布式計算環(huán)境中,由通過通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來執(zhí)行任務(wù)。在分布式計算環(huán)境中,程序模塊可以位于包括存儲設(shè)備在內(nèi)的本地和遠(yuǎn)程計算機(jī)存儲介質(zhì)中。
通過以上的實施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請可借助軟件加必需的通用硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本申請的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),移動終端,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請各個實施例或者實施例的某些部分所述的方法。
本說明書中的各個實施例采用遞進(jìn)的方式描述,各個實施例之間相同或相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。本申請可用于眾多通用或?qū)S玫挠嬎銠C(jī)系統(tǒng)環(huán)境或配置中。例如:個人計算機(jī)、服務(wù)器計算機(jī)、手持設(shè)備或便攜式設(shè)備、平板型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、置頂盒、可編程的電子設(shè)備、網(wǎng)絡(luò)PC、小型計算機(jī)、大型計算機(jī)、包括以上任何系統(tǒng)或設(shè)備的分布式計算環(huán)境等等。
雖然通過實施例描繪了本申請,本領(lǐng)域普通技術(shù)人員知道,本申請有許多變形和變化而不脫離本申請的精神,希望所附的權(quán)利要求包括這些變形和變化而不脫離本申請的精神。