本申請涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)存儲方法和數(shù)據(jù)存儲裝置。
背景技術(shù):
對于業(yè)務(wù)量非常大的系統(tǒng),往往需要存儲和處理的數(shù)據(jù)量也是非常大的,導(dǎo)致單個數(shù)據(jù)庫無法滿足容量及性能要求。
現(xiàn)有技術(shù)中,在需要將數(shù)據(jù)保存到多個數(shù)據(jù)庫時,應(yīng)用系統(tǒng)根據(jù)業(yè)務(wù)維度(如UserId)進(jìn)行拆分,根據(jù)與數(shù)據(jù)庫的個數(shù)有關(guān)的規(guī)則(如根據(jù)UserId尾號對數(shù)據(jù)庫個數(shù)的余數(shù))將數(shù)據(jù)路由到多個數(shù)據(jù)庫中,查詢或者修改數(shù)據(jù)時,再根據(jù)UserId路由到對應(yīng)的數(shù)據(jù)庫查找數(shù)據(jù)。
但是,現(xiàn)有技術(shù)的上述方案會導(dǎo)致數(shù)據(jù)存儲性能較差,例如,由于路由規(guī)則與數(shù)據(jù)庫個數(shù)相關(guān),如果需要在改變數(shù)據(jù)庫個數(shù)后,會涉及大量的數(shù)據(jù)遷移等問題,并且一個尾數(shù)只能固定對應(yīng)到一個數(shù)據(jù)庫,如果該數(shù)據(jù)庫故障就會造成數(shù)據(jù)存儲失敗,以及由于與業(yè)務(wù)維度有關(guān)每次都需要解析出業(yè)務(wù)維度。
技術(shù)實現(xiàn)要素:
本申請旨在至少在一定程度上解決相關(guān)技術(shù)中的技術(shù)問題之一。
為此,本申請的一個目的在于提出一種數(shù)據(jù)存儲方法,該方法可以提高數(shù)據(jù)存儲性能。
本申請的另一個目的在于提出一種數(shù)據(jù)存儲裝置。
為達(dá)到上述目的,本申請第一方面實施例提出的數(shù)據(jù)存儲方法,包括:接收發(fā)送方發(fā)送的要存儲的數(shù)據(jù);在多個數(shù)據(jù)庫中選擇一個可用數(shù)據(jù)庫;根據(jù)選擇的數(shù)據(jù)庫的編號為所述數(shù)據(jù)生成唯一標(biāo)識,并將所述數(shù)據(jù)存儲到所述選擇的數(shù)據(jù)庫。
本申請第一方面實施例提出的數(shù)據(jù)存儲方法,通過選擇可用的數(shù)據(jù)庫,而不是根據(jù)與數(shù)據(jù)庫個數(shù)有關(guān)的路由規(guī)則確定數(shù)據(jù)庫,可以在數(shù)據(jù)庫個數(shù)改變時不需要數(shù)據(jù)遷移,從而可以靈活動態(tài)的改變數(shù)據(jù)庫的個數(shù);并且,不是根據(jù)業(yè)務(wù)維度的尾號確定數(shù)據(jù)庫,可以避免將尾號與數(shù)據(jù)庫固定對應(yīng),這樣在數(shù)據(jù)庫故障后,可以選擇新的可用數(shù)據(jù)庫,避免數(shù)據(jù)存儲失??;以及根據(jù)選擇的數(shù)據(jù)庫的編號生成數(shù)據(jù)的唯一標(biāo)識,也不需要解析數(shù)據(jù)的業(yè)務(wù) 維度,降低工作量,從而通過上述手段可以提高數(shù)據(jù)存儲性能。
為達(dá)到上述目的,本申請第二方面實施例提出的數(shù)據(jù)存儲裝置,包括:接收模塊,用于接收發(fā)送方發(fā)送的要存儲的數(shù)據(jù);選擇模塊,用于在多個數(shù)據(jù)庫中選擇一個可用數(shù)據(jù)庫;存儲模塊,用于根據(jù)選擇的數(shù)據(jù)庫的編號為所述數(shù)據(jù)生成唯一標(biāo)識,并將所述數(shù)據(jù)存儲到所述選擇的數(shù)據(jù)庫。
本申請第二方面實施例提出的數(shù)據(jù)存儲裝置,通過選擇可用的數(shù)據(jù)庫,而不是根據(jù)與數(shù)據(jù)庫個數(shù)有關(guān)的路由規(guī)則確定數(shù)據(jù)庫,可以在數(shù)據(jù)庫個數(shù)改變時不需要數(shù)據(jù)遷移,從而可以靈活動態(tài)的改變數(shù)據(jù)庫的個數(shù);并且,不是根據(jù)業(yè)務(wù)維度的尾號確定數(shù)據(jù)庫,可以避免將尾號與數(shù)據(jù)庫固定對應(yīng),這樣在數(shù)據(jù)庫故障后,可以選擇新的可用數(shù)據(jù)庫,避免數(shù)據(jù)存儲失??;以及根據(jù)選擇的數(shù)據(jù)庫的編號生成數(shù)據(jù)的唯一標(biāo)識,也不需要解析數(shù)據(jù)的業(yè)務(wù)維度,降低工作量,從而通過上述手段可以提高數(shù)據(jù)存儲性能。
本申請附加的方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本申請的實踐了解到。
附圖說明
本申請上述的和/或附加的方面和優(yōu)點從下面結(jié)合附圖對實施例的描述中將變得明顯和容易理解,其中:
圖1是本申請實施例基于的數(shù)據(jù)存儲系統(tǒng)的結(jié)構(gòu)示意圖;
圖2是本申請一實施例提出的數(shù)據(jù)存儲方法的流程示意圖;
圖3是本申請另一實施例提出的數(shù)據(jù)存儲方法的流程示意圖;
圖4是本申請另一實施例提出的數(shù)據(jù)存儲裝置的結(jié)構(gòu)示意圖;
圖5是本申請另一實施例提出的數(shù)據(jù)存儲裝置的結(jié)構(gòu)示意圖。
具體實施方式
下面詳細(xì)描述本申請的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號表示相同或類似的模塊或具有相同或類似功能的模塊。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本申請,而不能理解為對本申請的限制。相反,本申請的實施例包括落入所附加權(quán)利要求書的精神和內(nèi)涵范圍內(nèi)的所有變化、修改和等同物。
為了更好的理解的本申請,先對本申請涉及的數(shù)據(jù)存儲系統(tǒng)進(jìn)行說明。如圖1所示,數(shù)據(jù)存儲系統(tǒng)可以包括應(yīng)用系統(tǒng)11和多個數(shù)據(jù)庫12,多個是指至少兩個。應(yīng)用系統(tǒng)11可以接收來自發(fā)送方(圖中未示出)的數(shù)據(jù),發(fā)送方例如用戶設(shè)備,應(yīng)用系統(tǒng)11將接收的數(shù)據(jù)存儲到多個數(shù)據(jù)庫12中的一個中?,F(xiàn)有技術(shù)中,通常會根據(jù)數(shù)據(jù)的業(yè)務(wù)維度(如UserId) 和與數(shù)據(jù)庫個數(shù)有關(guān)的規(guī)則路由到一個數(shù)據(jù)庫中。但是,現(xiàn)有技術(shù)中存在上述的問題。
為此,本申請不是根據(jù)業(yè)務(wù)維度,也不是根據(jù)與數(shù)據(jù)庫個數(shù)有關(guān)的規(guī)則進(jìn)行數(shù)據(jù)存儲。
圖2是本申請一實施例提出的數(shù)據(jù)存儲方法的流程示意圖,該方法包括:
S21:接收發(fā)送方發(fā)送的要存儲的數(shù)據(jù)。
例如,要存儲的數(shù)據(jù)是用戶通過用戶設(shè)備發(fā)送給應(yīng)用系統(tǒng)的。
S22:在多個數(shù)據(jù)庫中選擇一個可用數(shù)據(jù)庫。
如圖1所示,本實施例基于的系統(tǒng)是存在多個數(shù)據(jù)庫,多個是指至少兩個。應(yīng)用系統(tǒng)需要將接收的數(shù)據(jù)存儲到該多個數(shù)據(jù)庫中的一個。
可選的,應(yīng)用系統(tǒng)在啟動后,可以獲取其連接的多個數(shù)據(jù)庫的運行狀態(tài),根據(jù)運行狀態(tài)確定可用數(shù)據(jù)庫,其中,運行狀態(tài)包括正常和非正常,可用數(shù)據(jù)庫是指運行狀態(tài)是正常的數(shù)據(jù)庫。具體的,應(yīng)用系統(tǒng)可以啟動后可以與每個數(shù)據(jù)庫進(jìn)行通信來獲取數(shù)據(jù)庫的運行狀態(tài),例如,應(yīng)用系統(tǒng)向一個數(shù)據(jù)庫發(fā)送消息,如果可以正常接收到反饋消息,則確定該數(shù)據(jù)庫的運行狀態(tài)是正常,否則,如果不能收到反饋消息或者收到錯誤的反饋消息,則確定該數(shù)據(jù)庫的運行狀態(tài)是非正常。
當(dāng)可用數(shù)據(jù)庫是一個時,將該一個可用數(shù)據(jù)庫確定為選擇的一個可用數(shù)據(jù)庫?;蛘?,
當(dāng)可用數(shù)據(jù)庫是多個時,可以從多個可用數(shù)據(jù)庫中選擇一個可用數(shù)據(jù)庫。例如,可以隨機(jī)選擇或者輪循選擇等。
S23:根據(jù)選擇的數(shù)據(jù)庫的編號為所述數(shù)據(jù)生成唯一標(biāo)識,并將所述數(shù)據(jù)存儲到所述選擇的數(shù)據(jù)庫。
可選的,應(yīng)用系統(tǒng)在啟動后,可以為與其連接的每個數(shù)據(jù)庫分配編號,例如,第一個數(shù)據(jù)庫的編號是1,第二個數(shù)據(jù)庫的編號是2等。
應(yīng)用系統(tǒng)在得到選擇的數(shù)據(jù)庫后,由于該數(shù)據(jù)庫已被編號,因此可以獲取該數(shù)據(jù)庫的編號。
在獲取選擇的數(shù)據(jù)庫的編號后,可以根據(jù)該編號生成數(shù)據(jù)的唯一標(biāo)識(ID)。例如,唯一標(biāo)識是:數(shù)據(jù)庫編號+序列號,序列號例如是按序生成的。例如,第一個數(shù)據(jù)庫中的數(shù)據(jù)的唯一標(biāo)識是:11,12…,第二個數(shù)據(jù)庫中的數(shù)據(jù)的唯一標(biāo)識是:21,22…。
在為每個數(shù)據(jù)生成唯一標(biāo)識后,可以在選擇的數(shù)據(jù)庫中將該唯一標(biāo)識與數(shù)據(jù)對應(yīng)保存。
本實施例中,通過選擇可用的數(shù)據(jù)庫,而不是根據(jù)與數(shù)據(jù)庫個數(shù)有關(guān)的路由規(guī)則確定數(shù)據(jù)庫,可以在數(shù)據(jù)庫個數(shù)改變時不需要數(shù)據(jù)遷移,從而可以靈活動態(tài)的改變數(shù)據(jù)庫的個數(shù);并且,不是根據(jù)業(yè)務(wù)維度的尾號確定數(shù)據(jù)庫,可以避免將尾號與數(shù)據(jù)庫固定對應(yīng),這樣在數(shù)據(jù)庫故障后,可以選擇新的可用數(shù)據(jù)庫,避免數(shù)據(jù)存儲失敗;以及根據(jù)選擇的數(shù)據(jù) 庫的編號生成數(shù)據(jù)的唯一標(biāo)識,也不需要解析數(shù)據(jù)的業(yè)務(wù)維度,降低工作量,從而通過上述手段可以提高數(shù)據(jù)存儲性能。
圖3是本申請另一實施例提出的數(shù)據(jù)存儲方法的流程示意圖,該方法包括:
S301:應(yīng)用系統(tǒng)接收到發(fā)送方發(fā)送的數(shù)據(jù)后,選擇一個可用數(shù)據(jù)庫。
具體內(nèi)容可以參見上一實施例,在此不再贅述。
S302:應(yīng)用系統(tǒng)為該數(shù)據(jù)生成唯一ID。
具體內(nèi)容可以參見上一實施例,在此不再贅述。
S303:應(yīng)用系統(tǒng)保存該唯一ID。
應(yīng)用系統(tǒng)在生成唯一ID后,可以記錄保存該唯一ID。
S304:應(yīng)用系統(tǒng)將數(shù)據(jù)存儲到選擇的數(shù)據(jù)庫,并判斷是否成功存儲,若是,執(zhí)行S305,否則,執(zhí)行S306。
其中,可以根據(jù)數(shù)據(jù)存儲到的反饋消息,確定數(shù)據(jù)是否成功存儲,例如,在成功存儲時,應(yīng)用系統(tǒng)可以接收到數(shù)據(jù)庫表明存儲成功的消息,而沒有成功存儲,應(yīng)用系統(tǒng)會接收到數(shù)據(jù)庫表明存儲失敗的消息。表明存儲成功的消息或表明存儲失敗的消息的具體格式可以由應(yīng)用系統(tǒng)和數(shù)據(jù)庫之間預(yù)先約定。
S305:應(yīng)用系統(tǒng)向發(fā)送方返回唯一ID。
例如,應(yīng)用系統(tǒng)將唯一ID發(fā)送給用戶設(shè)備。
用戶設(shè)備在后續(xù)流程中可以根據(jù)該唯一ID在數(shù)據(jù)庫中訪問該數(shù)據(jù)。例如,用戶設(shè)備需要查詢,修改或者刪除該數(shù)據(jù)時,可以在發(fā)送的查詢請求,修改請求或者刪除請求中攜帶該唯一ID,以查詢請求為例,應(yīng)用系統(tǒng)接收到查詢請求后,可以從中解析出唯一ID,再根據(jù)預(yù)設(shè)設(shè)置的唯一ID的生成規(guī)則,確定出數(shù)據(jù)所在的數(shù)據(jù)庫,之后應(yīng)用系統(tǒng)可以向該數(shù)據(jù)庫發(fā)送結(jié)構(gòu)化查詢語言(Structured Query Language,SQL)指令,該SQL指令中也攜帶唯一ID,由于數(shù)據(jù)庫中數(shù)據(jù)與唯一ID對應(yīng)保存,因此根據(jù)該唯一ID可以查詢到相應(yīng)的數(shù)據(jù)。
可以理解的是,本實施例以用戶設(shè)備采用本申請生成的唯一ID訪問數(shù)據(jù)為例,還可以是在應(yīng)用系統(tǒng)中建立原有數(shù)據(jù)的標(biāo)識信息與本申請中的唯一ID的映射關(guān)系,這樣可以在后續(xù)用戶設(shè)備需要訪問一個數(shù)據(jù)時,保持用戶設(shè)備發(fā)送的訪問請求中的數(shù)據(jù)標(biāo)識不變,而根據(jù)建立的數(shù)據(jù)標(biāo)識與唯一ID的映射關(guān)系,確定出唯一ID,進(jìn)而再根據(jù)唯一ID訪問相應(yīng)的數(shù)據(jù)。
S306:應(yīng)用系統(tǒng)判斷是否達(dá)到最大失敗次數(shù),若是,執(zhí)行S307,否則,執(zhí)行S308。
其中,可以預(yù)先設(shè)置最大失敗次數(shù),初始時的失敗次數(shù)設(shè)置為0,之后沒發(fā)生一次存儲失敗,將當(dāng)前的失敗次數(shù)增加1,因此,根據(jù)記錄的當(dāng)前的失敗次數(shù)以及預(yù)設(shè)的最大失敗次數(shù),可以判斷是否達(dá)到最大失敗次數(shù)。
S307:保存失敗。
例如,數(shù)據(jù)庫向應(yīng)用系統(tǒng)反饋失敗消息,應(yīng)用系統(tǒng)還可以向用戶設(shè)備反饋失敗消息等。
S308:異常分析判斷。
當(dāng)存儲失敗時,應(yīng)用系統(tǒng)可以根據(jù)預(yù)設(shè)規(guī)則分析失敗原因。例如,可以預(yù)設(shè)設(shè)置反饋消息與失敗原因的對應(yīng)關(guān)系,從而可以根據(jù)反饋消息確定失敗原因。
S309:判斷是否數(shù)據(jù)庫異常,若是,執(zhí)行S310,否則,執(zhí)行S311。
如上所示,例如,可以根據(jù)反饋消息確定出對應(yīng)的失敗原因,從而判斷是否是數(shù)據(jù)庫異常,數(shù)據(jù)庫異常例如為數(shù)據(jù)庫故障,宕機(jī)等。
S310:重新選擇一個可用數(shù)據(jù)庫。
例如,應(yīng)用系統(tǒng)在啟動后,就會實時監(jiān)控每個數(shù)據(jù)庫的運行狀態(tài)信息,從而根據(jù)運行狀態(tài)信息確定可用數(shù)據(jù)庫,并進(jìn)行選擇。
S311:保存失敗。
本實施例中,通過選擇可用的數(shù)據(jù)庫,而不是根據(jù)與數(shù)據(jù)庫個數(shù)有關(guān)的路由規(guī)則確定數(shù)據(jù)庫,可以在數(shù)據(jù)庫個數(shù)改變時不需要數(shù)據(jù)遷移,從而可以靈活動態(tài)的改變數(shù)據(jù)庫的個數(shù);并且,不是根據(jù)業(yè)務(wù)維度的尾號確定數(shù)據(jù)庫,可以避免將尾號與數(shù)據(jù)庫固定對應(yīng),這樣在數(shù)據(jù)庫故障后,可以選擇新的可用數(shù)據(jù)庫,避免數(shù)據(jù)存儲失敗;以及根據(jù)選擇的數(shù)據(jù)庫的編號生成數(shù)據(jù)的唯一標(biāo)識,也不需要解析數(shù)據(jù)的業(yè)務(wù)維度,降低工作量,從而通過上述手段可以提高數(shù)據(jù)存儲性能。本實施例通過上述手段,可以達(dá)到多個數(shù)據(jù)庫之間無業(yè)務(wù)狀態(tài)差異,完全平等獨立的存儲和管理數(shù)據(jù)。
圖4是本申請另一實施例提出的數(shù)據(jù)存儲裝置的結(jié)構(gòu)示意圖,該裝置可以位于應(yīng)用系統(tǒng)中,該裝置40包括接收模塊41,選擇模塊42和存儲模塊43。
接收模塊41,用于接收發(fā)送方發(fā)送的要存儲的數(shù)據(jù);
例如,要存儲的數(shù)據(jù)是用戶通過用戶設(shè)備發(fā)送給接收模塊的。
選擇模塊42,用于在多個數(shù)據(jù)庫中選擇一個可用數(shù)據(jù)庫;
如圖1所示,本實施例基于的系統(tǒng)是存在多個數(shù)據(jù)庫,多個是指至少兩個。應(yīng)用系統(tǒng)需要將接收的數(shù)據(jù)存儲到該多個數(shù)據(jù)庫中的一個。
可選的,應(yīng)用系統(tǒng)在啟動后,可以獲取其連接的多個數(shù)據(jù)庫的運行狀態(tài),根據(jù)運行狀態(tài)確定可用數(shù)據(jù)庫,其中,運行狀態(tài)包括正常和非正常,可用數(shù)據(jù)庫是指運行狀態(tài)是正常的數(shù)據(jù)庫。具體的,應(yīng)用系統(tǒng)可以啟動后可以與每個數(shù)據(jù)庫進(jìn)行通信來獲取數(shù)據(jù)庫的運行狀態(tài),例如,應(yīng)用系統(tǒng)向一個數(shù)據(jù)庫發(fā)送消息,如果可以正常接收到反饋消息,則確定該數(shù)據(jù)庫的運行狀態(tài)是正常,否則,如果不能收到反饋消息或者收到錯誤的反饋消息,則確定該數(shù)據(jù)庫的運行狀態(tài)是非正常。
當(dāng)可用數(shù)據(jù)庫是一個時,將該一個可用數(shù)據(jù)庫確定為選擇的一個可用數(shù)據(jù)庫?;蛘?,
當(dāng)可用數(shù)據(jù)庫是多個時,可以從多個可用數(shù)據(jù)庫中選擇一個可用數(shù)據(jù)庫。例如,可以隨機(jī)選擇或者輪循選擇等。
存儲模塊43,用于根據(jù)選擇的數(shù)據(jù)庫的編號為所述數(shù)據(jù)生成唯一標(biāo)識,并將所述數(shù)據(jù)存儲到所述選擇的數(shù)據(jù)庫。
可選的,應(yīng)用系統(tǒng)在啟動后,可以為與其連接的每個數(shù)據(jù)庫分配編號,例如,第一個數(shù)據(jù)庫的編號是1,第二個數(shù)據(jù)庫的編號是2等。
應(yīng)用系統(tǒng)在得到選擇的數(shù)據(jù)庫后,由于該數(shù)據(jù)庫已被編號,因此可以獲取該數(shù)據(jù)庫的編號。
在獲取選擇的數(shù)據(jù)庫的編號后,可以根據(jù)該編號生成數(shù)據(jù)的唯一標(biāo)識(ID)。例如,唯一標(biāo)識是:數(shù)據(jù)庫編號+序列號,序列號例如是按序生成的。例如,第一個數(shù)據(jù)庫中的數(shù)據(jù)的唯一標(biāo)識是:11,12…,第二個數(shù)據(jù)庫中的數(shù)據(jù)的唯一標(biāo)識是:21,22…。
在為每個數(shù)據(jù)生成唯一標(biāo)識后,可以在選擇的數(shù)據(jù)庫中將該唯一標(biāo)識與數(shù)據(jù)對應(yīng)保存。
參見圖5,另一實施例中,該裝置40還包括:
發(fā)送模塊44,用于如果所述數(shù)據(jù)成功存儲到所述選擇的數(shù)據(jù)庫,將所述唯一標(biāo)識發(fā)送給所述發(fā)送方,以便所述發(fā)送方后續(xù)根據(jù)所述唯一標(biāo)識在數(shù)據(jù)庫中訪問所述數(shù)據(jù)。
例如,發(fā)送模塊將唯一ID發(fā)送給用戶設(shè)備。
用戶設(shè)備在后續(xù)流程中可以根據(jù)該唯一ID在數(shù)據(jù)庫中訪問該數(shù)據(jù)。例如,用戶設(shè)備需要查詢,修改或者刪除該數(shù)據(jù)時,可以在發(fā)送的查詢請求,修改請求或者刪除請求中攜帶該唯一ID,以查詢請求為例,應(yīng)用系統(tǒng)接收到查詢請求后,可以從中解析出唯一ID,再根據(jù)預(yù)設(shè)設(shè)置的唯一ID的生成規(guī)則,確定出數(shù)據(jù)所在的數(shù)據(jù)庫,之后應(yīng)用系統(tǒng)可以向該數(shù)據(jù)庫發(fā)送結(jié)構(gòu)化查詢語言(Structured Query Language,SQL)指令,該SQL指令中也攜帶唯一ID,由于數(shù)據(jù)庫中數(shù)據(jù)與唯一ID對應(yīng)保存,因此根據(jù)該唯一ID可以查詢到相應(yīng)的數(shù)據(jù)。
參見圖5,另一實施例中,該裝置40還包括:
更新模塊45,用于如果所述數(shù)據(jù)沒有成功存儲到所述選擇的數(shù)據(jù)庫時,并在所述選擇的數(shù)據(jù)庫發(fā)生故障造成沒有成功存儲時,重新選擇一個可用數(shù)據(jù)庫;根據(jù)重新選擇的數(shù)據(jù)庫的編號重新生成唯一標(biāo)識,并用重新生成的唯一標(biāo)識更新已有的唯一標(biāo)識,以及,將所述數(shù)據(jù)存儲到所述重新選擇的數(shù)據(jù)庫。
例如,應(yīng)用系統(tǒng)在啟動后,就會實時監(jiān)控每個數(shù)據(jù)庫的運行狀態(tài)信息,從而根據(jù)運行狀態(tài)信息確定可用數(shù)據(jù)庫,并進(jìn)行選擇。
參見圖5,另一實施例中,該裝置40還包括:
判斷模塊46,用于判斷沒有成功存儲的次數(shù)是否達(dá)到最大失敗次數(shù),以便在沒有達(dá)到最大失敗次數(shù)時,在所述選擇的數(shù)據(jù)庫發(fā)生故障造成沒有成功存儲時,重新選擇一個可用數(shù)據(jù)庫。
其中,可以預(yù)先設(shè)置最大失敗次數(shù),初始時的失敗次數(shù)設(shè)置為0,之后沒發(fā)生一次存儲失敗,將當(dāng)前的失敗次數(shù)增加1,因此,根據(jù)記錄的當(dāng)前的失敗次數(shù)以及預(yù)設(shè)的最大失敗次數(shù),可以判斷是否達(dá)到最大失敗次數(shù)。
參見圖5,另一實施例中,該裝置40還包括:
獲取模塊47,用于獲取所述多個數(shù)據(jù)庫中每個數(shù)據(jù)庫的運行狀態(tài)信息,以便根據(jù)所述運行狀態(tài)信息在多個數(shù)據(jù)庫中選擇一個可用數(shù)據(jù)庫;以及,為每個數(shù)據(jù)庫分配一個編號,以便獲取所述選擇的數(shù)據(jù)庫的編號。
本實施例中,通過選擇可用的數(shù)據(jù)庫,而不是根據(jù)與數(shù)據(jù)庫個數(shù)有關(guān)的路由規(guī)則確定數(shù)據(jù)庫,可以在數(shù)據(jù)庫個數(shù)改變時不需要數(shù)據(jù)遷移,從而可以靈活動態(tài)的改變數(shù)據(jù)庫的個數(shù);并且,不是根據(jù)業(yè)務(wù)維度的尾號確定數(shù)據(jù)庫,可以避免將尾號與數(shù)據(jù)庫固定對應(yīng),這樣在數(shù)據(jù)庫故障后,可以選擇新的可用數(shù)據(jù)庫,避免數(shù)據(jù)存儲失敗;以及根據(jù)選擇的數(shù)據(jù)庫的編號生成數(shù)據(jù)的唯一標(biāo)識,也不需要解析數(shù)據(jù)的業(yè)務(wù)維度,降低工作量,從而通過上述手段可以提高數(shù)據(jù)存儲性能。本實施例通過上述手段,可以達(dá)到多個數(shù)據(jù)庫之間無業(yè)務(wù)狀態(tài)差異,完全平等獨立的存儲和管理數(shù)據(jù)。
需要說明的是,在本申請的描述中,術(shù)語“第一”、“第二”等僅用于描述目的,而不能理解為指示或暗示相對重要性。此外,在本申請的描述中,除非另有說明,“多個”的含義是兩個或兩個以上。
流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個或更多個用于實現(xiàn)特定邏輯功能或過程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本申請的優(yōu)選實施方式的范圍包括另外的實現(xiàn),其中可以不按所示出或討論的順序,包括根據(jù)所涉及的功能按基本同時的方式或按相反的順序,來執(zhí)行功能,這應(yīng)被本申請的實施例所屬技術(shù)領(lǐng)域的技術(shù)人員所理解。
應(yīng)當(dāng)理解,本申請的各部分可以用硬件、軟件、固件或它們的組合來實現(xiàn)。在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來實現(xiàn)。例如,如果用硬件來實現(xiàn),和在另一實施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項或他們的組合來實現(xiàn):具有用于對數(shù)據(jù)信號實現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現(xiàn)場可編程門陣列(FPGA)等。
本技術(shù)領(lǐng)域的普通技術(shù)人員可以理解實現(xiàn)上述實施例方法攜帶的全部或部分步驟是可 以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計算機(jī)可讀存儲介質(zhì)中,該程序在執(zhí)行時,包括方法實施例的步驟之一或其組合。
此外,在本申請各個實施例中的各功能單元可以集成在一個處理模塊中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。所述集成的模塊如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,也可以存儲在一個計算機(jī)可讀取存儲介質(zhì)中。
上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。
在本說明書的描述中,參考術(shù)語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點包含于本申請的至少一個實施例或示例中。在本說明書中,對上述術(shù)語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結(jié)合。
盡管上面已經(jīng)示出和描述了本申請的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本申請的限制,本領(lǐng)域的普通技術(shù)人員在本申請的范圍內(nèi)可以對上述實施例進(jìn)行變化、修改、替換和變型。