[發明專利]一種分布式鍵-值查詢方法和查詢引擎系統有效
| 申請號: | 201110460494.8 | 申請日: | 2011-12-31 |
| 公開(公告)號: | CN102591970A | 公開(公告)日: | 2012-07-18 |
| 發明(設計)人: | 楊康;謝冉 | 申請(專利權)人: | 北京奇虎科技有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30;H04L29/08 |
| 代理公司: | 北京潤澤恒知識產權代理有限公司 11319 | 代理人: | 蘇培華 |
| 地址: | 100088 北京市西城區*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 分布式 查詢 方法 引擎 系統 | ||
技術領域
本申請涉及分布式數據存儲和查詢技術領域,特別是涉及一種分布式鍵-值查詢方法和查詢引擎系統。
背景技術
對于大規模互聯網應用、云計算的支撐而言,一般會使用關系型數據庫存儲相關數據。
傳統的關系型數據庫,通常將某一個應用的某一類信息(例如網站用戶信息)都存儲在數據庫系統的單個庫單張表中,對應用程序提供讀取和寫入操作的通訊接口。實現上,典型的關系型數據庫如MySQL,單表的查詢和寫入操作有一定上限,超過這個上限,SQL查詢和寫入操作將會變得非常緩慢,磁盤輸入/輸出(IO)模塊也會出現瓶頸。在互聯網海量數據的今天,傳統關系型數據庫要承載海量數據,通常的做法就是將數據分成多個庫多個表存儲,例如網站用戶信息數據,可以按取模算法對用戶標識(user_id)字段計算哈希(hash)值,將不同的用戶數據分片到不同數據庫,以此來解決單庫單表的存儲和讀寫壓力問題。
也就是說,傳統的關系型數據庫,為支持大容量數據,需要將數據水平拆分到多個庫多張表上,確保單張表的記錄數是有限的。這樣的好處在于減小了索引文件的大小,從而提升查詢性能。
但是,傳統的關系型數據庫,傾向于使用單臺機器來解決存儲容量的問題。若要擴容到多臺機器,需要在應用層做數據拆分策略。這里存在兩個問題,一個是對于每個應用,都需要應用層做數據拆分,且每個應用拆分策略都會有不同,效率低;另一個問題是增加機器后的數據重新拆分代價很高,需要人工停機維護操作,不支持自動彈性擴展。
其次,傳統的關系型數據庫,單臺機器的并發能力有一定上限,高并發的訪問會將機器資源耗盡。不能支持高并發訪問的原因之一是關系型數據庫在檢索時需要做SQL解析操作,對CPU資源的開銷大。
總之,目前需要本領域技術人員迫切解決的一個技術問題是:如何能夠提供一種能夠容納海量數據、適應高并發訪問的更加優化的存儲/查詢方案。
發明內容
本申請所要解決的技術問題是提供一種分布式鍵-值查詢方法和查詢引擎系統,能夠容納海量鍵-值數據,對高并發訪問的適應性更強。
為了解決上述問題,本申請公開了一種分布式鍵-值查詢引擎系統,具體可以包括:
元數據服務器,用于維護指向存儲節點的全局路由表信息;
至少一個代理節點,包括:
查詢轉發模塊,用于響應客戶端發出的包括目標KEY的請求,基于所述全局路由表信息,將客戶端請求轉發給相應的存儲節點;
數據轉發模塊,用于將相應存儲節點返回的包括目標Value的回應包傳送給客戶端;
至少一個存儲節點,用于基于接收到的客戶端請求,從本地存儲中獲取所需數據,并發送包括目標Value的回應包給代理節點。
優選的,所述代理節點還可以包括:路由表同步模塊,用于將元數據服務器的全局路由表信息同步至本地;其中,所述查詢轉發模塊基于本地的全局路由表信息進行查詢。
優選的,所述代理節點還可以包括:路由表更新模塊,用于當收到元數據服務器的路由表更新通知時,從元數據服務器獲取新的全局路由表信息。
優選的,所述查詢轉發模塊具體包括:哈希子模塊,用于基于所接收的包括目標KEY的客戶端請求,通過哈希算法計算目標KEY所在的數據區塊;定位子模塊,用于依據計算得到的目標KEY所在的數據區塊的標識,查詢所述全局路由表信息,定位相應的存儲節點;轉發子模塊,用于將客戶端請求轉發至相應存儲節點。
優選的,所述元數據服務器還可以包括:數據同步模塊,用于通知所述新增的存儲節點從所選定的存儲節點中同步N個數據區塊;所述N由所述新增存儲節點的屬性參數計算得到;路由表變更模塊,用于當所述新增的存儲節點完成數據同步后,生成新的全局路由表信息;第一更新通知模塊,用于向代理節點發送路由表更新通知。
優選的,所述元數據服務器還可以包括:監控模塊,用于監控各存儲節點的存活狀態,當監測到一個存儲節點失效時,修改全局路由表信息;所述修改包括:針對以該失效的存儲節點作為主節點的數據區塊,將其主節點重新映射到另一個冗余節點上;第二更新通知模塊,用于向代理節點發送路由表更新通知。
優選的,所述存儲節點可以包括:用于存儲熱點數據的高速存儲節點,和用于存儲非熱點數據的其他類型存儲節點;其中,所述高速存儲節點包括內存節點或者固態硬盤節點,所述其他類型存儲節點包括SAS/SATA硬盤節點。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京奇虎科技有限公司,未經北京奇虎科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110460494.8/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種網頁識別方法、裝置及系統
- 下一篇:文檔格式轉換的方法及裝置





