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

来源:https://www.cnblogs.com/tencentdb/archive/2022/06/16/16381186.html
-Advertisement-
Play Games

騰訊雲資料庫TDSQL與中國人民大學最新聯合研究成果被SIGMOD 2022接收並將通過長文形式發表。SIGMOD是國際數據管理與資料庫領域頂尖的學術會議之一,騰訊雲資料庫TDSQL論文已連續多年入選VLDB、SIGMOD、ICDE等國際頂級會議。 本次入選論文題目為:CompressDB: Ena ...


騰訊雲資料庫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


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 微信公眾號:趣編程ACE關註可瞭解更多的.NET日常實戰開發技巧,如需源碼 請公眾號後臺留言 源碼;[如果覺得本公眾號對您有幫助,歡迎關註] .Net6下集成微服務網關-Ocelot ​ 視頻講解 網關常見功能 1:路由 routing 2: 請求聚合 3:身份驗證和授權 4:速率限制 5:緩存 6 ...
  • 鏡像下載、功能變數名稱解析、時間同步請點擊 阿裡雲開源鏡像站 前言 這裡說一下為什麼要在Windows子系統下安裝桌面版Ubuntu,可能有人會問虛擬機不香嗎,雙系統不香嗎?折騰雙系統一不留神就把原來的環境的搞崩了,安裝虛擬機的話可能又會因為電腦硬體限制導致虛擬機非常卡頓無法正常使用,所以這裡是只針對不想經 ...
  • Ubuntu中fcitx安裝失敗問題的原因是ubuntu用的是國外鏡像源,部分軟體下載不了。 對策: 更換國內鏡像源可以使 Ubuntu 的第三方軟體包的下載速度大步提升,這裡以更換為阿裡源為例: 源文件的相關信息在“/etc/apt/”路徑下,使用cd /etc/apt進入文件 源鏈接存放在文件[ ...
  • Memory Resource Controller 記憶體資源控制器 註意: 這個文檔完完全全地過時了,需要整個地重寫。但它還是包含了有用的信息,所以我們仍舊把它保留在這裡,但是如果你需要深入理解的話,需要確保核對過當前的代碼。 註意: 記憶體資源控制器在本文檔中指的是記憶體控制器。不要混淆了這裡記憶體控 ...
  • 延時統計Delay accounting 任務在執行時等待某個內核資源會意外遇到延遲,例如可運行的任務正在等待空閑CPU。 per-task的延時統計功能測量下列情況下任務經歷的延遲: 正在等待CPU,waiting for a CPU (while being runnable) 同步塊I/O的完 ...
  • 一、視圖概念 • 視圖概念 • 視圖是基於一個表或多個表或視圖的邏輯表(虛表),本身不包含數據,通過它可以對錶裡面的數據進行查詢。 • 基表 • 視圖是從一個或多個實際表中獲得的,這些表的數據存放在資料庫中。那些用於產生視圖的表叫做該視圖的基表。 • 視圖優點 • 簡化性 • 安全性 二、視圖分類 ...
  • 一、索引概念 • 在關係資料庫中,索引是一種與表有關的資料庫對象,它可以使對應於表的SQL查詢語句執行得更快。 • 索引的作用類似於圖書的目錄,可以根據目錄中的頁碼快速找到所需的內容。 • 對於資料庫來說,索引是一個必選項,對於現在的各種大型資料庫來說,索引可以大大提高資料庫的性能,以至於它變成了數 ...
  • 一、觸發器簡介 • 什麼是觸發器(trigger) • 觸發器在資料庫里以獨立的對象存儲,由資料庫產生某一類事件而啟動運行,即觸發器是當某個事件發生時自動地隱式運行。 • 觸發器的特點 • 由特定事件觸發,外部無法調用。 • 觸發器無參數。 • 一個表上最多可有12個觸發器。 • 觸發器的作用 • ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...