• / 20
  • 下載費用:30 金幣  

一種數據存儲方法及終端.pdf

摘要
申請專利號:

CN201510998390.0

申請日:

2015.12.26

公開號:

CN105491149A

公開日:

2016.04.13

當前法律狀態:

授權

有效性:

有權

法律詳情: 授權|||實質審查的生效IPC(主分類):H04L 29/08申請日:20151226|||公開
IPC分類號: H04L29/08; G06F17/30 主分類號: H04L29/08
申請人: 深圳市金立通信設備有限公司
發明人: 賴正盛
地址: 518040廣東省深圳市福田區深南大道7028號時代科技大廈東座21樓
優先權:
專利代理機構: 廣州三環專利代理有限公司44202 代理人: 郝傳鑫; 熊永強
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201510998390.0

授權公告號:

||||||

法律狀態公告日:

2019.04.23|||2016.05.18|||2016.04.13

法律狀態類型:

授權|||實質審查的生效|||公開

摘要

本發明實施例提供了一種數據存儲方法及終端。其中,該方法包括:接收數據存儲請求,數據存儲請求攜帶目標用戶標識和用戶數據;將目標用戶標識按照預設的映射算法進行運算,并根據運算結果查詢目標用戶標識對應的目標轉存節點,目標轉存節點對應多個用戶標識;在存儲映射表中查詢目標轉存節點對應的目標存儲節點,存儲映射表中記錄有轉存節點與存儲轉存節點對應用戶數據的存儲節點之間的一一對應關系或多對一對應關系;將數據存儲請求攜帶的用戶數據存儲至目標存儲節點中對應目標用戶標識的存儲位置。通過本發明實施例,避免了在進行大量數據的分布式存儲時產生大映射表,提高查詢目標用戶所對應的目標存儲節點的效率。

權利要求書

1.一種數據存儲方法,其特征在于,所述方法包括:
接收數據存儲請求,所述數據存儲請求攜帶目標用戶標識和用戶數據;
將所述目標用戶標識按照預設的映射算法進行運算,并根據運算結果查詢
所述目標用戶標識對應的目標轉存節點,其中,所述目標轉存節點對應多個用
戶標識;
在存儲映射表中查詢所述目標轉存節點對應的目標存儲節點,所述存儲映
射表中記錄有轉存節點與存儲所述轉存節點對應用戶數據的存儲節點之間的一
一對應關系或多對一對應關系;
將所述數據存儲請求攜帶的所述用戶數據存儲至所述目標存儲節點中對應
所述目標用戶標識的存儲位置。
2.根據權利要求1所述的方法,其特征在于,所述將所述數據存儲請求攜
帶的所述用戶數據存儲至所述目標存儲節點中對應所述目標用戶標識的存儲位
置之后,還包括:
根據所述目標存儲節點中存儲的用戶數據判斷所述目標存儲節點是否過負
荷;
若判斷出所述目標存儲節點過負荷,則從所述目標存儲節點所存儲的多個
轉存節點對應的用戶數據中選擇部分轉存節點對應的用戶數據作為待遷移用戶
數據,并從尚未過負荷的存儲節點中選擇至少一個存儲節點作為待遷移存儲節
點,或從新增的存儲節點中選擇至少一個存儲節點作為所述待遷移存儲節點,
其中,所述待遷移存儲節點的剩余總存儲容量大于所述待遷移用戶數據的數據
量;
將所述待遷移用戶數據遷移到所述待遷移存儲節點中,并更新所述存儲映
射表。
3.根據權利要求2所述的方法,其特征在于,所述根據所述目標存儲節點
中存儲的用戶數據判斷所述目標存儲節點是否過負荷,包括:
持續統計所述目標存儲節點在每一時間周期內的用戶數據增長速度,在所
述用戶數據增長速度超過預設增長速度閾值時判定所述目標存儲節點過負荷;
或,
統計所述目標存儲節點中存儲的用戶數據的數量,在所述目標存儲節點中
用戶數據的數量超過預設容量閾值時判定所述目標存儲節點過負荷。
4.根據權利要求1-3任一項所述的方法,其特征在于,所述映射算法包括
哈希算法。
5.根據權利要求1-3任一項所述的方法,其特征在于,所述存儲映射表存
儲在所述分布式數據庫的內存中。
6.一種終端,其特征在于,所述終端包括:
接收單元,用于接收數據存儲請求,所述數據存儲請求攜帶目標用戶標識
和用戶數據;
第一查詢單元,用于將所述目標用戶標識按照預設的映射算法進行運算,
并根據運算結果查詢所述目標用戶標識對應的目標轉存節點,其中,所述目標
轉存節點對應多個用戶標識;
第二查詢單元,用于在存儲映射表中查詢所述目標轉存節點對應的目標存
儲節點,所述存儲映射表中記錄有轉存節點與存儲所述轉存節點對應用戶數據
的存儲節點之間的一一對應關系或多對一對應關系;
存儲單元,用于將所述數據存儲請求攜帶的所述用戶數據存儲至所述目標
存儲節點中對應所述目標用戶標識的存儲位置。
7.根據權利要求6所述的終端,其特征在于,所述終端還包括:
判斷單元,用于根據所述目標存儲節點中存儲的用戶數據判斷所述目標存
儲節點是否過負荷;
選擇單元,用于若所述判斷單元判斷出所述目標存儲節點過負荷,則從所
述目標存儲節點所存儲的多個轉存節點對應的用戶數據中選擇部分轉存節點對
應的用戶數據作為待遷移用戶數據,并從尚未過負荷的存儲節點中選擇至少一
個存儲節點作為待遷移存儲節點,或從新增的存儲節點中選擇至少一個存儲節
點作為所述待遷移存儲節點,其中,所述待遷移存儲節點的剩余總存儲容量大
于所述待遷移用戶數據的數據量;
遷移單元,用于將所述待遷移用戶數據遷移到所述待遷移存儲節點中,并
更新所述存儲映射表。
8.根據權利要求7所述的終端,其特征在于,所述判斷單元具體用于:
持續統計所述目標存儲節點在每一時間周期內的用戶數據增長速度,在所
述用戶數據增長速度超過預設增長速度閾值時判定所述目標存儲節點過負荷;
或,
統計所述目標存儲節點中存儲的用戶數據的數量,在所述目標存儲節點中
用戶數據的數量超過預設容量閾值時判定所述目標存儲節點過負荷。
9.根據權利要求6-8任一項所述的終端,其特征在于,所述映射算法包括
哈希算法。
10.根據權利要求6-8任一項所述的終端,其特征在于,所述存儲映射表存
儲在所述分布式數據庫的內存中。

說明書

一種數據存儲方法及終端

技術領域

本發明涉及計算機技術領域,具體涉及一種數據存儲方法及終端。

背景技術

分布式數據庫系統是邏輯上屬于同一系統,物理上分布在用計算機網絡連
接的多個節點(Node)上的數據集合。節點在計算機網絡中連接在一起,每個節點
都是一個獨立的數據庫系統。在分布式數據庫系統中,用戶數據按照一定的分
布規則分布在不同的存儲節點中,用戶每次訪問或修改用戶數據時需要先定位
用戶數據所在的存儲節點,然后再從該存儲節點中存取用戶數據。

目前,常見的分布規則有按記錄標識分布、按用戶活躍度分布等。其中,
按記錄標識分布需要業務服務器維護一張映射表,在映射表中記錄有記錄標識
和存儲節點的對應關系,當用戶數據量很大時,映射表也將變的很大,導致業
務服務器在映射表中查詢目標用戶所對應的存儲節點的效率降低;按用戶活躍
度分布也需要業務服務器維護一張映射表,在映射表中記錄有用戶活躍度和存
儲節點的對應關系,當用戶數據量很大時,映射表也將變的很大,并且并非所
有數據庫系統均支持用戶活躍度的統計測量,導致此種分布規則的應用受限。

發明內容

本發明實施例提供了一種數據存儲方法及終端,可以避免在進行大量用戶
數據的分布式存儲時產生記錄條數過多的映射表,提高查詢目標用戶所對應的
目標存儲節點的效率,從而提高用戶數據的存儲效率。

第一方面,本發明實施例提供了一種數據存儲方法,包括:

接收數據存儲請求,所述數據存儲請求攜帶目標用戶標識和用戶數據;

將所述目標用戶標識按照預設的映射算法進行運算,并根據運算結果查詢
所述目標用戶標識對應的目標轉存節點,其中,所述目標轉存節點對應多個用
戶標識;

在存儲映射表中查詢所述目標轉存節點對應的目標存儲節點,所述存儲映
射表中記錄有轉存節點與存儲所述轉存節點對應用戶數據的存儲節點之間的一
一對應關系或多對一對應關系;

將所述數據存儲請求攜帶的所述用戶數據存儲至所述目標存儲節點中對應
所述目標用戶標識的存儲位置。

第二方面,本發明實施例提供了一種終端,包括:

接收單元,用于接收數據存儲請求,所述數據存儲請求攜帶目標用戶標識
和用戶數據;

第一查詢單元,用于將所述目標用戶標識按照預設的映射算法進行運算,
并根據運算結果查詢所述目標用戶標識對應的目標轉存節點,其中,所述目標
轉存節點對應多個用戶標識;

第二查詢單元,用于在存儲映射表中查詢所述目標轉存節點對應的目標存
儲節點,所述存儲映射表中記錄有轉存節點與存儲所述轉存節點對應用戶數據
的存儲節點之間的一一對應關系或多對一對應關系;

存儲單元,用于將所述數據存儲請求攜帶的所述用戶數據存儲至所述目標
存儲節點中對應所述目標用戶標識的存儲位置。

通過實施本發明實施例,終端接收數據存儲請求,將數據存儲請求中攜帶
的目標用戶標識按照預設的映射算法進行運算,并根據運算結果查詢目標用戶
標識對應的目標轉存節點,并在存儲映射表中查詢目標轉存節點對應的目標存
儲節點,進而將數據存儲請求中攜帶的用戶數據存儲至目標存儲節點中對應目
標用戶標識的存儲位置。因此在終端將大量用戶數據按照分布式數據存儲方式
存儲到多個存儲節點時,可以避免映射表中用戶標識與存儲節點的對應關系過
多,提高終端在映射表中查詢目標用戶所對應的目標存儲節點的效率,從而提
高用戶數據的存儲效率。

附圖說明

為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所
需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一
些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還
可以根據這些附圖獲得其他的附圖。

圖1是本發明實施例提供的一種數據存儲方法的流程示意圖;

圖2是本發明實施例提供的另一種數據存儲方法的流程示意圖;

圖3是本發明實施例提供的一種終端的結構示意圖;

圖4是本發明實施例提供的另一種終端的結構示意圖;

圖5是本發明實施例提供的一種分布式數據庫系統的結構示意圖;

圖6是本發明實施例提供的另一種分布式數據庫系統的結構示意圖;

圖7是本發明實施例提供的另一種終端的結構示意圖。

具體實施方式

下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清
楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部
的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞
動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。

請參見圖1,圖1是本發明實施例提供的一種數據存儲方法的流程示意圖。
如圖1所示,該數據存儲方法可以包括但不限于以下步驟。

S101、接收數據存儲請求,數據存儲請求攜帶目標用戶標識和用戶數據。

本發明實施例中,終端接收用戶輸入的數據存儲請求,該數據存儲請求攜
帶目標用戶標識和用戶數據,終端提取數據存儲請求中攜帶的目標用戶標識和
用戶數據,具體的,該目標用戶標識可為QQ號碼、微信號碼等,該目標用戶
標識還可以為QQ號碼、微信號碼等各種號碼轉換后的二進制值。具體的,用
戶可以通過終端中安裝的數據庫APP(Application,應用程序)中的選項觸發該
數據存儲請求。

S103、將目標用戶標識按照預設的映射算法進行運算,并根據運算結果查
詢目標用戶標識對應的目標轉存節點,其中,目標轉存節點對應多個用戶標識。

本發明實施例中,終端提取出數據存儲請求中攜帶的目標用戶標識后,將
目標用戶標識按照預設的映射算法進行運算,其中,該預設的映射算法可包括
但不限于哈希算法,例如:MD5算法(Message-DigestAlgorithm5,信息-摘要
算法5)、除留取余算法、平方取中算法等。終端采用哈希算法將目標用戶標識
對應的任意長度的二進制值映射為較短的固定長度的二進制值,得到哈希值,
并根據運算結果(即哈希值)查詢目標用戶標識對應的目標轉存節點,其中,
若終端所對應的分布式數據庫系統包括多個轉存節點,則每個轉存節點對應一
個或多個用戶標識,且多個轉存節點中至少有一個轉存節點對應多個用戶標識,
且多個轉存節點各自對應的用戶標識的個數可以相同,也可以不同。例如,第
一轉存節點對應一個用戶標識,第二轉存節點對應兩個用戶標識,第三轉存節
點對應三個用戶標識;或者,第一轉存節點、第二轉存節點和第三轉存節點各
自對應兩個用戶標識,等等。需要說明的是,若終端采用的映射算法為MD5算
法,則多個轉存節點各自對應的用戶標識的個數相同。因此將用戶標識進行哈
希運算之后,可將多個用戶標識分別映射到不同的轉存節點上,也可以將不同
用戶標識映射到同一個轉存節點上,因此,一個轉存節點可對應多個用戶標識,
轉存節點的數量小于用戶標識的數量,從而避免了將用戶標識直接映射到存儲
節點時產生的大映射表,縮減了映射條數。

舉例來說,若終端所對應的分布式數據庫系統中存儲有12個用戶對應的用
戶數據,該12個用戶的用戶標識分別為1、3、5、6、8、9、12、14、16、17、
19和20,終端所采用的預設的哈希算法為除留取余法,且運算的參數為%11,
則將上述12個用戶的用戶標識分別進行哈希運算,即1%11=1,3%11=3,5%11=5,
6%11=6,8%11=8,9%11=9,12%11=1,14%11=3,16%11=5,17%11=6,19%11=8,
20%11=9,因此進行哈希運算之后得到的12個哈希值分別為1、3、5、6、8、9、
1、3、5、6、8和9,則可知哈希值為1的用戶標識1和用戶標識12對應的目
標轉存節點為哈希值1指示的轉存節點L1,哈希值為3的用戶標識3和用戶標
識14對應的目標轉存節點為哈希值3指示的轉存節點L3,哈希值為5的用戶標
識5和用戶標識16對應的目標轉存節點為哈希值5指示的轉存節點L5,哈希值
為6的用戶標識6和用戶標識17對應的目標轉存節點為哈希值6指示的轉存節
點L6,哈希值為8的用戶標識8和用戶標識19對應的目標轉存節點為哈希值8
指示的轉存節點L8,哈希值為9的用戶標識9和用戶標識20對應的目標轉存節
點為哈希值9指示的轉存節點L9。

S105、在存儲映射表中查詢目標轉存節點對應的目標存儲節點,存儲映射
表中記錄有轉存節點與存儲轉存節點對應用戶數據的存儲節點之間的一一對應
關系或多對一對應關系。

本發明實施例中,終端讀取存儲映射表,在存儲映射表中查詢目標轉存節
點對應的目標存儲節點,該存儲映射表中記錄有轉存節點標識與存儲該轉存節
點對應用戶數據的存儲節點的標識之間的一一對應關系或多對一對應關系,其
中,每個存儲節點對應一個或多個轉存節點。為了提高終端讀取存儲映射表的
效率,可以將存儲映射表緩存在分布式數據庫系統的內存中,終端直接從分布
式數據庫系統的內存中讀取存儲映射表,不再通過分布式數據庫系統的磁盤讀
取存儲映射表,大大提高了終端讀取存儲映射表的效率。

具體來說,存儲映射表可采用例如但不限于如下表1結構:

表1

轉存節點標識
存儲節點標識
L1
502
L3
502
L5
504
L6
504
L8
506
L9
506

由表1可知,轉存節點標識為L1和L3的轉存節點對應存儲節點502,轉
存節點標識為L5和L6的轉存節點對應存儲節點504,轉存節點標識為L8和
L9的轉存節點對應存儲節點506,由此可知,用戶標識為1、3、12和14的用
戶對應存儲節點502,用戶標識為5、6、16和17的用戶對應存儲節點504,用
戶標識為8、9、19和20的用戶對應存儲節點506。其中,存儲節點的數量小于
轉存節點的數量,因此存儲節點的數量更加小于用戶標識的數量,從而避免了
將用戶標識直接映射到存儲節點時產生的映射條數過多的映射表,縮減了映射
表中的映射條數。

S107、將數據存儲請求攜帶的用戶數據存儲至目標存儲節點中對應目標用
戶標識的存儲位置。

本發明實施例中,存儲節點502-506中的每一個存儲節點都存儲有多個用戶
數據,每一個用戶數據由該用戶數據的數據標識唯一標識,該數據標識可以包
括但不限于用戶標識和數據項標識。例如,存儲節點502中存儲有用戶1的年
齡“18歲”,則“18歲”即為存儲節點502中存儲的用戶數據,該用戶數據由
用戶標識“1”和數據項標識“年齡”唯一標識。

具體來說,每一存儲節點都維護一張數據映射表,數據映射表中記錄有每
個用戶數據的數據標識與該用戶數據在存儲節點中的存儲位置之間的對應關系,
其中數據標識可唯一標識該數據標識對應的用戶數據。在具體實現過程中,當
存儲節點502采用數據表來存儲用戶數據時,數據映射表可采用例如但不限于
如下表2所示結構:

表2

數據標識
存儲位置
用戶1、年齡
數據表1
用戶3、身高
數據表2

由表2可知,數據標識為“用戶1、年齡”的用戶數據保存在存儲節點502
中存儲的數據表1中,數據標識為“用戶3、身高”的用戶數據保存在存儲節點
502中存儲的數據表2中。

終端通過上述映射算法和存儲映射表查詢到目標用戶標識對應的目標存儲
節點后,將數據存儲請求中攜帶的用戶數據存儲至目標存儲節點中對應目標用
戶標識的存儲位置,例如,若終端查詢到目標存儲節點為存儲節點502,且具體
為存儲節點502中的數據表1,且數據存儲請求中攜帶的用戶數據為用戶1的身
高“180cm”,則終端將用戶數據“180cm”存儲到存儲節點502中的數據表1
中。

需要說明的是,本發明實施例描述的為數據存儲時的應用場景,用戶通過
終端從存儲節點中讀取用戶數據時,終端根據用戶標識查詢用戶標識對應的存
儲節點的執行操作同上,此處不再贅述。

可見,在圖1所描述的方法中,終端接收數據存儲請求,將數據存儲請求
中攜帶的目標用戶標識按照預設的映射算法進行運算,并根據運算結果查詢目
標用戶標識對應的目標轉存節點,并在存儲映射表中查詢目標轉存節點對應的
目標存儲節點,進而將數據存儲請求中攜帶的用戶數據存儲至目標存儲節點中
對應目標用戶標識的存儲位置。因此在終端將大量用戶數據按照分布式數據存
儲方式存儲到多個存儲節點時,可以避免映射表中用戶標識與存儲節點的對應
關系過多,提高終端在映射表中查詢目標用戶所對應的目標存儲節點的效率,
從而提高用戶數據的存儲效率。

請參見圖2,圖2是本發明實施例提供的另一種數據存儲方法的流程示意圖。
如圖2所示,該數據存儲方法可以包括但不限于以下步驟。

S201、接收數據存儲請求,數據存儲請求攜帶目標用戶標識和用戶數據。

S203、將目標用戶標識按照預設的映射算法進行運算,并根據運算結果查
詢目標用戶標識對應的目標轉存節點,其中,目標轉存節點對應多個用戶標識。

S205、在存儲映射表中查詢目標轉存節點對應的目標存儲節點,存儲映射
表中記錄有轉存節點與存儲轉存節點對應用戶數據的存儲節點之間的一一對應
關系或多對一對應關系。

S207、將數據存儲請求攜帶的用戶數據存儲至目標存儲節點中對應目標用
戶標識的存儲位置。

本發明實施例中的S201-S207可參見圖1所示實施例的S101-S107,此處不
再贅述。

S209、根據目標存儲節點中存儲的用戶數據判斷目標存儲節點是否過負荷,
若是,執行步驟S211;若否,結束本流程。

本發明實施例中,終端根據目標存儲節點中存儲的用戶數據判斷目標存儲
節點是否過負荷,若判斷出目標存儲節點過負荷,則執行步驟S211;若否,結
束本流程。

作為一種可選的實施方式,根據目標存儲節點中存儲的用戶數據判斷目標
存儲節點是否過負荷,包括:

持續統計目標存儲節點在每一時間周期內的用戶數據增長速度,在用戶數
據增長速度超過預設增長速度閾值時判定目標存儲節點過負荷。

具體的,終端持續統計目標存儲節點在每一時間周期內的用戶數據增長速
度,在用戶數據增長速度超過預設增長速度閾值時判定目標存儲節點過負荷。
其中,該時間周期可根據終端的具體應用環境進行設置。不難理解,周期時長
越短,算得的用戶數據增長速度越準確。預設增長速度閾值也可根據終端的具
體應用環境進行設置。

在具體實現過程中,可采用例如但不限于下列公式來計算目標存儲節點的
用戶數據增長速度:用戶數據增長速度=(當前周期統計的用戶數據的數據量
前一周期統計的用戶數據的數據量)/周期時長。上述周期時長可根據終端的具體
應用環境進行設置。用戶數據增長速度為正值,表明目標存儲節點中用戶數據
在增長,且值越大表明目標存儲節點中用戶數據的增長速度越快,為負表明目
標存儲節點中用戶數據在減少。

作為另一種可選的實施方式,根據目標存儲節點中存儲的用戶數據判斷目
標存儲節點是否過負荷,包括:

統計目標存儲節點中存儲的用戶數據的數量,在目標存儲節點中用戶數據
的數量超過預設容量閾值時判定目標存儲節點過負荷。

具體的,終端統計目標存儲節點中存儲的用戶數據的數量,在目標存儲節
點中用戶數據的數量超過預設容量閾值時判定目標存儲節點過負荷。其中,預
設容量閾值可根據目標存儲節點的具體存儲容量進行設置,例如,若目標存儲
節點的存儲容量為200GB,則將目標存儲節點對應的預設容量閾值設置為
180GB等。

S211、從目標存儲節點所存儲的多個轉存節點對應的用戶數據中選擇部分
轉存節點對應的用戶數據作為待遷移用戶數據,并從尚未過負荷的存儲節點中
選擇至少一個存儲節點作為待遷移存儲節點,或從新增的存儲節點中選擇至少
一個存儲節點作為待遷移存儲節點,其中,待遷移存儲節點的剩余總存儲容量
大于待遷移用戶數據的數據量。

本發明實施例中,若終端判斷出目標存儲節點過負荷,則終端從目標存儲
節點所存儲的多個轉存節點對應的用戶數據中選擇部分轉存節點對應的用戶數
據作為待遷移用戶數據,并從尚未過負荷的存儲節點中選擇至少一個存儲節點
作為待遷移存儲節點,或從新增的存儲節點中選擇至少一個存儲節點作為待遷
移存儲節點,其中,待遷移存儲節點的剩余總存儲容量大于待遷移用戶數據的
數據量。其中,待遷移存儲節點的數量可以為一個,也可以為多個,本發明實
施例以待遷移存儲節點為一個為例進行說明。

具體的,若終端判斷出目標存儲節點過負荷,則需要將目標存儲節點中的
部分用戶數據進行數據遷移,即需要對分布式數據庫系統進行擴容,或對分布
式數據庫系統的負載進行均衡,以使目標存儲節點中的用戶數據不再過負荷,
從而影響系統性能。終端從尚未過負荷的存儲節點中選擇至少一個存儲節點,
或從系統新增加的存儲節點中選擇至少一個,或從尚未過負荷的存儲節點以及
新增加的存儲節點中選擇至少一個尚未過負荷的存儲節點以及至少一個新增加
的存儲節點作為待遷移存儲節點,若待遷移存儲節點為一個,則該待遷移存儲
節點的剩余總存儲容量需大于待遷移用戶數據的數據量,若待遷移存儲節點為
多個,則多個待遷移存儲節點的剩余總存儲容量需大于待遷移用戶數據的數據
量。

S213、將待遷移用戶數據遷移到待遷移存儲節點中,并更新存儲映射表。

本發明實施例中,終端將待遷移用戶數據遷移到待遷移存儲節點中,并更
新存儲映射表。

例如,若目標存儲節點為存儲節點502,終端從存儲節點502中存儲的轉存
節點L1和L3對應的用戶數據中選擇轉存節點L1對應的用戶1和用戶12對應
的所有用戶數據作為待遷移用戶數據,用戶1和用戶12對應的所有用戶數據的
數據量為50GB(Gigabyte,吉字節),終端從新增加的存儲節點中選擇一個標
識為512的存儲節點作為待遷移存儲節點,該待遷移存儲節點的存儲容量為200
GB,可容納待遷移用戶數據。因此,終端將待遷移用戶數據遷移至待遷移存儲
節點512上,即實現了多個用戶的用戶數據的批量遷移,不再針對每一個用戶
數據進行單獨遷移,提高了用戶數據的遷移效率。終端將待遷移用戶數據遷移
至待遷移存儲節點后,更新存儲映射表,將存儲映射表中轉存節點L1對應存儲
節點標識修改為待遷移存儲節點的標識512,后續若需對用戶1和用戶12對應
的用戶數據進行存取,則需從存儲節點512中存取用戶1和用戶12對應的用戶
數據。

可見,在圖2所描述的方法中,當終端判斷出目標存儲節點過負荷時,從
目標存儲節點中存儲的多個轉存節點對應的用戶數據中選擇部分轉存節點對應
的用戶數據作為待遷移用戶數據,并從尚未過負荷的存儲節點中選擇至少一個
存儲節點作為待遷移存儲節點,或從新增的存儲節點中選擇至少一個存儲節點
作為待遷移存儲節點,進而將待遷移用戶數據遷移至待遷移存儲節點中,因此
可以針對多個用戶標識對應的用戶數據進行批量遷移,無需針對單獨用戶的用
戶數據進行逐次遷移,減少了用戶數據遷移的次數和時間,提高了用戶數據的
遷移效率。

上述詳細闡述了本發明實施例的方法,下面為了便于更好地實施本發明實
施例的上述方案,相應地,下面還提供用于配合實施上述方案的相關終端。

請參見圖3,圖3是本發明實施例提供的一種終端的結構示意圖。如圖3所
示,該終端30包括:接收單元301、第一查詢單元303、第二查詢單元305和
存儲單元307,其中,

接收單元301,用于接收數據存儲請求,數據存儲請求攜帶目標用戶標識和
用戶數據;

第一查詢單元303,用于將目標用戶標識按照預設的映射算法進行運算,并
根據運算結果查詢目標用戶標識對應的目標轉存節點,其中,目標轉存節點對
應多個用戶標識;

第二查詢單元305,用于在存儲映射表中查詢目標轉存節點對應的目標存儲
節點,存儲映射表中記錄有轉存節點與存儲轉存節點對應用戶數據的存儲節點
之間的一一對應關系或多對一對應關系;

存儲單元307,用于將數據存儲請求攜帶的用戶數據存儲至目標存儲節點中
對應目標用戶標識的存儲位置。

可理解的是,本實施例的終端30的各功能單元的功能可參見圖1所示實施
例的相關描述,此處不再贅述。

請一并參見圖4,圖4是本發明實施例提供的另一種終端的結構示意圖。其
中,圖4所示的終端30是由圖3所示的終端30進行優化得到的。與圖3相比,
圖4所描述的終端30包括接收單元301、第一查詢單元303、第二查詢單元305
和存儲單元307外,還包括判斷單元309、選擇單元311和遷移單元313,其中,

判斷單元309,用于根據目標存儲節點中存儲的用戶數據判斷目標存儲節點
是否過負荷;

作為一種可選的實施方式,判斷單元309具體用于:

持續統計目標存儲節點在每一時間周期內的用戶數據增長速度,在用戶數
據增長速度超過預設增長速度閾值時判定目標存儲節點過負荷;或,

統計目標存儲節點中存儲的用戶數據的數量,在目標存儲節點中用戶數據
的數量超過預設容量閾值時判定目標存儲節點過負荷。

選擇單元311,用于若判斷單元309判斷出目標存儲節點過負荷,則從目標
存儲節點所存儲的多個轉存節點對應的用戶數據中選擇部分轉存節點對應的用
戶數據作為待遷移用戶數據,并從尚未過負荷的存儲節點中選擇至少一個存儲
節點作為待遷移存儲節點,或從新增的存儲節點中選擇至少一個存儲節點作為
待遷移存儲節點,其中,待遷移存儲節點的剩余總存儲容量大于待遷移用戶數
據的數據量;

遷移單元313,用于將待遷移用戶數據遷移到待遷移存儲節點中,并更新存
儲映射表。

可理解的是,本實施例的終端30的各功能單元的功能參見圖2所示實施例
的相關描述,此處不再贅述。

請參見圖5,圖5是本發明實施例提供的一種分布式數據庫系統的結構示意
圖。如圖5所示,分布式數據庫系統500包括多個存儲節點502-506和業務服務
器508。其中,存儲節點502-506與業務服務器508之間可通過總線或者其它方
式連接,其中,圖5中以通過總線510連接為例。存儲節點502-506中的每一個
存儲節點都存儲有多個用戶數據,每一個用戶數據由該用戶數據的數據標識唯
一標識,該數據標識可以包括但不限于用戶標識和數據項標識。例如,存儲節
點502中存儲有用戶1的年齡“18歲”,則“18歲”即為存儲節點502中存儲
的用戶數據,該用戶數據由用戶標識“1”和數據項標識“年齡”唯一標識。業
務服務器508可用于實現用戶的注冊、數據上傳、數據下載等業務,業務服務
器508還用于根據用戶發送的數據存儲請求將用戶需要存儲的用戶數據存儲到
存儲節點502-506中,或根據用戶發送的數據訪問請求從存儲節點502-506中獲
取用戶需要的用戶數據,本實施例中業務服務器508可具體為上述實施例中的
終端30。

具體來說,每一存儲節點都維護一張數據映射表,數據映射表中記錄有每
個用戶數據的數據標識與該用戶數據在存儲節點中的存儲位置之間的對應關系,
其中數據標識可唯一標識該數據標識對應的用戶數據。在具體實現過程中,當
存儲節點502采用數據表來存儲用戶數據時,數據映射表可采用例如但不限于
表2所示結構。

需要說明的是,為提高業務服務器508從存儲節點502-506中存取用戶數據
的效率,可使用內存數據庫來實現上述存儲節點502-506中的至少一個,即將用
戶數據放在內存中,以提高業務服務器508的業務性能。

應注意,本領域的技術人員應當明白,在具體實現過程中,存儲節點的數
量可根據實際需要進行設置,而并非局限于圖5中所示的數量。

業務服務器508用于接收數據存儲請求,該數據存儲請求攜帶目標用戶標
識和用戶數據,業務服務器508提取數據存儲請求中攜帶的目標用戶標識和用
戶數據,具體的,該目標用戶標識可為QQ號碼、微信號碼等,該目標用戶標
識還可以為QQ號碼、微信號碼等各種號碼轉換后的二進制值。業務服務器508
將目標用戶標識按照預設的映射算法進行運算,其中,該預設的映射算法可包
括但不限于哈希算法,例如:MD5算法、除留取余算法、平方取中算法等。業
務服務器508采用哈希算法將目標用戶標識對應的任意長度的二進制值映射為
較短的固定長度的二進制值,得到哈希值,并根據運算結果(即哈希值)查詢
目標用戶標識對應的目標轉存節點,其中,若終端所對應的分布式數據庫系統
包括多個轉存節點,則每個轉存節點對應一個或多個用戶標識,且多個轉存節
點中至少有一個轉存節點對應多個用戶標識,且多個轉存節點各自對應的用戶
標識的個數可以相同,也可以不同。例如,第一轉存節點對應一個用戶標識,
第二轉存節點對應兩個用戶標識,第三轉存節點對應三個用戶標識;或者,第
一轉存節點、第二轉存節點和第三轉存節點各自對應兩個用戶標識,等等。需
要說明的是,若終端采用的映射算法為MD5算法,則多個轉存節點各自對應的
用戶標識的個數相同。

業務服務器508還用于讀取存儲映射表,在存儲映射表中查詢目標轉存節
點對應的目標存儲節點,該存儲映射表中記錄有轉存節點標識與存儲該轉存節
點對應用戶數據的存儲節點的標識之間的一一對應關系或多對一對應關系,其
中,每個存儲節點對應一個或多個轉存節點。為了提高業務服務器508讀取存
儲映射表的效率,可以將存儲映射表緩存在分布式數據庫系統500的內存中,
業務服務器508直接從分布式數據庫系統500的內存中讀取存儲映射表,不再
通過分布式數據庫系統500的磁盤讀取存儲映射表,大大提高了業務服務器508
讀取存儲映射表的效率。具體來說,存儲映射表可采用例如但不限于表1結構。

業務服務器508還用于將數據存儲請求攜帶的用戶數據存儲至目標存儲節
點中對應目標用戶標識的存儲位置。具體的,業務服務器508通過上述映射算
法和存儲映射表查詢到目標用戶標識對應的目標存儲節點后,將數據存儲請求
中攜帶的用戶數據存儲至目標存儲節點中對應目標用戶標識的存儲位置,例如,
若業務服務器508查詢到目標存儲節點為存儲節點502,且具體為存儲節點502
中的數據表1,且數據存儲請求中攜帶的用戶數據為用戶1的身高“180cm”,
則業務服務器508將用戶數據“180cm”存儲到存儲節點502中的數據表1中。

需要說明的是,本發明實施例描述的為數據存儲時的應用場景,用戶通過
業務服務器508從存儲節點中讀取用戶數據時,業務服務器508根據用戶標識
查詢用戶標識對應的存儲節點的執行操作同上,此處不再贅述。

可見,在圖5所描述的分布式數據庫系統中,業務服務器接收數據存儲請
求,將數據存儲請求中攜帶的目標用戶標識按照預設的映射算法進行運算,并
根據運算結果查詢目標用戶標識對應的目標轉存節點,并在存儲映射表中查詢
目標轉存節點對應的目標存儲節點,進而將數據存儲請求中攜帶的用戶數據存
儲至目標存儲節點中對應目標用戶標識的存儲位置。因此在業務服務器將大量
用戶數據按照分布式數據存儲方式存儲到多個存儲節點時,可以避免映射表中
用戶標識與存儲節點的對應關系過多,提高業務服務器在映射表中查詢目標用
戶所對應的目標存儲節點的效率,從而提高用戶數據的存儲效率。

請參見圖6,圖6是本發明實施例提供的另一種分布式數據庫系統的結構示
意圖。如圖6所示,分布式數據庫系統500包括多個存儲節點502-506、業務服
務器508和待遷移存儲節點512,其中,存儲節點502-506和待遷移存儲節點512
與業務服務器508之間可通過總線或者其它方式連接,其中,圖5中以通過總
線510連接為例。存儲節點502-506和業務服務器508的結構和功能可參見圖5
所示實施例中存儲節點502-506和業務服務器508的相關描述,此處不再贅述。
其中,業務服務器508還用于在存儲節點502-506過負荷時,將存儲節點502-506
中的部分用戶數據遷移到待遷移存儲節點512中,待遷移存儲節點512用于對
從存儲節點502-506中遷移出的用戶數據進行存儲。

業務服務器508還用于根據目標存儲節點中存儲的用戶數據判斷目標存儲
節點是否過負荷,若判斷出目標存儲節點過負荷,則業務服務器508從目標存
儲節點所存儲的多個轉存節點對應的用戶數據中選擇部分轉存節點對應的用戶
數據作為待遷移用戶數據,并從尚未過負荷的存儲節點中選擇至少一個存儲節
點作為待遷移存儲節點512,或從新增的存儲節點中選擇至少一個存儲節點作為
待遷移存儲節點512,其中,待遷移存儲節點512的剩余總存儲容量大于待遷移
用戶數據的數據量;業務服務器508將待遷移用戶數據遷移到待遷移存儲節點
512中,并更新存儲映射表。其中,待遷移存儲節點512的數量可以為一個,也
可以為多個,本發明實施例以待遷移存儲節點512為一個為例進行說明。

具體的,若業務服務器508判斷出目標存儲節點過負荷,則需要將目標存
儲節點中的部分用戶數據進行數據遷移,即需要對分布式數據庫系統500進行
擴容,或對分布式數據庫系統500的負載進行均衡,以使目標存儲節點中的用
戶數據不再過負荷,從而影響系統性能。業務服務器508從尚未過負荷的存儲
節點中選擇至少一個存儲節點,或從系統新增加的存儲節點中選擇至少一個,
或從尚未過負荷的存儲節點以及新增加的存儲節點中選擇至少一個尚未過負荷
的存儲節點以及至少一個新增加的存儲節點作為待遷移存儲節點512,若待遷移
存儲節點512為一個,則該待遷移存儲節點512的剩余總存儲容量需大于待遷
移用戶數據的數據量,若待遷移存儲節點512為多個,則多個待遷移存儲節點
512的剩余總存儲容量需大于待遷移用戶數據的數據量,例如,若目標存儲節點
為存儲節點502,業務服務器508從存儲節點502中存儲的轉存節點L1和L3
對應的用戶數據中選擇轉存節點L1對應的用戶1和用戶12對應的所有用戶數
據作為待遷移用戶數據,用戶1和用戶12對應的所有用戶數據的數據量為50GB
(Gigabyte,吉字節),業務服務器508從新增加的存儲節點中選擇一個作為待
遷移存儲節點512,該待遷移存儲節點512的存儲容量為200GB,可容納待遷
移用戶數據。因此,業務服務器508將待遷移用戶數據遷移至待遷移存儲節點
512上,即實現了多個用戶的用戶數據的批量遷移,不再針對每一個用戶數據進
行單獨遷移,提高了用戶數據的遷移效率。業務服務器508將待遷移用戶數據
遷移至待遷移存儲節點512后,更新存儲映射表,將存儲映射表中轉存節點L1
對應存儲節點標識修改為512,后續若需對用戶1和用戶12對應的用戶數據進
行存取,則需從存儲節點512中存取用戶1和用戶12對應的用戶數據。

作為一種可選的實施方式,業務服務器508持續統計目標存儲節點在每一
時間周期內的用戶數據增長速度,在用戶數據增長速度超過預設增長速度閾值
時判定目標存儲節點過負荷。其中,該時間周期可根據分布式數據庫系統500
的具體應用環境進行設置。不難理解,周期時長越短,算得的用戶數據增長速
度越準確。預設增長速度閾值也可根據分布式數據庫系統500的具體應用環境
進行設置。

在具體實現過程中,可采用例如但不限于下列公式來計算目標存儲節點的
用戶數據增長速度:用戶數據增長速度=(當前周期統計的用戶數據的數據量
前一周期統計的用戶數據的數據量)/周期時長。上述周期時長可根據分布式數據
庫系統500的具體應用環境進行設置。用戶數據增長速度為正值,表明目標存
儲節點中用戶數據在增長,且值越大表明目標存儲節點中用戶數據的增長速度
越快,為負表明目標存儲節點中用戶數據在減少。

作為一種可選的實施方式,業務服務器508統計目標存儲節點中存儲的用
戶數據的數量,在目標存儲節點中用戶數據的數量超過預設容量閾值時判定目
標存儲節點過負荷。其中,預設容量閾值可根據目標存儲節點的具體存儲容量
進行設置,例如,若目標存儲節點的存儲容量為200GB,則將目標存儲節點對
應的預設容量閾值設置為180GB等。

可見,在圖6所描述的分布式數據庫系統中,當業務服務器判斷出目標存
儲節點過負荷時,從目標存儲節點中存儲的多個轉存節點對應的用戶數據中選
擇部分轉存節點對應的用戶數據作為待遷移用戶數據,并從尚未過負荷的存儲
節點中選擇至少一個存儲節點作為待遷移存儲節點,或從新增的存儲節點中選
擇至少一個存儲節點作為待遷移存儲節點,進而將待遷移用戶數據遷移至待遷
移存儲節點中,因此可以針對多個用戶標識對應的用戶數據進行批量遷移,無
需針對單獨用戶的用戶數據進行逐次遷移,減少了用戶數據遷移的次數和時間,
提高了用戶數據的遷移效率。

請參見圖7,是本發明提供的另一種終端的結構示意圖。其中,如圖7所示,
終端70可以包括:至少一個處理器701,例如CPU,至少一個總線702,至少
一個輸入裝置703和至少一個輸出裝置704,存儲器705。其中,總線702用于
實現這些組件之間的通信連接;輸入裝置703具體可為終端的觸控面板,包括
觸摸屏和觸控屏,用于檢測終端觸控面板上的操作指令;輸出裝置704可以包
括終端的顯示屏(Display),用于輸出、顯示圖像或者數據;存儲器705可以是
高速RAM顯示器,也可以是非不穩定的顯示器(non-volatilememory),例如至
少一個磁盤顯示器,存儲器705可選的還可以是至少一個位于遠離前述處理器
701的顯示裝置。如圖7所示,作為一種計算機顯示介質的存儲器705中可以包
括操作系統、網絡通信模塊、用戶接口模塊以及數據存儲程序。

在圖7所示的終端70中,處理器701可以用于運行存儲器705中存儲的數
據存儲程序,并執行以下操作:

通過輸入裝置703接收數據存儲請求,數據存儲請求攜帶目標用戶標識和
用戶數據;

將目標用戶標識按照預設的映射算法進行運算,并根據運算結果查詢目標
用戶標識對應的目標轉存節點,其中,目標轉存節點對應多個用戶標識;

在存儲映射表中查詢目標轉存節點對應的目標存儲節點,存儲映射表中記
錄有轉存節點與存儲轉存節點對應用戶數據的存儲節點之間的一一對應關系或
多對一對應關系;

將數據存儲請求攜帶的用戶數據存儲至目標存儲節點中對應目標用戶標識
的存儲位置。

進一步地,處理器701執行將數據存儲請求攜帶的用戶數據存儲至目標存
儲節點中對應目標用戶標識的存儲位置之后,還執行:

根據目標存儲節點中存儲的用戶數據判斷目標存儲節點是否過負荷;

若判斷出目標存儲節點過負荷,則從目標存儲節點所存儲的多個轉存節點
對應的用戶數據中選擇部分轉存節點對應的用戶數據作為待遷移用戶數據,并
從尚未過負荷的存儲節點中選擇至少一個存儲節點作為待遷移存儲節點,或從
新增的存儲節點中選擇至少一個存儲節點作為待遷移存儲節點,其中,待遷移
存儲節點的剩余總存儲容量大于待遷移用戶數據的數據量;

將待遷移用戶數據遷移到待遷移存儲節點中,并更新存儲映射表。

更進一步地,處理器701執行根據目標存儲節點中存儲的用戶數據判斷目
標存儲節點是否過負荷,具體為:

持續統計目標存儲節點在每一時間周期內的用戶數據增長速度,在用戶數
據增長速度超過預設增長速度閾值時判定目標存儲節點過負荷;或,

統計目標存儲節點中存儲的用戶數據的數量,在目標存儲節點中用戶數據
的數量超過預設容量閾值時判定目標存儲節點過負荷。

更進一步地,映射算法包括哈希算法。

更進一步地,存儲映射表存儲在分布式數據庫的內存中。

可理解的是,處理器701的執行步驟具體可參見圖1或圖2實施例的內容,
此處不再贅述。

綜上所述,終端接收數據存儲請求,將數據存儲請求中攜帶的目標用戶標
識按照預設的映射算法進行運算,并根據運算結果查詢目標用戶標識對應的目
標轉存節點,并在存儲映射表中查詢目標轉存節點對應的目標存儲節點,進而
將數據存儲請求中攜帶的用戶數據存儲至目標存儲節點中對應目標用戶標識的
存儲位置。因此在終端將大量用戶數據按照分布式數據存儲方式存儲到多個存
儲節點時,可以避免映射表中用戶標識與存儲節點的對應關系過多,提高終端
在映射表中查詢目標用戶所對應的目標存儲節點的效率,從而提高用戶數據的
存儲效率。

進一步地,當終端判斷出目標存儲節點過負荷時,從目標存儲節點中存儲
的多個轉存節點對應的用戶數據中選擇部分轉存節點對應的用戶數據作為待遷
移用戶數據,并從尚未過負荷的存儲節點中選擇至少一個存儲節點作為待遷移
存儲節點,或從新增的存儲節點中選擇至少一個存儲節點作為待遷移存儲節點,
進而將待遷移用戶數據遷移至待遷移存儲節點中,因此可以針對多個用戶標識
對應的用戶數據進行批量遷移,無需針對單獨用戶的用戶數據進行逐次遷移,
減少了用戶數據遷移的次數和時間,提高了用戶數據的遷移效率。

本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,
是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算
機可讀取存儲介質中,該程序在執行時,可包括如上述各方法的實施例的流程。
其中,所述的存儲介質可為磁碟、光盤、只讀存儲記憶體(Read-OnlyMemory,
ROM)或隨機存儲記憶體(RandomAccessMemory,RAM)等。

本發明實施例方法中的步驟可以根據實際需要進行順序調整、合并和刪減。

本發明實施例終端中的單元可以根據實際需要進行合并、劃分和刪減。

以上所揭露的僅為本發明一種較佳實施例而已,當然不能以此來限定本發
明之權利范圍,本領域普通技術人員可以理解實現上述實施例的全部或部分流
程,并依本發明權利要求所作的等同變化,仍屬于發明所涵蓋的范圍。

關 鍵 詞:
一種 數據 存儲 方法 終端
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:一種數據存儲方法及終端.pdf
鏈接地址:http://www.rgyfuv.icu/p-6341613.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
山东11选5中奖结果走势图