[發明專利]一種支持Bigtable數據模型的片段緩存方法無效
| 申請號: | 201210095160.X | 申請日: | 2012-04-01 |
| 公開(公告)號: | CN103365897A | 公開(公告)日: | 2013-10-23 |
| 發明(設計)人: | 周敏奇;錢衛寧;魏金仙;周傲英 | 申請(專利權)人: | 華東師范大學 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30;G06F12/08;H04L29/08 |
| 代理公司: | 上海麥其知識產權代理事務所(普通合伙) 31257 | 代理人: | 董紅曼 |
| 地址: | 200062 上*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 支持 bigtable 數據模型 片段 緩存 方法 | ||
技術領域
本發明屬數據庫技術領域,具體涉及一種支持Bigtable數據模型的片段緩存方法。
背景技術
近年來,開心網、微博等社交網絡(social?network)呈現蓬勃發展的勢頭。如何高效地存儲與管理社交網絡中海量的用戶及用戶產生的數據,如何有效地提供低延時服務提高用戶體驗成了學術界和工業界共同關注的熱點。谷歌公司于2004年初開始開發并于2005年2月投入使用的Bigtable數據庫系統提供了一種靈活高效的解決方案,很快被業界接受并獲得廣泛研究與使用。Bigtable數據庫系統首次提出Bigtable數據模型,即一個稀疏的、分布式的、常駐外存的多維排序映射表(map)。這個映射表依靠行關鍵字(row?key)、列名(column?name)和時間戳(timestamp)檢索數據(如公式1所示),表中的值都是未經解釋的字符數組。
(row:?string,?column:?string,?time:?int64)->?string???公式1
受Bigtable數據模型的啟發,Hbase、Cassandra等數據庫系統隨后誕生,并部署在Facebook、Twitter等流行社交網站存儲與管理海量數據。為方便理解同時也為更好的通用性,下面介紹簡化版(不包含column?family即列族的介紹)的Bigtable數據模型(以下簡稱類Bigtable數據模型)中主要概念。在類Bigtable數據模型中,行(row)由行關鍵字(key)和行的具體內容兩部分組成。而行的具體內容又由一個個單元格(cell)拼接而成。每一個單元格有一個名字和具體的值。從列(column)的角度來看,名字相同的單元格屬于同一列。不同的列依據列名通過指定的比較器(comparator)排序。需要注意的是,行沒有大小的限制,即對一行中單元格的數目不作限制。圖1給出用類Bigtable數據模型存儲微博轉發信息的片段并標注了在此示例中各個概念的代表例子。
由于這些數據庫系統廣泛地為社交網絡服務,而低延時又是社交網絡用戶體驗的關鍵,學術界和工業界都在致力于提升這些系統的性能。通過將常訪問的數據放在內存中以減少磁盤I/O(輸入/輸出)次數從而提升查詢性能,緩存技術(caching)自誕生以來一直被用來加速查詢處理(query?processing)??紤]到社交網絡中的熱點現象(如熱點人物、熱點事件)和內存容量的持續增大,在類Bigtable數據庫系統中采用緩存技術會有效減小這些系統查詢請求的響應延時。
現有的構建在類Bigtable數據模型上的緩存策略有行緩存(row?cache)和行關鍵字緩存(key?cache)兩種。其中,行關鍵字緩存只緩存一個行關鍵字和它對應的行在磁盤上的位置;行緩存則緩存一個行關鍵字所對應的整行內容。因為行關鍵字緩存沒有存放行的內容只存放了地址,所以雖然它比較節約緩存空間但最多只能減少一次磁盤尋址,即使命中(hit)對性能的提升也不明顯。行緩存如果命中就可以避免磁盤的訪問,但行緩存所消耗的空間過大,尤其考慮到類Bigtable數據模型中對行沒有大小的限制,如果采用行緩存在很多情況下能夠緩存的行的數量不多;此外,實際應用中,一行中的所有單元格未必都會被訪問,如微博用戶往往只關心最近一段時間內上傳的微博內容,一旦選用行緩存會有大量不被訪問的單元格被緩存到內存中,大大地降低了內存的有效利用率。
本發明克服了現有技術中緩存空間利用率不高的缺陷,提出一種支持Bigtable數據模型的片段緩存方法。本發明將行中經常被訪問的單元格以片段的形式存放于緩存空間中,且對單個片段中的單元格數量進行限定,提高緩存空間的利用率。由于社交網絡如微博中,用戶瀏覽了一條微博后點擊其相鄰微博的可能性遠遠高過其它微博,所以應用本發明的支持Bigtable數據模型的片段緩存方法更適應這種用戶的鄰近性行為特點,在社交網絡的數據緩存中具有優勢。
發明內容
本發明公開了一種支持Bigtable數據模型的片段緩存方法,包括以下步驟:
步驟一:將服務器的磁盤上存儲的行中經常被訪問的單元格歸并為一組片段,單個片斷中的單元格邏輯連續。
步驟二:根據所述片段所在行的行關鍵字進行判斷,若所述行關鍵字已存在于服務器的緩存空間中,則所述服務器將所述片段存入所述緩存空間中行關鍵字所在的行內;否則,所述服務器將所述片段及其行關鍵字一并存入所述緩存空間。
本發明方法,進一步包括步驟三:當所述服務器接收到客戶的請求時,所述服務器對所述緩存空間內部的數據進行查詢或維護操作。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華東師范大學,未經華東師范大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210095160.X/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種道路檢測車
- 下一篇:一種可以連續生長的提拉法晶體生長裝置





