業(yè)務(wù)數(shù)據(jù)的處理方法、裝置及分布式內(nèi)存數(shù)據(jù)庫系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及業(yè)務(wù)支撐技術(shù)領(lǐng)域,尤指一種業(yè)務(wù)數(shù)據(jù)的處理方法、裝置及分布式內(nèi) 存數(shù)據(jù)庫系統(tǒng)。
【背景技術(shù)】
[0002] 目前,為了業(yè)務(wù)支撐系統(tǒng)能夠快速進(jìn)行查詢和判斷處理,計費(fèi)帳務(wù)系統(tǒng)往往需要 建設(shè)一套內(nèi)存數(shù)據(jù)庫(MemoryDataBase,MDB)系統(tǒng),以利用內(nèi)存訪問的高效性提升系統(tǒng)效 率。在內(nèi)存數(shù)據(jù)庫的建設(shè)中,一般按照業(yè)務(wù)類型拆分為幾個內(nèi)存數(shù)據(jù)庫,比如:內(nèi)存數(shù)據(jù)庫 A存放用戶訂購的產(chǎn)品,內(nèi)存數(shù)據(jù)庫B存放用戶的賬單信息等。
[0003] 隨著用戶的增加和業(yè)務(wù)的發(fā)展,數(shù)據(jù)量越來越巨大,對于內(nèi)存容量的要求也越來 越高。而現(xiàn)有的技術(shù)將同一類數(shù)據(jù)存放在一個內(nèi)存數(shù)據(jù)庫中,這要求單個服務(wù)器的內(nèi)存要 越來越大,而業(yè)界可能還沒有如此規(guī)模內(nèi)存的服務(wù)器,即使存在,其購買和維護(hù)成本也非常 局I昂。
[0004] 另一方面,如此巨大的內(nèi)存,其備份和恢復(fù)時間會非常漫長。而對于電信運(yùn)營商而 言,一旦遭遇系統(tǒng)崩潰,需要及時恢復(fù)系統(tǒng)。漫長的恢復(fù)時間,會導(dǎo)致業(yè)務(wù)中斷較久,影響用 戶的滿意度,并且由于無法及時將透支用戶停機(jī),也會影響自身的經(jīng)濟(jì)利益。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明實(shí)施例提供了一種業(yè)務(wù)數(shù)據(jù)的處理方法、裝置及分布式內(nèi)存數(shù)據(jù)庫系統(tǒng), 以實(shí)現(xiàn)對分布式內(nèi)存數(shù)據(jù)庫中存儲的業(yè)務(wù)數(shù)據(jù)進(jìn)行處理。
[0006] 本發(fā)明實(shí)施例提供的一種業(yè)務(wù)數(shù)據(jù)的處理方法,包括:
[0007] 接收應(yīng)用程序發(fā)送的攜帶有對至少一個用戶的業(yè)務(wù)數(shù)據(jù)進(jìn)行更新的處理請求;
[0008] 在路由內(nèi)存數(shù)據(jù)庫中確定所述用戶的業(yè)務(wù)數(shù)據(jù)在分布式內(nèi)存數(shù)據(jù)庫的各業(yè)務(wù)內(nèi) 存數(shù)據(jù)庫中的存儲信息;
[0009] 在存儲所述用戶的業(yè)務(wù)數(shù)據(jù)的業(yè)務(wù)內(nèi)存數(shù)據(jù)庫中,對所述用戶的業(yè)務(wù)數(shù)據(jù)采用增 量的方式進(jìn)行更新處理;
[0010] 在所述處理請求中所有的用戶的業(yè)務(wù)數(shù)據(jù)均更新完成后,根據(jù)所述用戶的業(yè)務(wù)數(shù) 據(jù)更新狀態(tài)向所述應(yīng)用程序返回相應(yīng)的數(shù)據(jù)處理結(jié)果。
[0011] 本發(fā)明實(shí)施例提供的上述業(yè)務(wù)數(shù)據(jù)的處理方法,在接收到用戶的業(yè)務(wù)數(shù)據(jù)更新的 處理請求后,通過查找路由內(nèi)存數(shù)據(jù)庫的方式,確定用戶的業(yè)務(wù)數(shù)據(jù)在分布式內(nèi)存數(shù)據(jù)庫 的各業(yè)務(wù)內(nèi)存數(shù)據(jù)庫中的存儲信息;根據(jù)存儲信息在對應(yīng)的業(yè)務(wù)內(nèi)存數(shù)據(jù)庫中,分別對用 戶的業(yè)務(wù)數(shù)據(jù)采用增量的方式進(jìn)行更新處理,以實(shí)現(xiàn)對分布式內(nèi)存數(shù)據(jù)庫中各業(yè)務(wù)內(nèi)存數(shù) 據(jù)庫存儲的業(yè)務(wù)數(shù)據(jù)進(jìn)行準(zhǔn)確的事務(wù)處理。
[0012] 較佳地,在本發(fā)明實(shí)施例提供的上述處理方法中,根據(jù)所述用戶的業(yè)務(wù)數(shù)據(jù)更新 狀態(tài)向所述應(yīng)用程序返回相應(yīng)的數(shù)據(jù)處理結(jié)果,具體包括:
[0013] 在全部所述用戶的業(yè)務(wù)數(shù)據(jù)均更新成功時,向所述應(yīng)用程序返回數(shù)據(jù)處理成功的 結(jié)果;
[0014] 在部分或全部所述用戶的業(yè)務(wù)數(shù)據(jù)更新失敗時,向所述應(yīng)用程序返回數(shù)據(jù)處理失 敗的結(jié)果。
[0015] 較佳地,在本發(fā)明實(shí)施例提供的上述處理方法中,在部分所述用戶的業(yè)務(wù)數(shù)據(jù)更 新失敗時,還包括:
[0016] 采用增量反向處理的方式,對更新成功的用戶的業(yè)務(wù)數(shù)據(jù)進(jìn)行反向更新處理。
[0017] 較佳地,在本發(fā)明實(shí)施例提供的上述處理方法中,在路由內(nèi)存數(shù)據(jù)庫中確定所述 用戶的業(yè)務(wù)數(shù)據(jù)在分布式內(nèi)存數(shù)據(jù)庫的各業(yè)務(wù)內(nèi)存數(shù)據(jù)庫中的存儲信息時,還包括:獲取 所述用戶在所述路由內(nèi)存數(shù)據(jù)庫中存儲的版本號;
[0018] 在存儲所述用戶的業(yè)務(wù)數(shù)據(jù)的業(yè)務(wù)內(nèi)存數(shù)據(jù)庫中,對所述用戶的業(yè)務(wù)數(shù)據(jù)采用 增量的方式進(jìn)行更新處理時,還包括:獲取所述用戶在所述業(yè)務(wù)內(nèi)存數(shù)據(jù)庫中存儲的版本 號;
[0019] 所述處理方法還包括:在確定所述用戶在所述路由內(nèi)存數(shù)據(jù)庫中存儲的版本號與 在所述業(yè)務(wù)內(nèi)存數(shù)據(jù)庫中存儲的版本號不一致時,按照兩者中最新的版本號對應(yīng)的用戶的 業(yè)務(wù)數(shù)據(jù)存儲信息,對所述路由內(nèi)存數(shù)據(jù)庫中存儲的所述用戶的業(yè)務(wù)數(shù)據(jù)存儲信息或在所 述業(yè)務(wù)內(nèi)存數(shù)據(jù)庫中存儲的所述用戶的業(yè)務(wù)數(shù)據(jù)存儲信息進(jìn)行更新操作。
[0020] 較佳地,在本發(fā)明實(shí)施例提供的上述處理方法中,還包括:
[0021] 接收應(yīng)用程序發(fā)送的變更用戶信息請求,在所述路由內(nèi)存數(shù)據(jù)庫中采用增加用戶 信息的方式對用戶信息進(jìn)行變更;
[0022] 按照預(yù)先設(shè)定的分布式內(nèi)存數(shù)據(jù)庫的分庫規(guī)則,判斷更新用戶信息后的用戶是否 需要進(jìn)行轉(zhuǎn)庫處理,若是,在分布式內(nèi)存數(shù)據(jù)庫中對用戶的業(yè)務(wù)數(shù)據(jù)進(jìn)行轉(zhuǎn)庫處理,并在路 由內(nèi)存數(shù)據(jù)庫和業(yè)務(wù)內(nèi)存數(shù)據(jù)庫中升級所述轉(zhuǎn)庫處理后的用戶的版本號。
[0023] 較佳地,在本發(fā)明實(shí)施例提供的上述處理方法中,在存儲所述用戶的業(yè)務(wù)數(shù)據(jù)的 業(yè)務(wù)內(nèi)存數(shù)據(jù)庫中,對所述用戶的業(yè)務(wù)數(shù)據(jù)采用增量的方式進(jìn)行更新處理之前,還包括:
[0024] 在所述業(yè)務(wù)內(nèi)存數(shù)據(jù)庫中確定存儲的所述用戶的業(yè)務(wù)數(shù)據(jù)是否存在分賬業(yè)務(wù)數(shù) 據(jù);
[0025] 在確定所述用戶的業(yè)務(wù)數(shù)據(jù)存在分賬業(yè)務(wù)數(shù)據(jù)時,判斷所述分賬業(yè)務(wù)數(shù)據(jù)對應(yīng)的 代付用戶的業(yè)務(wù)數(shù)據(jù)與所述用戶的業(yè)務(wù)數(shù)據(jù)是否存儲在同一業(yè)務(wù)內(nèi)存數(shù)據(jù)庫中,若否,對 所述用戶的業(yè)務(wù)數(shù)據(jù)中的原始業(yè)務(wù)數(shù)據(jù)進(jìn)行加鎖處理。
[0026] 較佳地,在本發(fā)明實(shí)施例提供的上述處理方法中,所述分賬業(yè)務(wù)數(shù)據(jù)對應(yīng)的代付 用戶的業(yè)務(wù)數(shù)據(jù)與所述用戶的業(yè)務(wù)數(shù)據(jù)存儲在不同業(yè)務(wù)內(nèi)存數(shù)據(jù)庫中,對所述用戶的業(yè)務(wù) 數(shù)據(jù)進(jìn)行更新處理,具體包括:
[0027] 對所述用戶的業(yè)務(wù)數(shù)據(jù)中的原始業(yè)務(wù)數(shù)據(jù)和分賬業(yè)務(wù)數(shù)據(jù)分別進(jìn)行更新處理;
[0028] 對所述分賬業(yè)務(wù)數(shù)據(jù)對應(yīng)的所述代付用戶的業(yè)務(wù)數(shù)據(jù)進(jìn)行更新處理。
[0029] 較佳地,在本發(fā)明實(shí)施例提供的上述處理方法中,所述分賬業(yè)務(wù)數(shù)據(jù)對應(yīng)的代付 用戶的業(yè)務(wù)數(shù)據(jù)與所述用戶的業(yè)務(wù)數(shù)據(jù)存儲在不同業(yè)務(wù)內(nèi)存數(shù)據(jù)庫中,對所述用戶的業(yè)務(wù) 數(shù)據(jù)進(jìn)行更新處理之后,還包括:
[0030] 對所述用戶的業(yè)務(wù)數(shù)據(jù)中的原始業(yè)務(wù)數(shù)據(jù)進(jìn)行解鎖處理。
[0031] 本發(fā)明實(shí)施例提供的一種業(yè)務(wù)數(shù)據(jù)的處理裝置,包括:
[0032] 接收單元,用于接收應(yīng)用程序發(fā)送的攜帶有對至少一個用戶的業(yè)務(wù)數(shù)據(jù)進(jìn)行更新 的處理請求;
[0033] 用戶信息查詢單元,在路由內(nèi)存數(shù)據(jù)庫中確定所述用戶的業(yè)務(wù)數(shù)據(jù)在分布式內(nèi)存 數(shù)據(jù)庫的各業(yè)務(wù)內(nèi)存數(shù)據(jù)庫中的存儲信息;
[0034] 業(yè)務(wù)數(shù)據(jù)更新單元,用于在存儲所述用戶的業(yè)務(wù)數(shù)據(jù)的業(yè)務(wù)內(nèi)存數(shù)據(jù)庫中,對所 述用戶的業(yè)務(wù)數(shù)據(jù)采用增量的方式進(jìn)行更新處理;
[0035] 更新反饋單元,用于在所述處理請求中所有的用戶的業(yè)務(wù)數(shù)據(jù)均更新完成后,根 據(jù)所述用戶的業(yè)務(wù)數(shù)據(jù)更新狀態(tài)向所述應(yīng)用程序返回相應(yīng)的數(shù)據(jù)處理結(jié)果。
[0036] 較佳地,在本發(fā)明實(shí)施例提供的上述處理裝置中,所述更新反饋單元,具體用于在 全部所述用戶的業(yè)務(wù)數(shù)據(jù)均更新成功時,向所述應(yīng)用程序返回數(shù)據(jù)處理成功的結(jié)果;在部 分或全部所述用戶的業(yè)務(wù)數(shù)據(jù)更新失敗時,向所述應(yīng)用程序返回數(shù)據(jù)處理失敗的結(jié)果。
[0037] 較佳地,在本發(fā)明實(shí)施例提供的上述處理裝置中,所述業(yè)務(wù)數(shù)據(jù)更新單元,還用于 在部分所述用戶的業(yè)務(wù)數(shù)據(jù)更新失敗時,采用增量反向處理的方式,對更新成功的用戶的 業(yè)務(wù)數(shù)據(jù)進(jìn)行反向更新處理。
[0038] 較佳地,在本發(fā)明實(shí)施例提供的上述處理裝置中,還包括:版本號更新單元;
[0039] 所述用戶信息查詢單元,還用于在路由內(nèi)存數(shù)據(jù)庫中確定所述用戶的業(yè)務(wù)數(shù)據(jù)在 分布式內(nèi)存數(shù)據(jù)庫的各業(yè)務(wù)內(nèi)存數(shù)據(jù)庫中的存儲信息時,獲取所述用戶在所述路由內(nèi)存數(shù) 據(jù)庫中存儲的版本號,在存儲所述用戶的業(yè)務(wù)數(shù)據(jù)的業(yè)務(wù)內(nèi)存數(shù)據(jù)庫中,對所述用戶的業(yè) 務(wù)數(shù)據(jù)采用增量的方式進(jìn)行更新處理時,獲取所述用戶在所述業(yè)務(wù)內(nèi)存數(shù)據(jù)庫中存儲的版 本