[發(fā)明專利]一種分布式對象數(shù)據(jù)庫的構(gòu)建方法在審
| 申請?zhí)枺?/td> | 202011120635.7 | 申請日: | 2020-10-19 |
| 公開(公告)號: | CN112181950A | 公開(公告)日: | 2021-01-05 |
| 發(fā)明(設(shè)計)人: | 王成光 | 申請(專利權(quán))人: | 北京米連科技有限公司 |
| 主分類號: | G06F16/21 | 分類號: | G06F16/21;G06F16/22;G06F16/23;G06F16/2458;G06F16/27;G06F16/28 |
| 代理公司: | 北京安之律師事務(wù)所 11707 | 代理人: | 章彥奇 |
| 地址: | 100012 北京市朝陽區(qū)*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 分布式 對象 數(shù)據(jù)庫 構(gòu)建 方法 | ||
1.一種應(yīng)對復(fù)雜數(shù)據(jù)的分布式對象數(shù)據(jù)庫存儲系統(tǒng),其特征在于,包括ODB任務(wù)客戶端模塊、ODB讀寫服務(wù)模塊、ODB索引模塊和ODB底層存儲模塊,其中:
ODB任務(wù)客戶端模塊,用于提交對象查詢和對象更新任務(wù)給ODB讀寫服務(wù);
ODB讀寫服務(wù)模塊,用于接受任務(wù)客戶端查詢和更新請求,并同ODB索引模塊及ODB底層存儲模塊交互;
ODB索引模塊,用于更新或快速查找單個或批量對象數(shù)據(jù)索引;
ODB底層存儲模塊,用于接受查詢和存儲對象實例。
2.根據(jù)權(quán)利要求1所述的一種應(yīng)對復(fù)雜數(shù)據(jù)的分布式對象數(shù)據(jù)庫存儲系統(tǒng),其中ODB任務(wù)客戶端模塊包括單個對象更新子模塊,批量對象更新子模塊,單個對象查詢子模塊,批量對象查詢子模塊,監(jiān)聽讀寫服務(wù)子模塊,批次調(diào)整子模塊以及更新任務(wù)定向分發(fā)子模塊,其在啟動之初,通過Zookeeper監(jiān)聽ODB讀寫服務(wù)注冊的節(jié)點,并定時檢測其服務(wù)心跳,只有健康節(jié)點維持工作;對單個或批量查詢?nèi)蝿?wù),根據(jù)主鍵ID和時間范圍參數(shù)提交給ODB讀寫服務(wù)模塊的相應(yīng)接口;對于數(shù)據(jù)更新方面,ODB任務(wù)客戶端模塊每次提交新任務(wù)給ODB讀寫服務(wù)模塊時,都會檢測當(dāng)下可用節(jié)點的待計算任務(wù)個數(shù),如果待計算任務(wù)個數(shù)2的節(jié)點不存在,則sleep等待5秒,繼續(xù)執(zhí)行下一次請求,直到有空閑節(jié)點可用,再繼續(xù)提交任務(wù)。
3.根據(jù)權(quán)利要求1所述的一種應(yīng)對復(fù)雜數(shù)據(jù)的分布式對象數(shù)據(jù)庫存儲系統(tǒng),其中ODB讀寫服務(wù)模塊基于Thrift實現(xiàn)和ODB任務(wù)客戶端模塊的通訊,用于接受ODB任務(wù)客戶端模塊查詢和更新請求,并同ODB索引模塊及ODB底層存儲模塊交互,啟動之初,通過Zookeeper監(jiān)聽ODB底層存儲節(jié)點服務(wù),并同時注冊自身服務(wù),供ODB任務(wù)客戶端模塊監(jiān)聽其動態(tài)。
4.根據(jù)權(quán)利要求3所述的一種應(yīng)對復(fù)雜數(shù)據(jù)的分布式對象數(shù)據(jù)庫存儲系統(tǒng),OBD讀寫服務(wù)模塊包括第一對象查詢子模塊和第二對象更新子模塊,
其中
第一對象查詢子模塊,
根據(jù)所接受的請求參數(shù)主鍵ID或時間戳范圍,首先去ODB索引中查找過濾滿足條件的子對象,根據(jù)查詢規(guī)模大小,決定是否采用Fork/Join多線程并發(fā)調(diào)用,然后再調(diào)用基于Avro實現(xiàn)的RPC查詢服務(wù),批量獲取每個ODB底層存儲節(jié)點下的對象,再按照主鍵ID合并各來ODB存儲節(jié)點下的子對象,再返回給上游調(diào)用方;
第二對象更新子模塊,
對所接受的添加對象請求,將數(shù)據(jù)首先緩存到本地隊列,同時有一個異步線程任務(wù)一直循環(huán)執(zhí)行,如果發(fā)現(xiàn)當(dāng)前節(jié)點尚有未執(zhí)行完的任務(wù)處于忙碌狀態(tài),則sleep 5秒,跳過繼續(xù)執(zhí)行下個循環(huán);如果發(fā)現(xiàn)當(dāng)前服務(wù)節(jié)點空閑,無正在執(zhí)行的計算任務(wù),則將當(dāng)前節(jié)點狀態(tài)改為正在執(zhí)行的忙碌狀態(tài),并立即從本地隊列獲取數(shù)據(jù),完成相應(yīng)業(yè)務(wù)邏輯,構(gòu)建利用Avro設(shè)計的序列化對象,根據(jù)主鍵ID散列到指定ODB底層存儲節(jié)點對應(yīng)的隊列,同時將對象索引更新到MongoDB,并調(diào)用Avro RPC批量提交給ODB底層存儲,等執(zhí)行完再更新節(jié)點計算狀態(tài)為空閑。
5.根據(jù)權(quán)利要求1所述的一種應(yīng)對復(fù)雜數(shù)據(jù)的分布式對象數(shù)據(jù)庫存儲系統(tǒng),其中,ODB索引模塊,其結(jié)構(gòu)是按時間窗口劃片,底層存儲節(jié)點正常穩(wěn)定運行時,一個對象只會存在一個固定的存儲節(jié)點,若該節(jié)點故障,則會存到另一個存儲節(jié)點。
6.根據(jù)權(quán)利要求1所述的一種應(yīng)對復(fù)雜數(shù)據(jù)的分布式對象數(shù)據(jù)庫存儲系統(tǒng),其中ODB底層存儲模塊,采用時間段“年周”目錄結(jié)構(gòu),每個對象根據(jù)其活動周期,會散落到多個目錄下,每個目錄為一個獨立表,其下就是文件目錄,每個節(jié)點啟動之初即通過Zookeeper注冊自身服務(wù)節(jié)點,方便上游監(jiān)聽存儲節(jié)點可用狀態(tài)。
7.根據(jù)權(quán)利要求6所述的一種應(yīng)對復(fù)雜數(shù)據(jù)的分布式對象數(shù)據(jù)庫存儲系統(tǒng),其中ODB底層存儲模塊包括第二對象更新子模塊、第二對象查詢子模塊、RocksDB數(shù)據(jù)庫句柄快照維護(hù)子模塊。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京米連科技有限公司,未經(jīng)北京米連科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011120635.7/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 數(shù)據(jù)庫
- 數(shù)據(jù)庫管理系統(tǒng)及數(shù)據(jù)庫
- 數(shù)據(jù)庫構(gòu)筑裝置、數(shù)據(jù)庫檢索裝置、數(shù)據(jù)庫裝置、數(shù)據(jù)庫構(gòu)筑方法、以及數(shù)據(jù)庫檢索方法
- 數(shù)據(jù)庫和數(shù)據(jù)庫處理方法
- 數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫更新方法、數(shù)據(jù)庫以及數(shù)據(jù)庫更新程序
- 容器數(shù)據(jù)庫
- 數(shù)據(jù)庫同步方法及數(shù)據(jù)庫
- 一種MongoDB數(shù)據(jù)庫對象復(fù)制延遲監(jiān)控方法和裝置
- 數(shù)據(jù)分布式存儲方法、裝置、電子設(shè)備及存儲介質(zhì)
- 數(shù)據(jù)庫語句執(zhí)行方法及裝置
- 構(gòu)建墊、實體圖像構(gòu)建物和構(gòu)建構(gòu)建物支撐件的方法
- 支持松耦合的軟件構(gòu)建方法、系統(tǒng)及該系統(tǒng)的實現(xiàn)方法
- 版本的構(gòu)建系統(tǒng)及方法
- 工程構(gòu)建系統(tǒng)及其構(gòu)建方法
- 實例構(gòu)建方法、裝置及軟件系統(tǒng)
- 軟件構(gòu)建方法、軟件構(gòu)建裝置和軟件構(gòu)建系統(tǒng)
- 天花板地圖構(gòu)建方法、構(gòu)建裝置以及構(gòu)建程序
- 一種項目構(gòu)建方法、持續(xù)集成系統(tǒng)及終端設(shè)備
- 并行構(gòu)建的方法、裝置及設(shè)備
- 構(gòu)建肺癌預(yù)測模型構(gòu)建方法





