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
  • C#TMS系統代碼-基礎頁面BaseCity學習 本人純新手,剛進公司跟領導報道,我說我是java全棧,他問我會不會C#,我說大學學過,他說這個TMS系統就給你來管了。外包已經把代碼給我了,這幾天先把增刪改查的代碼背一下,說不定後面就要趕鴨子上架了 Service頁面 //using => impo ...
  • 委托與事件 委托 委托的定義 委托是C#中的一種類型,用於存儲對方法的引用。它允許將方法作為參數傳遞給其他方法,實現回調、事件處理和動態調用等功能。通俗來講,就是委托包含方法的記憶體地址,方法匹配與委托相同的簽名,因此通過使用正確的參數類型來調用方法。 委托的特性 引用方法:委托允許存儲對方法的引用, ...
  • 前言 這幾天閑來沒事看看ABP vNext的文檔和源碼,關於關於依賴註入(屬性註入)這塊兒產生了興趣。 我們都知道。Volo.ABP 依賴註入容器使用了第三方組件Autofac實現的。有三種註入方式,構造函數註入和方法註入和屬性註入。 ABP的屬性註入原則參考如下: 這時候我就開始疑惑了,因為我知道 ...
  • C#TMS系統代碼-業務頁面ShippingNotice學習 學一個業務頁面,ok,領導開完會就被裁掉了,很突然啊,他收拾東西的時候我還以為他要旅游提前請假了,還在尋思為什麼回家連自己買的幾箱飲料都要叫跑腿帶走,怕被偷嗎?還好我在他開會之前拿了兩瓶芬達 感覺感覺前面的BaseCity差不太多,這邊的 ...
  • 概述:在C#中,通過`Expression`類、`AndAlso`和`OrElse`方法可組合兩個`Expression<Func<T, bool>>`,實現多條件動態查詢。通過創建表達式樹,可輕鬆構建複雜的查詢條件。 在C#中,可以使用AndAlso和OrElse方法組合兩個Expression< ...
  • 閑來無聊在我的Biwen.QuickApi中實現一下極簡的事件匯流排,其實代碼還是蠻簡單的,對於初學者可能有些幫助 就貼出來,有什麼不足的地方也歡迎板磚交流~ 首先定義一個事件約定的空介面 public interface IEvent{} 然後定義事件訂閱者介面 public interface I ...
  • 1. 案例 成某三甲醫預約系統, 該項目在2024年初進行上線測試,在正常運行了兩天後,業務系統報錯:The connection pool has been exhausted, either raise MaxPoolSize (currently 800) or Timeout (curren ...
  • 背景 我們有些工具在 Web 版中已經有了很好的實踐,而在 WPF 中重新開發也是一種費時費力的操作,那麼直接集成則是最省事省力的方法了。 思路解釋 為什麼要使用 WPF?莫問為什麼,老 C# 開發的堅持,另外因為 Windows 上已經裝了 Webview2/edge 整體打包比 electron ...
  • EDP是一套集組織架構,許可權框架【功能許可權,操作許可權,數據訪問許可權,WebApi許可權】,自動化日誌,動態Interface,WebApi管理等基礎功能於一體的,基於.net的企業應用開發框架。通過友好的編碼方式實現數據行、列許可權的管控。 ...
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...