主頁 > 資料庫 > TDSQL-基于壓縮資料直接計算技術,定義新型資料庫處理 | SIGMOD 2022入選論文解讀

TDSQL-基于壓縮資料直接計算技術,定義新型資料庫處理 | SIGMOD 2022入選論文解讀

2022-07-14 09:32:01 資料庫

騰訊云資料庫TDSQL與中國人民大學最新聯合研究成果被SIGMOD 2022接收并將通過長文形式發表,SIGMOD是國際資料管理與資料庫領域頂尖的學識訓議之一,騰訊云資料庫TDSQL論文已連續多年入選VLDB、SIGMOD、ICDE等國際頂級會議,

本次入選論文題目為:CompressDB: Enabling Efficient Compressed Data Direct Processing for Various Databases,論文針對壓縮資料的直接操作與處理,提出一項新型資料庫處理技術——CompressDB,**本研究提出并實作了新型資料庫技術,利用背景關系無關文法來壓縮資料,通過新的資料結構和演算法設計實作對語法規則進行決議,CompressDB支持直接對壓縮后的資料進行資料查詢和操作,并且支持各種資料庫系統, **

SIGMOD評委對CompressDB的創新性給予了高度評價:在本文中,作者提出了一個支持直接對壓縮資料進行更新和計算的系統CompressDB,是一個優秀的系統作業,其作為檔案系統層實作,可以被現有的資料庫系統直接使用,作者通過在其上運行一系列關系資料庫和 NoSQL 資料庫來證明了這一點,同時作者在實作中表明,啟用CompressDB可以讓資料庫系統實作更高的吞吐量和更低的延遲,同時減少存盤空間,

一、論文概述

在如今的資料管理系統中,處理大資料時直接在壓縮資料上進行操作被證明是一種很成功的方式,這類系統展示了較大的壓縮優勢和性能提升,但是,當前此類系統只關注資料查詢,而一個完整的大資料管理系統必須支持資料查詢和資料操作,我們開發了一個新型存盤引擎CompressDB,CompressDB 支持壓縮資料上的直接資料處理,有以下優點:
第一,CompressDB 利用 context-free 語法來壓縮資料,并且同時支持資料查詢和資料操作
第二,我們將CompressDB 集成到檔案系統中,使很多資料庫系統可以在不做任何改變的情況下使用CompressDB
第三,我們將算子操作下推到存盤層,使得可以直接在存盤系統中執行資料查詢和資料操作,而不需要把大資料轉移到記憶體中,這提高了系統效率

我們驗證了 CompressDB 可以支持多種型別的資料庫系統,包括 SQLite、LevelDB、MongoDB 和ClickHouse,我們用真實應用中的資料集測驗了 CompressDB 在單機和分布式環境下的性能,這些資料集有不同的資料量大小、結構和內容,實驗表明 CompressDB 平均帶來 40% 的吞吐量提升和 44% 的延遲縮短,并實作 1.81 倍的壓縮比,

二、研究動機

現代大資料系統面臨指數級增長的資料量,并使用資料壓縮來減少存盤空間,為了避免頻繁的壓縮和解壓縮操作的開銷,現有的研究探索了直接對壓縮資料執行大資料操作,這些系統在資料分析應用程式中表現出優秀的壓縮效率和性能提升,由于大資料通常存盤在磁盤中,我們的想法是基于規則在存盤層對壓縮資料進行隨機更新

三、現有技術的局限性

現有的壓縮技術在只讀的查詢處理方面顯示出巨大潛力,但功能完整的大資料系統必須同時支持資料的讀和寫,這就需要系統支持隨機更新以及資料的插入和洗掉,現有的壓縮技術并不支持在壓縮資料上直接修改資料,因此每次修改時都必須解壓縮和重新壓縮相對較大的資料塊,從而導致巨大的開銷,

四、重要發現

本研究希望開發一種高效的技術來填補現有技術的不足,以支持直接對壓縮資料進行更新、插入和洗掉,從而實作一個支持資料查詢和資料操作的高效的大資料系統,這是一項具有挑戰性的任務,因為現有的壓縮技術大多僅針對壓縮效率或讀資料操作進行了優化,此外,現有技術的壓縮資料結構不能修改,例如,一些壓縮技識訓于索引和后綴陣列,其中壓縮元素相互依賴,如果一小部分資料需要更新,則效率極低,

五、系統設計

本研究開發了一個新的存盤引擎CompressDB,支持直接對壓縮資料進行資料查詢和資料操作,并且支持各種資料庫系統,我們發現,如果基于規則的壓縮方法的DAG(directed acyclic graph,有向無環圖)深度被限制在較小的數值,那么這種壓縮方法開銷較小,并適用于資料操作,基于此,CompressDB采用基于規則的壓縮技術并限制其規則生成深度,同時,CompressDB可以通過操作語法規則對資料進行實時壓縮和操作,與之前基于規則的壓縮方法相比,我們開發了一系列新的設計:在元素級別,我們提出了一種新的資料結構——資料洞(block hole),在規則級別,我們為隨機更新啟用了有效的規則定位和規則拆分方案,在 DAG 級別,我們降低了規則的深度以提高效率,通過利用新的資料結構和演算法設計,CompressDB無需解壓即可高效處理資料,

5.1 系統設計

圖1展示了CompressDB 的系統結構,CompressDB由三大模塊組成:1)資料結構模塊,2)壓縮模塊,3)運算模塊,這三個模塊支持基于CompressDB的資料庫系統,資料結構模塊為壓縮模塊和運算模塊提供必要的資料結構,包括三種:blockHashTable表示資料內容到塊位置的映射關系,blockRefCount記錄塊被參考次數,blockHole是更新操作引起的存盤空洞,壓縮模塊支持檔案系統中的分層壓縮,可應用于各種基于塊的檔案系統,操作模塊可以將用戶操作下推到檔案系統,

file

圖 : CompressDB系統結構

5.2 操作下推

為了降低資料傳輸成本,本研究將算子操作下推到存盤層,算子下推是指資料處理直接發生在檔案系統層(較低的軟體層),使處理操作發生在更接近資料的地方,基于這種技術,CompressDB可以顯著減少對磁盤的資料訪問量,并加速所有上層資料庫應用程式,

5.3 與資料庫系統的互動

為了使CompressDB能夠支持各種資料庫,本研究在檔案系統中開發CompressDB,在檔案系統層,CompressDB 可以處理讀取和寫入等系統呼叫,因為它們可以通過“提取”“替換”“添加”等操作實作,因此,CompressDB 可以支持在檔案系統上運行的不同型別的資料庫系統(例如,SQLite、MySQL、MongoDB 等),這些資料庫系統依賴于 CompressDB 提供的系統呼叫,因此,CompressDB 可以支持資料庫系統的各種資料型別(例如,整數、浮點數、字串等)和操作(例如,連接、選擇、插入等),此外,我們為CompressDB開發了一些檔案系統不支持的操作,例如“插入”和“洗掉”,因為這些操作沒有對應的POSIX介面,我們提供了一組單獨的 API,可以有效地使用,

5.4 適用性

CompressDB是一個存盤引擎,主要應用是支持各種資料庫系統,而無需修改代碼,用戶唯一需要做的就是將系統存盤目錄設定為 CompressDB 的存盤目錄,通常來說,CompressDB 適用于有大量冗余資料,并需要進行資料分析和操作的資料庫系統,對于其他應用場景,它可能仍然有效,但尚未驗證,

六、主要成果和貢獻

為了驗證 CompressDB 的性能,本研究使用CompressDB支持多個資料庫系統,包括 SQLite、LevelDB、MongoDB和ClickHouse,本研究分別在單節點和集群環境中,使用多個具有不同尺寸、結構和內容的真實資料集來評估性能,集群環境中的實驗使用五節點集群和一種高性能網路分布式檔案系統MooseFS,MooseFS 在集群中傳輸資料并提供對資料的高吞吐量訪問,與 MooseFS 的原始版本相比,CompressDB平均帶來了 40% 的吞吐量提升、44% 的延遲減少和 1.81 的壓縮比,這證明了本研究的有效性,本研究做出以下主要貢獻:

? 本研究直接在壓縮資料上開發高效的資料操作,例如插入、洗掉和更新,除了隨機訪問,本研究還支持資料查詢和資料操作,
? 本研究開發了CompressDB,這是一種集成到檔案系統中的存盤引擎,CompressDB可以無縫支持各種資料庫系統,而無需修改資料庫,
? 本研究將資料算子操作下推到存盤系統,避免了記憶體和磁盤之間不必要的資料移動,從而提高了壓縮資料的處理效率,

七、本次研究成果面向的領域

本研究成果面向同時支持資料查詢和資料操作的大資料管理系統,CompressDB提供的壓縮能力使資料管理系統能夠存盤較大的資料量,同時支持壓縮資料上高效的資料查詢和操作,存盤效率和資料查詢、操作效率在當今大資料時代是至關重要的性能指標,CompressDB可以幫助現有的資料庫系統同時提升這些指標的性能,

福利來啦!為幫助廣大資料庫愛好者更加詳細地了解本篇論文內容,我們邀請到了中國人民大學副教授、博士生導師、騰訊犀牛鳥基金獲得者張峰老師來到直播間深度解讀,6 月 21 日 15:00,一起來直播間學習吧!

file

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/499146.html

標籤:其它

上一篇:PostgreSQL世界上最先進的開源關系型資料庫

下一篇:厲害了,騰訊云云巢榮獲信通院“云原生技術創新案例”獎!

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:33:24 more
  • MySQL中binlog備份腳本分享

    關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

    uj5u.com 2023-04-20 08:28:06 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:27:27 more
  • 快取與資料庫雙寫一致性幾種策略分析

    本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

    uj5u.com 2023-04-20 08:26:48 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:26:35 more
  • 云時代,MySQL到ClickHouse資料同步產品對比推薦

    ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

    uj5u.com 2023-04-20 08:26:29 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:25:13 more
  • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

    Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

    uj5u.com 2023-04-20 08:24:54 more
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:24:03 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:23:11 more