專利名稱:一種智能推送數(shù)據(jù)的方法和裝置的制作方法
技術領域:
本發(fā)明涉及一種智能推送數(shù)據(jù)的方法和裝置,以實現(xiàn)在分布式數(shù)據(jù)庫數(shù)據(jù)源側主動預推數(shù)據(jù)。
背景技術:
分布式數(shù)據(jù)庫中,數(shù)據(jù)的使用和數(shù)據(jù)源在物理上是分離的,應用程序必須從數(shù)據(jù)源獲取數(shù)據(jù)后再進行處理,大量的數(shù)據(jù)集從數(shù)據(jù)源到應用程序不僅耗用了網(wǎng)絡帶寬,而且增加了應用程序的等待和處理時間,進而影響了應用程序的響應時間。目前,有很多使用在客戶端緩存數(shù)據(jù)進而提高客戶端響應時間的方法,但是這些緩存數(shù)據(jù)均為“舊”數(shù)據(jù),即使用過的未被更新過的可能和源數(shù)據(jù)存在不一致的情況,當客戶端進行大量的新數(shù)據(jù)查詢時,響應時間明顯低于平均響應時間,網(wǎng)絡和分布式數(shù)據(jù)庫的負載也在瞬間加大,當客戶需要大量新的數(shù)據(jù)時,客戶端的響應速度依然存在瓶頸。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術問題是提供一種智能推送數(shù)據(jù)的方法和裝置,以主動向客戶端推送數(shù)據(jù),大大提高客戶端的響應速度。為了解決上述技術問題,本發(fā)明提供了一種智能推送數(shù)據(jù)的方法,包括 獲取與用戶相關的推送機制;
根據(jù)所述推送機制確定出預推數(shù)據(jù); 將所述預推數(shù)據(jù)推送到指定的緩存。進一步地,上述方法還具有下面特點所述推送機制包括
推送用戶指定的字段集內(nèi)的數(shù)據(jù)的字段集機制、推送用戶訪問過的表內(nèi)的數(shù)據(jù)的同表機制、推送用戶指定表集合內(nèi)表的數(shù)據(jù)的表集合機制、推送最近使用過并被更新過的數(shù)據(jù)的最新機制或自動確定優(yōu)先推送的數(shù)據(jù)的自動機制。進一步地,上述方法還具有下面特點所述選取與用戶相關的推送機制的步驟包括
若判斷所述用戶是第一次登陸,則選取推送用戶指定的字段集內(nèi)的數(shù)據(jù)的字段集機制。進一步地,上述方法還具有下面特點所述根據(jù)所述推送機制確定出預推數(shù)據(jù)的步驟包括根據(jù)所述推送機制和用戶的歷史數(shù)據(jù)需求確定出所述預推數(shù)據(jù)。進一步地,上述方法還具有下面特點所述根據(jù)所述推送機制確定出預推數(shù)據(jù)的步驟之前還包括
若接收到用戶的數(shù)據(jù)需求,則更新用戶的歷史數(shù)據(jù)需求。進一步地,上述方法還具有下面特點所述接收到用戶的數(shù)據(jù)需求的步驟之后,還包括
若檢測所述數(shù)據(jù)需求不屬于指定字段集內(nèi)的字段,則將用戶該次訪問的字段增加到所述指定字段集;或
若檢測所述數(shù)據(jù)需求不屬于指定表集合內(nèi)的字段,則將用戶該次訪問的表增加到所述
指定表集合ο 進一步地,上述方法還具有下面特點所述將所述預推數(shù)據(jù)推送到指定的緩存的步驟之后,還包括
若判斷根據(jù)用戶的數(shù)據(jù)需求在所述緩存中連續(xù)未命中目標數(shù)據(jù)的次數(shù)大于指定次數(shù), 則對用戶的歷史數(shù)據(jù)需求進行分析,重新確定推送機制。 進一步地,上述方法還具有下面特點所述對用戶的歷史數(shù)據(jù)需求進行分析,重新確定推送機制的步驟包括
依次采用除當前使用的推送機制之外的推送機制,從第一次未命中目標數(shù)據(jù)的用戶的數(shù)據(jù)需求開始逐一分析,并根據(jù)相應的推送機制假設預推數(shù)據(jù),檢驗所述假設預推數(shù)據(jù)的命中率,若所述命中率大于指定值,則將該相應的推送機制確定為與所述用戶相關的推送機制。為了解決上述問題,本發(fā)明還提供了一種智能推送數(shù)據(jù)的裝置,包括 獲取模塊,用于獲取與用戶相關的推送機制;
確定模塊,用于根據(jù)所述推送機制確定出預推數(shù)據(jù); 推送模塊,用于將所述預推數(shù)據(jù)推送到指定的緩存。進一步地,上述裝置還具有下面特點所述推送機制包括
推送用戶指定的字段集內(nèi)的數(shù)據(jù)的字段集機制、推送用戶訪問過的表內(nèi)的數(shù)據(jù)的同表機制、推送用戶指定表集合內(nèi)表的數(shù)據(jù)的表集合機制、推送最近使用過并被更新過的數(shù)據(jù)的最新機制或自動確定優(yōu)先推送的數(shù)據(jù)的自動機制。進一步地,上述裝置還具有下面特點所述獲取模塊,具體用于若判斷所述用戶是第一次登陸,則獲取推送用戶指定的字段集內(nèi)的數(shù)據(jù)的字段集機制。進一步地,上述裝置還具有下面特點所述確定模塊,具體用于根據(jù)所述推送機制和用戶的歷史數(shù)據(jù)需求確定出所述預推數(shù)據(jù)。進一步地,上述裝置還具有下面特點還包括,更新模塊,用于接收到用戶的數(shù)據(jù)需求,則更新用戶的歷史數(shù)據(jù)需求。進一步地,上述裝置還具有下面特點所述更新模塊,具體用于若檢測所述數(shù)據(jù)需求不屬于指定字段集內(nèi)的字段,則將用戶該次訪問的字段增加到所述指定字段集;或若檢測所述數(shù)據(jù)需求不屬于指定表集合內(nèi)的字段,則將用戶該次訪問的表增加到所述指定表集合。
進一步地,上述裝置還具有下面特點還包括,
分析模塊,用于若判斷根據(jù)用戶的數(shù)據(jù)需求在所述緩存中連續(xù)未命中目標數(shù)據(jù)的次數(shù)大于指定次數(shù),則對用戶的歷史數(shù)據(jù)需求進行分析,重新確定推送機制。進一步地,上述裝置還具有下面特點
所述分析模塊,具體用于若判斷根據(jù)用戶的數(shù)據(jù)需求在所述緩存中連續(xù)未命中目標數(shù)據(jù)的次數(shù)大于指定次數(shù),則依次采用除當前使用的推送機制之外的推送機制,從第一次未命中目標數(shù)據(jù)的用戶的數(shù)據(jù)需求開始逐一分析,并根據(jù)相應的推送機制假設預推數(shù)據(jù),檢驗所述假設預推數(shù)據(jù)的命中率,若所述命中率大于指定值,則將該相應的推送機制確定為與所述用戶相關的推送機制。進一步地,上述裝置還具有下面特點還包括,配置模塊,用于接受用戶配置的推送機制。綜上所述,本發(fā)明提供一種智能推送數(shù)據(jù)的方法和裝置,能夠主動預測并推送給客戶端所需數(shù)據(jù),可以大大降低客戶端未命中的數(shù)據(jù)記錄,大大提高客戶端的平均響應時間,并可使數(shù)據(jù)庫和網(wǎng)絡的負載更加均衡。
圖1為本發(fā)明實施例的一種智能推送數(shù)據(jù)的裝置; 圖2為本發(fā)明的智能推送數(shù)據(jù)的方法的流程圖。
具體實施例方式為了更好地理解本發(fā)明,下面結合附圖和具體實施例對本發(fā)明作進一步地描述。圖1為本發(fā)明實施例的一種智能推送數(shù)據(jù)的裝置,如圖1所示,本裝置主要包括 選取模塊、確定模塊和推送模塊,其中,
獲取模塊,用于獲取與用戶相關的推送機制; 確定模塊,用于根據(jù)所述推送機制確定出預推數(shù)據(jù); 推送模塊,用于將所述預推數(shù)據(jù)推送到指定的緩存。所述指定的緩存優(yōu)選為所述用戶的客戶端中的緩存。這樣,當客戶端進行大量的數(shù)據(jù)查詢時,能夠明顯降低響應時間。其中,所述推送機制可以包括推送用戶指定的字段集內(nèi)的數(shù)據(jù)的字段集機制、推送用戶訪問過的表內(nèi)的數(shù)據(jù)的同表機制、推送用戶指定表集合內(nèi)表的數(shù)據(jù)的表集合機制、 推送最近使用過并被更新過的數(shù)據(jù)的最新機制、自動確定優(yōu)先推送的數(shù)據(jù)的自動機制等。本實施例的裝置還包括配置模塊,用于為相應用戶配置推送機制,配置時可以按用戶組來配置,即同一個用戶組的用戶配置同一個推送機制。其中,所述獲取模塊,具體用于若判斷所述用戶是第一次登陸,則獲取推送用戶指定的字段集內(nèi)的數(shù)據(jù)的字段集機制,若用戶的字段集合為空,則不作處理,等待用戶的命令。其中,所述確定模塊,具體用于根據(jù)所述推送機制和用戶的歷史數(shù)據(jù)需求確定出所述預推數(shù)據(jù)。本實施例的裝置還可以包括更新模塊,用于接收到用戶的數(shù)據(jù)需求,則更新用戶的歷史數(shù)據(jù)需求。具體地,更新模塊若檢測所述數(shù)據(jù)需求不屬于指定字段集內(nèi)的字段,則將用戶該次訪問的字段增加到所述指定字段集;或若檢測所述數(shù)據(jù)需求不屬于指定表集合內(nèi)的字段,則將用戶該次訪問的表增加到所述指定表集合。本實施例的裝置還可以包括分析模塊,用于若判斷根據(jù)用戶的數(shù)據(jù)需求在所述緩存中連續(xù)未命中目標數(shù)據(jù)的次數(shù)大于指定次數(shù)(例如10次,指定次數(shù)為可配置),則對用戶的歷史數(shù)據(jù)需求進行分析,重新確定推送機制。具體地,分析模塊若判斷根據(jù)用戶的數(shù)據(jù)需求在所述緩存中連續(xù)未命中目標數(shù)據(jù)的次數(shù)大于指定次數(shù),則依次采用除當前使用的推送機制之外的推送機制,從第一次未命中目標數(shù)據(jù)的用戶的數(shù)據(jù)需求開始逐一分析,并根據(jù)相應的推送機制假設預推數(shù)據(jù),檢驗所述假設預推數(shù)據(jù)的命中率,若所述命中率大于指定值(例如60%),則將該相應的推送機制確定為與所述用戶相關的推送機制。若命中率均未達到指定值,則取消該用戶的數(shù)據(jù)預推, 但進一步地,分析模塊可以繼續(xù)預分析該用戶的數(shù)據(jù)需求,分析命中率,當命中率達到指定值時,采用相應的推送機制恢復對該用戶的數(shù)據(jù)預推。圖2為本發(fā)明的智能推送數(shù)據(jù)的方法的流程圖,如圖2所示,本方法包括下面步驟
S10、獲取與用戶相關的推送機制; S20、根據(jù)所述推送機制確定出預推數(shù)據(jù); S30、將所述預推數(shù)據(jù)推送到指定的緩存。這樣,當客戶端進行大量的數(shù)據(jù)查詢時,能夠明顯降低響應時間。其中,推送機制為分布式數(shù)據(jù)庫采用什么樣的策略來選擇主動推送給用戶的數(shù)據(jù)。推送機制可以包括字段集機制、同表機制、表集合機制、最新機制、自動機制等。其中,字段集機制表示優(yōu)先推送用戶指定的字段集內(nèi)的數(shù)據(jù); 同表機制表示優(yōu)先推送用戶訪問過的表內(nèi)的其他數(shù)據(jù);
表集合機制表示優(yōu)先推送用戶指定表集合內(nèi)表的數(shù)據(jù); 最新機制表示優(yōu)先考慮最近使用過并被更新過的數(shù)據(jù); 自動機制表示自動確定(多機制混合)優(yōu)先推送的數(shù)據(jù)。其中,推送機制配置可以按用戶組來配置,同一個用戶組的用戶可以配置采用同一種推送機制,同一個用戶屬于不同的用戶組時可以默認采用所屬的第一個用戶組配置的推送機制,也可以在用戶加入多用戶組時指定推送機制。當用戶登陸時,分布式數(shù)據(jù)庫側可以根據(jù)配置信息獲取用戶相關的推送機制,初始化系統(tǒng)并根據(jù)用戶的歷史數(shù)據(jù)需求確定出預推數(shù)據(jù),并推送到用戶客戶端。其中,用戶的歷史數(shù)據(jù)需求是用戶上次登陸分布式數(shù)據(jù)庫時的數(shù)據(jù)需求,則由分布式系統(tǒng)記錄并序列化該數(shù)據(jù)需求,在用戶登陸后重新啟用,大大降低了響應時間。當用戶第一次登陸系統(tǒng)時,采用字段集機制推送字段集內(nèi)的數(shù)據(jù),如果用戶的字段集合為空,則不做處理,等待用戶指令。在用戶和系統(tǒng)交互時,用戶傳遞數(shù)據(jù)需求,分布式數(shù)據(jù)庫的客戶端首先查看緩存, 如果命中目標數(shù)據(jù),則直接返回結果,并同時發(fā)送用戶數(shù)據(jù)需求到分布式數(shù)據(jù)庫側,分布式數(shù)據(jù)庫側則更新用戶的歷史數(shù)據(jù)需求,并根據(jù)推送機制確定出用戶預推數(shù)據(jù),并主動推送數(shù)據(jù)到用戶的客戶端。如果客戶端根據(jù)用戶的數(shù)據(jù)需求在緩存中未命中目標數(shù)據(jù),則發(fā)送數(shù)據(jù)需求到分布式數(shù)據(jù)庫側,分布式數(shù)據(jù)庫側返回所需數(shù)據(jù)集,并更新用戶的歷史數(shù)據(jù)需求記錄,同時, 觸發(fā)未命中數(shù)據(jù)需求事件,并分析該次數(shù)據(jù)需求和歷史數(shù)據(jù)需求的關系。其中,分布式數(shù)據(jù)庫側如果檢測該次數(shù)據(jù)需求不屬于指定字段集內(nèi)字段,則可以將用戶該次訪問的字段增加到所述指定字段集,其中,字段集中的字段數(shù)目可配置。分布式數(shù)據(jù)庫側如果檢測該次數(shù)據(jù)需求不屬于指定表集合內(nèi)的字段,則可以將用戶該次訪問的表增加到所述指定表集合,其中,表集合中表的數(shù)目可配置。
當分布式數(shù)據(jù)庫側判斷根據(jù)用戶的數(shù)據(jù)需求在所述緩存中連續(xù)未命中目標數(shù)據(jù)的次數(shù)大于指定次數(shù)(如10次,可配置),則需要對歷史數(shù)據(jù)需求進行分析,并重新確定推送機制,過程具體如下
除去當前采用的推送機制,依次采用其他各推送機制,從第一次未命中目標數(shù)據(jù)的用戶的數(shù)據(jù)需求開始逐一分析,并根據(jù)相應的推送機制假設預推數(shù)據(jù),并檢驗所述假設預推數(shù)據(jù)的命中率,當命中率大于指定值時(默認60%,可配置),則采用此次的推送機制。當所有推送機制均失效時,即命中率均未達到指定值,則取消該用戶的數(shù)據(jù)預推。但同時,分布式數(shù)據(jù)庫側依然會預分析用戶的數(shù)據(jù)需求,當命中率達到指定值時,則采用相應的推送機制恢復該用戶的數(shù)據(jù)預推。本領域普通技術人員可以理解上述方法中的全部或部分步驟可通過程序來指令相關硬件完成,所述程序可以存儲于計算機可讀存儲介質中,如只讀存儲器、磁盤或光盤等??蛇x地,上述實施例的全部或部分步驟也可以使用一個或多個集成電路來實現(xiàn)。相應地,上述實施例中的各模塊/單元可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。本發(fā)明不限制于任何特定形式的硬件和軟件的結合。以上僅為本發(fā)明的優(yōu)選實施例,當然,本發(fā)明還可有其他多種實施例,在不背離本發(fā)明精神及其實質的情況下,熟悉本領域的技術人員當可根據(jù)本發(fā)明作出各種相應的改變和變形,但這些相應的改變和變形都應屬于本發(fā)明所附的權利要求的保護范圍。
權利要求
1.一種智能推送數(shù)據(jù)的方法,包括 獲取與用戶相關的推送機制; 根據(jù)所述推送機制確定出預推數(shù)據(jù); 將所述預推數(shù)據(jù)推送到指定的緩存。
2.如權利要求1所述的方法,其特征在于所述推送機制包括推送用戶指定的字段集內(nèi)的數(shù)據(jù)的字段集機制、推送用戶訪問過的表內(nèi)的數(shù)據(jù)的同表機制、推送用戶指定表集合內(nèi)表的數(shù)據(jù)的表集合機制、推送最近使用過并被更新過的數(shù)據(jù)的最新機制或自動確定優(yōu)先推送的數(shù)據(jù)的自動機制。
3.如權利要求1所述的方法,其特征在于所述選取與用戶相關的推送機制的步驟包括若判斷所述用戶是第一次登陸,則選取推送用戶指定的字段集內(nèi)的數(shù)據(jù)的字段集機制。
4.如權利要求1所述的方法,其特征在于所述根據(jù)所述推送機制確定出預推數(shù)據(jù)的步驟包括根據(jù)所述推送機制和用戶的歷史數(shù)據(jù)需求確定出所述預推數(shù)據(jù)。
5.如權利要求4所述的方法,其特征在于所述根據(jù)所述推送機制確定出預推數(shù)據(jù)的步驟之前還包括若接收到用戶的數(shù)據(jù)需求,則更新用戶的歷史數(shù)據(jù)需求。
6.如權利要求5所述的方法,其特征在于所述接收到用戶的數(shù)據(jù)需求的步驟之后,還包括若檢測所述數(shù)據(jù)需求不屬于指定字段集內(nèi)的字段,則將用戶該次訪問的字段增加到所述指定字段集;或若檢測所述數(shù)據(jù)需求不屬于指定表集合內(nèi)的字段,則將用戶該次訪問的表增加到所述指定表集合ο
7.如權利要求1所述的方法,其特征在于所述將所述預推數(shù)據(jù)推送到指定的緩存的步驟之后,還包括若判斷根據(jù)用戶的數(shù)據(jù)需求在所述緩存中連續(xù)未命中目標數(shù)據(jù)的次數(shù)大于指定次數(shù), 則對用戶的歷史數(shù)據(jù)需求進行分析,重新確定推送機制。
8.如權利要求7所述的方法,其特征在于所述對用戶的歷史數(shù)據(jù)需求進行分析,重新確定推送機制的步驟包括依次采用除當前使用的推送機制之外的推送機制,從第一次未命中目標數(shù)據(jù)的用戶的數(shù)據(jù)需求開始逐一分析,并根據(jù)相應的推送機制假設預推數(shù)據(jù),檢驗所述假設預推數(shù)據(jù)的命中率,若所述命中率大于指定值,則將該相應的推送機制確定為與所述用戶相關的推送機制。
9.一種智能推送數(shù)據(jù)的裝置,包括獲取模塊,用于獲取與用戶相關的推送機制; 確定模塊,用于根據(jù)所述推送機制確定出預推數(shù)據(jù); 推送模塊,用于將所述預推數(shù)據(jù)推送到指定的緩存。
10.如權利要求9所述的裝置,其特征在于所述推送機制包括推送用戶指定的字段集內(nèi)的數(shù)據(jù)的字段集機制、推送用戶訪問過的表內(nèi)的數(shù)據(jù)的同表機制、推送用戶指定表集合內(nèi)表的數(shù)據(jù)的表集合機制、推送最近使用過并被更新過的數(shù)據(jù)的最新機制或自動確定優(yōu)先推送的數(shù)據(jù)的自動機制。
11.如權利要求9所述的裝置,其特征在于所述獲取模塊,具體用于若判斷所述用戶是第一次登陸,則獲取推送用戶指定的字段集內(nèi)的數(shù)據(jù)的字段集機制。
12.如權利要求9所述的裝置,其特征在于所述確定模塊,具體用于根據(jù)所述推送機制和用戶的歷史數(shù)據(jù)需求確定出所述預推數(shù)據(jù)。
13.如權利要求9所述的裝置,其特征在于還包括,更新模塊,用于接收到用戶的數(shù)據(jù)需求,則更新用戶的歷史數(shù)據(jù)需求。
14.如權利要求13所述的裝置,其特征在于所述更新模塊,具體用于若檢測所述數(shù)據(jù)需求不屬于指定字段集內(nèi)的字段,則將用戶該次訪問的字段增加到所述指定字段集;或若檢測所述數(shù)據(jù)需求不屬于指定表集合內(nèi)的字段,則將用戶該次訪問的表增加到所述指定表集合。
15.如權利要求9所述的裝置,其特征在于還包括,分析模塊,用于若判斷根據(jù)用戶的數(shù)據(jù)需求在所述緩存中連續(xù)未命中目標數(shù)據(jù)的次數(shù)大于指定次數(shù),則對用戶的歷史數(shù)據(jù)需求進行分析,重新確定推送機制。
16.如權利要求15所述的裝置,其特征在于所述分析模塊,具體用于若判斷根據(jù)用戶的數(shù)據(jù)需求在所述緩存中連續(xù)未命中目標數(shù)據(jù)的次數(shù)大于指定次數(shù),則依次采用除當前使用的推送機制之外的推送機制,從第一次未命中目標數(shù)據(jù)的用戶的數(shù)據(jù)需求開始逐一分析,并根據(jù)相應的推送機制假設預推數(shù)據(jù),檢驗所述假設預推數(shù)據(jù)的命中率,若所述命中率大于指定值,則將該相應的推送機制確定為與所述用戶相關的推送機制。
17.如權利要求9-16任一項所述的裝置,其特征在于還包括, 配置模塊,用于為相應的用戶配置推送機制。
全文摘要
本發(fā)明提供一種智能推送數(shù)據(jù)的方法和裝置,本方法包括獲取與用戶相關的推送機制;根據(jù)所述推送機制確定出預推數(shù)據(jù);將所述預推數(shù)據(jù)推送到指定的緩存。本發(fā)明能夠主動預測并推送給客戶端所需數(shù)據(jù),可以大大降低客戶端未命中的數(shù)據(jù)記錄,大大提高客戶端的平均響應時間,并可使數(shù)據(jù)庫和網(wǎng)絡的負載更加均衡。
文檔編號G06F17/30GK102467553SQ20101054922
公開日2012年5月23日 申請日期2010年11月18日 優(yōu)先權日2010年11月18日
發(fā)明者蔡桂英 申請人:中興通訊股份有限公司