Vineyard 論文被 SIGMOD'2023 接收,助力計算引擎之間高效資料交換

阿里云云原生發表於2023-03-13
Vineyard (CNCF sandbox 專案)是脫胎於 GraphScope 底層儲存、用於在複雜工作流中不同計算引擎之間進行高效資料交換的中介軟體,該工作的論文被資料庫領域頂級學術會議 SIGMOD 2023 接收錄用。

近日,CCF-A 類學術會議、資料庫領域最為優秀的學術會議之一的 SIGMOD 2023(The 42nd ACM SIGMOD International Conference on Management of Data)Industrial Track 結果揭曉,致力於不同計算引擎之間進行高效資料互動的專案 Vineyard (v6d) 被成功接收!

Vineyard: Optimizing Data Sharing in Data-Intensive Analytics. Wenyuan Yu, Tao He, Lei Wang, Ke Meng, Ye Cao, Diwen Zhu, Sanhong Li, Jingren Zhou. The 42nd ACM International Conference on Management of Data (SIGMOD), Seattle, Washington, USA, June 2023.

真實的生產環境存在著大量的複雜的分析型作業:單個作業中包含若干子任務,而各個子任務可能屬於不同的計算型別(例如 SQL、深度學習、圖計算)。為了處理這些複雜的作業,往往將每個子任務分配到某個特定的計算引擎(例如將圖計算任務分配到 GraphScope,將深度學習任務分配到 PyTorch)。為了在不同計算引擎之間進行中間結果的交換,目前通用的做法是將中間結果以檔案的形式儲存到外部儲存中(例如本地磁碟、S3 和 OSS),但是這個過程會導致巨大的資料序列化/反序列化、I/O等開銷,從而拖慢整個作業的執行時間。我們發現儘管不同的計算引擎往往對同一資料結構(例如 DataFrame、HashMap)有不同的實現,但是同一資料結構的介面則基本保持一致,而計算引擎的計算邏輯往往只關注資料結構提供的介面而非介面的具體實現。

基於這個觀察,我們設計了 Vineyard (v6d),它允許使用者向 v6d 註冊自己的資料結構,在計算引擎與 v6d 中的資料結構進行對接後,計算引擎產生的中間結果以高層的 object 分享,使得計算引擎可以透過記憶體對映(memory mapping)和方法共享(method sharing)高效地進行資料分享。同時,為了降低計算引擎與 v6d 的整合難度,v6d 針對跨程式語言的計算引擎進行了針對性的最佳化。在真實資料集和作業中,v6d 與傳統的透過檔案和外部儲存進行資料交換的方案相比,能夠取得最高 68.4 倍的加速。

Vineyard 目前已經開源,併成為 CNCF sandbox 專案,點選此處即可獲得 Vineyard 的進一步介紹和詳細的文件以及原始碼。

相關文章