一種數(shù)據(jù)操作方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種數(shù)據(jù)操作方法及裝置,該方法包括:接收針對數(shù)據(jù)的讀請求,查找記錄的將所述數(shù)據(jù)寫入主庫的寫入時刻,確定所述寫入時刻到當(dāng)前時刻的時間長度,根據(jù)所述寫入時刻將該讀請求發(fā)送至主庫或者從庫以讀取該數(shù)據(jù)。在該方法中,中間件在接收到針對數(shù)據(jù)的讀請求后,并不是直接將該讀請求發(fā)送至從庫以讀取數(shù)據(jù),而是根據(jù)該數(shù)據(jù)的寫入時刻到當(dāng)前時刻的時間長度,和預(yù)設(shè)閾值進(jìn)行判斷,來決定發(fā)送至主庫還是從庫。從而,在讀取數(shù)據(jù)時,即使從庫中未完成數(shù)據(jù)的同步,仍可以直接從主庫中讀取,不會因為數(shù)據(jù)未完成同步導(dǎo)致讀取失敗的情況,有效提升了讀取數(shù)據(jù)的成功率。
【專利說明】一種數(shù)據(jù)操作方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機【技術(shù)領(lǐng)域】,尤其涉及一種數(shù)據(jù)操作方法及裝置。
【背景技術(shù)】
[0002]隨著信息技術(shù)的發(fā)展,用戶可以使用客戶端通過網(wǎng)絡(luò)途徑訪問相應(yīng)的數(shù)據(jù)庫(如亂數(shù)據(jù)庫、01% 16數(shù)據(jù)庫等)來獲取所需的數(shù)據(jù)。數(shù)據(jù)庫中分為主庫和從庫,并采用讀寫分離的方式處理數(shù)據(jù):由從庫處理客戶端發(fā)出的讀請求,由主庫處理客戶端發(fā)出的寫請求。
[0003]現(xiàn)有技術(shù)中,通常在數(shù)據(jù)庫和客戶端之間設(shè)置有中間件(一種數(shù)據(jù)中轉(zhuǎn)設(shè)備),以管理數(shù)據(jù)庫與大量客戶端之間的連接交互,并為各客戶端提供數(shù)據(jù)服務(wù),即,客戶端與數(shù)據(jù)庫之間通過中間件進(jìn)行數(shù)據(jù)連接。中間件建立了與數(shù)據(jù)庫之間的連接之后,會將用戶發(fā)出的請求按照所屬的請求類型分別發(fā)送至主庫或從庫中。
[0004]例如:客戶端發(fā)出寫請求,則中間件在接收到該寫請求后,將該寫請求發(fā)送至主庫中;客戶端發(fā)出讀請求,則中間件將該讀請求發(fā)送至從庫中。
[0005]主庫執(zhí)行客戶端發(fā)送的寫請求,完成寫入數(shù)據(jù)的操作后,主庫會向從庫發(fā)送日志,使新寫入的數(shù)據(jù)同步到從庫中,從而完成了數(shù)據(jù)庫中數(shù)據(jù)同步更新的過程。
[0006]但是,主庫向從庫同步數(shù)據(jù)需要一定的時間,若主庫將某一數(shù)據(jù)同步至從庫的過程中,客戶端發(fā)出讀請求以讀取該數(shù)據(jù),那么,由于同步過程未結(jié)束,不能在從庫中讀取到該數(shù)據(jù),進(jìn)而導(dǎo)致讀數(shù)據(jù)失敗。可見,現(xiàn)有技術(shù)中有很大幾率不能正常讀取數(shù)據(jù)。
【發(fā)明內(nèi)容】
[0007]鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的數(shù)據(jù)操作方法及裝置,能夠有效避免因數(shù)據(jù)同步而導(dǎo)致有很大幾率不能正常讀取數(shù)據(jù)。
[0008]根據(jù)本發(fā)明的第一個方面,提出一種數(shù)據(jù)操作方法,包括:接收針對數(shù)據(jù)的讀請求;
[0009]查找記錄的將所述數(shù)據(jù)寫入主庫的寫入時刻;
[0010]根據(jù)所述寫入時刻將該讀請求發(fā)送至主庫或者從庫以讀取該數(shù)據(jù)。
[0011]根據(jù)本發(fā)明的第二個方面,提出一種數(shù)據(jù)操作裝置,包括:接收模塊、查找模塊、時差模塊以及判斷處理模塊,其中;
[0012]所述接收模塊,用于接收針對數(shù)據(jù)的讀請求;
[0013]所述查找模塊,用于查找記錄的將所述數(shù)據(jù)寫入主庫的寫入時刻;
[0014]所述時間模塊,用于確定所述寫入時刻到當(dāng)前時刻的時間長度;
[0015]所述判斷處理模塊,用于判斷所述時間長度是否大于預(yù)設(shè)閾值,若是,則將該讀請求發(fā)送至從庫以讀取該數(shù)據(jù),否則,則將該讀請求發(fā)送至主庫以讀取該數(shù)據(jù)。
[0016]根據(jù)本發(fā)明提供的數(shù)據(jù)操作方法,中間件在接收到針對某一數(shù)據(jù)的讀請求后,并不是直接將該讀請求發(fā)送至從庫以讀取數(shù)據(jù),而是查找已記錄的該數(shù)據(jù)的寫入時刻,判斷該數(shù)據(jù)的寫入時刻到當(dāng)前時刻的時間長度是否大于預(yù)設(shè)的閾值,如果時間長度大于閾值,可以認(rèn)為該數(shù)據(jù)已經(jīng)從主庫中同步到了從庫中,那么,中間件將讀請求發(fā)送至從庫以讀取該數(shù)據(jù);而如果時間長度小于閾值,就說明該數(shù)據(jù)還未同步到從庫中,從而,中間件將該讀請求發(fā)送至主庫,以直接從主庫中進(jìn)行讀取。通過這樣的方式,在讀取數(shù)據(jù)時,即使從庫中未完成數(shù)據(jù)的同步,仍可以直接從主庫中讀取該數(shù)據(jù),不會因為數(shù)據(jù)未完成同步,而導(dǎo)致讀取數(shù)據(jù)時發(fā)生失敗的情況,有效提升了讀取數(shù)據(jù)的成功率。
【專利附圖】
【附圖說明】
[0017]通過閱讀下文優(yōu)選實施方式的詳細(xì)描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
[0018]圖1為依據(jù)本發(fā)明一個實施例的數(shù)據(jù)操作過程的示意圖;
[0019]圖2為依據(jù)本發(fā)明一個實施例的實例中客戶端、中間件以及數(shù)據(jù)庫的連接架構(gòu)示意圖;
[0020]圖3為依據(jù)本發(fā)明一個實施例的數(shù)據(jù)操作過程在實際應(yīng)用中的示意圖;
[0021]圖4為依據(jù)本發(fā)明一個實施例的數(shù)據(jù)操作裝置結(jié)構(gòu)示意圖。
【具體實施方式】
[0022]下面將參照附圖更詳細(xì)地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0023]下面結(jié)合說明書附圖,對本發(fā)明實施例進(jìn)行詳細(xì)描述。
[0024]圖1為依據(jù)本發(fā)明一個實施例的數(shù)據(jù)操作方法,可以包括步驟:
[0025]8101:接收針對數(shù)據(jù)的讀請求。
[0026]8102:查找已記錄的所述數(shù)據(jù)的寫入時刻。
[0027]3103:根據(jù)所述寫入時刻將所述讀請求發(fā)送至主庫或者從庫以讀取該數(shù)據(jù)。
[0028]從上述可知,在該實施例中,中間件在接收到針對某一數(shù)據(jù)的讀請求后,并不是直接將該讀請求發(fā)送至從庫中讀取數(shù)據(jù),而是查找已記錄的該數(shù)據(jù)的寫入時刻,查找該數(shù)據(jù)的寫入時刻的目的在于:根據(jù)所述寫入時刻,可以判斷出該數(shù)據(jù)是否已經(jīng)完成了主庫到從庫的同步過程。這樣一來,便可以根據(jù)該數(shù)據(jù)的寫入時刻將所述讀請求發(fā)送至主庫或者從庫以讀取該數(shù)據(jù)。有效提升了讀取數(shù)據(jù)的成功率。
[0029]依據(jù)本發(fā)明的一個實施例,中間件可以根據(jù)客戶端發(fā)出的讀請求,確定出該讀請求所對應(yīng)的數(shù)據(jù),進(jìn)而將讀請求發(fā)送至相應(yīng)的數(shù)據(jù)庫以讀取數(shù)據(jù)。考慮到現(xiàn)有技術(shù)中,中間件將接收到的讀請求直接發(fā)送至從庫以讀取數(shù)據(jù)時,存在因數(shù)據(jù)未同步完成而導(dǎo)致讀取失敗的情況。因此在本發(fā)明實施例中,當(dāng)中間件接收到針對某一數(shù)據(jù)的讀請求之后,將查找該數(shù)據(jù)的寫入時刻。
[0030]也就是說,在本發(fā)明中,根據(jù)所述數(shù)據(jù)的寫入時刻,就可以確定在發(fā)出讀請求時,該數(shù)據(jù)是否完成了同步,具體地,上述方法還包括:確定所述寫入時刻到當(dāng)前時刻的時間長度,判斷所述時間長度是否大于預(yù)設(shè)閾值,并依據(jù)上述判斷結(jié)果將該讀請求發(fā)送至主庫或者從庫以讀取該數(shù)據(jù)。
[0031]如果該數(shù)據(jù)的寫入時刻到當(dāng)前時刻的時間長度大于預(yù)設(shè)閾值,可以認(rèn)為該數(shù)據(jù)已經(jīng)從主庫中同步到了從庫中,那么,中間件將讀請求發(fā)送至從庫以讀取該數(shù)據(jù);而如果時間長度小于閾值,就說明該數(shù)據(jù)還未同步到從庫中,從而,中間件將該讀請求發(fā)送至主庫,以直接從主庫中進(jìn)行讀取。通過這樣的方式,在讀取數(shù)據(jù)時,即使從庫中未完成數(shù)據(jù)的同步,仍可以直接從主庫中讀取該數(shù)據(jù),不會因為數(shù)據(jù)未完成同步,而導(dǎo)致讀取數(shù)據(jù)時發(fā)生失敗的情況,有效提升了讀取數(shù)據(jù)的成功率。
[0032]這里需要說明的是,數(shù)據(jù)的寫入操作由主庫執(zhí)行,也即,中間件在接收到客戶端發(fā)送的數(shù)據(jù)的寫請求之后,將該寫請求發(fā)送給主庫以進(jìn)行數(shù)據(jù)寫入。那么,數(shù)據(jù)的寫入時刻,就是主庫接收到寫請求并對該數(shù)據(jù)進(jìn)行寫入操作的時刻。具體地,依據(jù)本發(fā)明的一個實施例,在接收針對數(shù)據(jù)的讀請求之前,還包括:接收針對所述數(shù)據(jù)的寫請求,并將所述寫請求發(fā)送至主庫以進(jìn)行寫入,記錄所述數(shù)據(jù)的寫入時刻。
[0033]這樣一來,主庫中所寫入的所有的數(shù)據(jù),均有各自所對應(yīng)的寫入時刻。當(dāng)然,在本發(fā)明中,對于數(shù)據(jù)的寫入時刻的記錄,可以在主庫完成數(shù)據(jù)的寫入后,立即通知中間件,中間件將記錄接收到該通知的時刻,作為該數(shù)據(jù)的寫入時刻。當(dāng)然,在本發(fā)明的另一種方式下,也可由負(fù)責(zé)寫入數(shù)據(jù)的主庫記錄各數(shù)據(jù)對應(yīng)的寫入時刻,中間件會實時讀取主庫所記錄的數(shù)據(jù)的寫入時刻。
[0034]依據(jù)本發(fā)明的一個實施例,中間件查找到數(shù)據(jù)的寫入時刻后,就可以確定出該寫入時刻到當(dāng)前時刻的時間長度。本發(fā)明實施例中,當(dāng)前時刻就是中間件接收到針對數(shù)據(jù)的讀請求的時刻。
[0035]還需要說明的是,主庫在寫入數(shù)據(jù)之后,會向從庫同步數(shù)據(jù),具體地,主庫向從庫同步數(shù)據(jù)的方式,可以采用化“呢日志的方式同步數(shù)據(jù),也即,主庫將已經(jīng)寫入的數(shù)據(jù)記載在13111108日志中,將該6111108日志發(fā)送至從庫,從庫接收到該61 = 108日志后重放該日志中的各操作記錄,完成數(shù)據(jù)的同步。當(dāng)然,這樣的同步方式并不構(gòu)成對本發(fā)明的限定。顯然,從庫完成數(shù)據(jù)的同步需要一定的時間。
[0036]那么,對于中間件所接收到的讀請求,其所要讀取的數(shù)據(jù)可能已經(jīng)完成了同步,也可能未完成同步。因此,中間件將根據(jù)當(dāng)前時刻到該數(shù)據(jù)的寫入時刻的時間長度,和預(yù)先設(shè)置的閾值,來判斷該數(shù)據(jù)是否完成同步,進(jìn)而根據(jù)判斷結(jié)果確定將該讀請求發(fā)送給主庫還是從庫。
[0037]具體地,中間件判斷數(shù)據(jù)的寫入時刻到當(dāng)前時刻的時間長度,是否大于預(yù)置閾值。如果時間長度大于(或等于)預(yù)設(shè)閾值,就說明從庫已經(jīng)完成了數(shù)據(jù)的同步,中間件便將針對該數(shù)據(jù)的讀請求,發(fā)送至從庫以進(jìn)行讀取。而如果時間長度小于預(yù)設(shè)閾值,就說明從庫還未完成數(shù)據(jù)的同步,此時中間件將該讀請求發(fā)送至從庫,就會造成讀取失敗,因此,為了能夠成功讀取數(shù)據(jù),中間件將該讀請求發(fā)送至主庫。
[0038]其中,上述預(yù)設(shè)閾值的設(shè)定方法,具體可以為:確定所述主庫將數(shù)據(jù)同步到從庫的平均時長,將該平均時長設(shè)定為所述預(yù)設(shè)閾值。這是因為,主庫將不同的數(shù)據(jù)同步到從庫所需的時間各不相同,為了反映所有數(shù)據(jù)同步過程的耗時,將各數(shù)據(jù)進(jìn)行同步所需的時長進(jìn)行平均后,得到平均時長,將該平均時長設(shè)定為預(yù)設(shè)閾值。通過該預(yù)設(shè)閾值,便可以基本確定數(shù)據(jù)是否已經(jīng)同步完成。
[0039]在實際應(yīng)用中,少數(shù)數(shù)據(jù)在同步過程中耗時較長,可能會大于預(yù)設(shè)閾值,因此,作為本發(fā)明實施例的另一種方式,也可以將同步數(shù)據(jù)的最大時長設(shè)定為所述預(yù)設(shè)閾值。上述預(yù)設(shè)閾值的方式可以根據(jù)實際應(yīng)用的需要進(jìn)行調(diào)整設(shè)置,并不構(gòu)成對本發(fā)明的限定。
[0040]當(dāng)然,上述預(yù)設(shè)閾值是動態(tài)變化的,預(yù)設(shè)閾值將根據(jù)已完成同步的數(shù)據(jù)進(jìn)行變化,具體地,已完成同步的數(shù)據(jù)的數(shù)量越多,主庫將數(shù)據(jù)同步到從庫的平均時長就越精確(即越能準(zhǔn)確反映整體耗時的大小)。
[0041]本發(fā)明所述的數(shù)據(jù)操作方法的具體應(yīng)用實例如下:
[0042]圖2示出了在實際應(yīng)用中,客戶端、中間件、主庫以及從庫的連接架構(gòu)。假設(shè)預(yù)設(shè)閾值為28,主庫中已寫入數(shù)據(jù)4和數(shù)據(jù)8,其中,數(shù)據(jù)4的寫入時刻為10:20:17,數(shù)據(jù)8的寫入時刻為10:20:20。
[0043]在10:20:21時,中間件接收到客戶端發(fā)送的讀請求I和讀請求II,其中,讀請求I所要讀取的數(shù)據(jù)為數(shù)據(jù)八,讀請求II所要讀取的數(shù)據(jù)為數(shù)據(jù)8。
[0044]中間件查找記錄的該數(shù)據(jù)4的寫入時刻為10:20:17,該數(shù)據(jù)4的寫入時刻到當(dāng)前時刻(10:20:21)的時間長度為48,顯然,時間長度48大于預(yù)設(shè)閾值28,這就說明,該數(shù)據(jù)八已經(jīng)同步到了從庫中,因此,中間件將該讀請求I發(fā)送至從庫,以讀取數(shù)據(jù)八。
[0045]中間件查找記錄的該數(shù)據(jù)8的寫入時刻為10: 20: 20,該數(shù)據(jù)8的寫入時刻到當(dāng)前時刻(10:20:21)的時間長度為18,顯然,時間長度18小于預(yù)設(shè)閾值28,這就說明,該數(shù)據(jù)8還未完成同步,因此,中間件將該讀請求II直接發(fā)送至主庫,以讀取數(shù)據(jù)8。
[0046]如圖3所示,結(jié)合上述方法及應(yīng)用實例,在本發(fā)明中,圖1中的數(shù)據(jù)操作方法8101?3103的實際應(yīng)用如下:
[0047]8301:中間件接收針對數(shù)據(jù)的讀請求。
[0048]8302:中間件查找已記錄的所述數(shù)據(jù)的寫入時刻。
[0049]8303:中間件確定所述寫入時刻到當(dāng)前時刻的時間長度。
[0050]3304:中間件判斷所述時間長度是否大于預(yù)設(shè)閾值,若是,則執(zhí)行步驟3305,否貝0,則執(zhí)行步驟3306。
[0051]8305:中間件將所述讀請求發(fā)送至從庫以讀取所述數(shù)據(jù)。
[0052]8306:中間件將所述讀請求發(fā)送至主庫以讀取所述數(shù)據(jù)。
[0053]以上為本發(fā)明實施例提供的數(shù)據(jù)操作方法,基于同樣的思路,本發(fā)明實施例還提供一種數(shù)據(jù)操作裝置,如圖4所示。
[0054]圖4中的數(shù)據(jù)操作裝置,設(shè)置在中間件中,與客戶端和服務(wù)器相連接,所述裝置包括:接收模塊401、查找模塊402、時間模塊403以及判斷處理模塊404,其中,
[0055]所述接收模塊401,用于接收針對數(shù)據(jù)的讀請求。
[0056]所述查找模塊402,用于查找記錄的將所述數(shù)據(jù)寫入主庫的寫入時刻。
[0057]所述時間模塊403,用于確定所述寫入時刻到當(dāng)前時刻的時間長度。
[0058]所述判斷處理模塊404,用于判斷所述時間長度是否大于預(yù)設(shè)閾值,若是,則將該讀請求發(fā)送至從庫以讀取該數(shù)據(jù),否則,則將該讀請求發(fā)送至主庫以讀取該數(shù)據(jù)。
[0059]在本發(fā)明的一個實施例中,所述接收模塊401,還用于接收針對所述數(shù)據(jù)的寫請求。
[0060]在本發(fā)明的一個實施例中,所述判斷處理模塊404,還用于將接收的針對所述數(shù)據(jù)的寫請求發(fā)送至主庫以進(jìn)行寫入。
[0061]在本發(fā)明的一個實施例中,所述數(shù)據(jù)操作裝置,還包括:記錄模塊405,用于記錄所述數(shù)據(jù)寫入主庫時的寫入時刻。
[0062]所述預(yù)設(shè)閾值通過以下方式設(shè)定:確定所述主庫將數(shù)據(jù)同步到從庫的平均時長,將該平均時長設(shè)定為所述預(yù)設(shè)閾值;或者,確定所述主庫將數(shù)據(jù)同步到從庫的最大時長,將該最大時長設(shè)定為所述預(yù)設(shè)閾值。
[0063]本發(fā)明實施例提供一種數(shù)據(jù)操作方法及裝置,該方法中間件在接收到針對某一數(shù)據(jù)的讀請求后,并不是直接將該讀請求發(fā)送至從庫以讀取數(shù)據(jù),而是查找已記錄的該數(shù)據(jù)的寫入時刻,判斷該數(shù)據(jù)的寫入時刻到當(dāng)前時刻的時間長度是否大于預(yù)設(shè)的閾值,如果時間長度大于閾值,可以認(rèn)為該數(shù)據(jù)已經(jīng)從主庫中同步到了從庫中,那么,中間件將讀請求發(fā)送至從庫以讀取該數(shù)據(jù);而如果時間長度小于閾值,就說明該數(shù)據(jù)還未同步到從庫中,從而,中間件將該讀請求發(fā)送至主庫,以直接從主庫中進(jìn)行讀取。通過這樣的方式,在讀取數(shù)據(jù)時,即使從庫中未完成數(shù)據(jù)的同步,仍可以直接從主庫中讀取該數(shù)據(jù),不會因為數(shù)據(jù)未完成同步,而導(dǎo)致讀取數(shù)據(jù)時發(fā)生失敗的情況,有效提升了讀取數(shù)據(jù)的成功率。
[0064]在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。
[0065]在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細(xì)節(jié)的情況下實踐。在一些實例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
[0066]類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循【具體實施方式】的權(quán)利要求書由此明確地并入該【具體實施方式】,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。
[0067]本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
[0068]此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實施例的任意之一都可以以任意的組合方式來使用。
[0069]本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(039)來實現(xiàn)根據(jù)本發(fā)明實施例的攔截應(yīng)用程序中的植入信息的設(shè)備中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
[0070]應(yīng)該注意的是上述實施例對本發(fā)明進(jìn)行說明而不是對本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包括”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
[0071]本發(fā)明可以應(yīng)用于計算機系統(tǒng)/服務(wù)器,其可與眾多其它通用或?qū)S糜嬎阆到y(tǒng)環(huán)境或配置一起操作。適于與計算機系統(tǒng)/服務(wù)器一起使用的眾所周知的計算系統(tǒng)、環(huán)境和/或配置的例子包括但不限于:個人計算機系統(tǒng)、服務(wù)器計算機系統(tǒng)、瘦客戶機、厚客戶機、手持或膝上設(shè)備、基于微處理器的系統(tǒng)、機頂盒、可編程消費電子產(chǎn)品、網(wǎng)絡(luò)個人電腦、小型計算機系統(tǒng)、大型計算機系統(tǒng)和包括上述任何系統(tǒng)的分布式云計算技術(shù)環(huán)境,等等。
[0072]計算機系統(tǒng)/服務(wù)器可以在由計算機系統(tǒng)執(zhí)行的計算機系統(tǒng)可執(zhí)行指令(諸如程序模塊)的一般語境下描述。通常,程序模塊可以包括例程、程序、目標(biāo)程序、組件、邏輯、數(shù)據(jù)結(jié)構(gòu)等等,它們執(zhí)行特定的任務(wù)或者實現(xiàn)特定的抽象數(shù)據(jù)類型。計算機系統(tǒng)/服務(wù)器可以在分布式云計算環(huán)境中實施,分布式云計算環(huán)境中,任務(wù)是由通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行的。在分布式云計算環(huán)境中,程序模塊可以位于包括存儲設(shè)備的本地或遠(yuǎn)程計算系統(tǒng)存儲介質(zhì)上。
【權(quán)利要求】
1.一種數(shù)據(jù)操作方法,其特征在于,所述方法包括: 接收針對數(shù)據(jù)的讀請求; 查找記錄的將所述數(shù)據(jù)寫入主庫的寫入時刻;以及 根據(jù)所述寫入時刻將該讀請求發(fā)送至主庫或者從庫以讀取該數(shù)據(jù)。
2.如權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 確定所述寫入時刻到當(dāng)前時刻的時間長度;以及 判斷所述時間長度是否大于預(yù)設(shè)閾值; 其中,根據(jù)所述寫入時刻將該讀請求發(fā)送至主庫或者從庫以讀取該數(shù)據(jù)具體包括: 依據(jù)上述判斷結(jié)果將該讀請求發(fā)送至主庫或者從庫以讀取該數(shù)據(jù)。
3.如權(quán)利要求2所述的方法,其特征在于, 若所述時間長度大于預(yù)設(shè)閾值,則將該讀請求發(fā)送至從庫以讀取該數(shù)據(jù); 否則,則將該讀請求發(fā)送至主庫以讀取該數(shù)據(jù)。
4.如權(quán)利要求1-3中任一項所述的方法,其特征在于,接收針對數(shù)據(jù)的讀請求之前,所述方法還包括: 接收針對所述數(shù)據(jù)的寫請求; 將所述寫請求發(fā)送至主庫以進(jìn)行寫入;以及 記錄所述數(shù)據(jù)的寫入時刻。
5.如權(quán)利要求1-4中任一項所述的方法,其特征在于,所述預(yù)設(shè)閾值通過以下方式設(shè)定: 確定所述主庫將數(shù)據(jù)同步到從庫的平均時長,將該平均時長設(shè)定為所述預(yù)設(shè)閾值。
6.如權(quán)利要求1-4中任一項所述的方法,其特征在于,所述預(yù)設(shè)閾值通過以下方式設(shè)定: 確定所述主庫將數(shù)據(jù)同步到從庫的最大時長,將該最大時長設(shè)定為所述預(yù)設(shè)閾值。
7.一種數(shù)據(jù)操作裝置,其特征在于,所述裝置包括:接收模塊、查找模塊、時差模塊以及判斷處理模塊,其中; 所述接收模塊,用于接收針對數(shù)據(jù)的讀請求; 所述查找模塊,用于查找記錄的將所述數(shù)據(jù)寫入主庫的寫入時刻; 所述時間模塊,用于確定所述寫入時刻到當(dāng)前時刻的時間長度;以及所述判斷處理模塊,用于判斷所述時間長度是否大于預(yù)設(shè)閾值,若是,則將該讀請求發(fā)送至從庫以讀取該數(shù)據(jù),否則,則將該讀請求發(fā)送至主庫以讀取該數(shù)據(jù)。
8.如權(quán)利要求7所述的裝置,其特征在于,所述接收模塊還用于接收針對所述數(shù)據(jù)的寫請求。
9.如權(quán)利要求8所述的裝置,其特征在于,所述判斷處理模塊還用于將接收的針對所述數(shù)據(jù)的寫請求發(fā)送至主庫以進(jìn)行寫入。
10.如權(quán)利要求9所述的裝置,其特征在于,所述裝置還包括:記錄模塊,用于記錄所述數(shù)據(jù)寫入主庫時的寫入時刻。
11.如權(quán)利要求7-10中任一項所述的裝置,其特征在于,所述預(yù)設(shè)閾值通過以下方式設(shè)定: 確定所述主庫將數(shù)據(jù)同步到從庫的平均時長,將該平均時長設(shè)定為所述預(yù)設(shè)閾值。
12.如權(quán)利要求7-10中任一項所述的裝置,其特征在于,所述預(yù)設(shè)閾值通過以下方式設(shè)定: 確定所述主庫將數(shù)據(jù)同步到從庫的最大時長,將該最大時長設(shè)定為所述預(yù)設(shè)閾值。
【文檔編號】G06F17/30GK104376127SQ201410773822
【公開日】2015年2月25日 申請日期:2014年12月12日 優(yōu)先權(quán)日:2014年12月12日
【發(fā)明者】朱超, 陳非, 王超 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司