0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CeresDB 1.0正式發(fā)布,Rust高性能云原生時序數(shù)據(jù)庫

OSC開源社區(qū) ? 來源:OSC開源社區(qū) ? 2023-03-06 10:22 ? 次閱讀

CeresDB 是一款高性能、分布式的云原生時序數(shù)據(jù)庫,采用 Rust 編寫。其開發(fā)團隊近日宣布:經(jīng)過近一年的開源研發(fā)工作,時序數(shù)據(jù)庫 CeresDB 1.0 正式發(fā)布,達到生產(chǎn)可用標準。

CeresDB 1.0 官方中文文檔:https://docs.ceresdb.io/cn/

CeresDB 1.0 核心特性介紹

存儲引擎
  • 支持列式混合存儲
  • 高效 XOR 過濾器
云原生分布式
  • 實現(xiàn)了計算存儲分離(支持 OSS 作為數(shù)據(jù)存儲,WAL 實現(xiàn)支持 OBKV、Kafka)
  • 支持 HASH 分區(qū)表
部署與運維
  • 支持單機部署
  • 支持分布式集群部署
  • 支持 Prometheus + Grafana 搭建自監(jiān)控
讀寫協(xié)議
  • 支持 SQL 查詢與寫入
  • 實現(xiàn)了 CeresDB 內(nèi)置高性能讀寫協(xié)議,提供多語言 SDK
  • 支持 Prometheus,可以作為 Prometheus 的 remote storage 進行使用
多語言讀寫 SDK
  • 實現(xiàn)了四種語言的客戶端 SDK:Java、Python、Go、Rust

CeresDB 架構(gòu)介紹

CeresDB 是一個時序數(shù)據(jù)庫,與經(jīng)典時序數(shù)據(jù)庫相比,CeresDB 的目標是能夠同時處理時序型和分析型兩種模式的數(shù)據(jù),并提供高效的讀寫。在經(jīng)典的時序數(shù)據(jù)庫中,Tag列(InfluxDB稱之為TagPrometheus稱之為Label)通常會對其生成倒排索引,但在實際使用中,Tag的基數(shù)在不同的場景中是不一樣的 ———— 在某些場景下,Tag的基數(shù)非常高(這種場景下的數(shù)據(jù),我們稱之為分析型數(shù)據(jù)),而基于倒排索引的讀寫要為此付出很高的代價。而另一方面,分析型數(shù)據(jù)庫常用的掃描 + 剪枝方法,可以比較高效地處理這樣的分析型數(shù)據(jù)。因此 CeresDB 的基本設(shè)計理念是采用混合存儲格式和相應(yīng)的查詢方法,從而達到能夠同時高效處理時序型數(shù)據(jù)和分析型數(shù)據(jù)。下圖展示了 CeresDB 單機版本的架構(gòu)
┌──────────────────────────────────────────┐
│       RPC Layer (HTTP/gRPC/MySQL)        │
└──────────────────────────────────────────┘
┌──────────────────────────────────────────┐
│                 SQL Layer                │
│ ┌─────────────────┐  ┌─────────────────┐ │
│ │     Parser      │  │     Planner     │ │
│ └─────────────────┘  └─────────────────┘ │
└──────────────────────────────────────────┘
┌───────────────────┐  ┌───────────────────┐
│    Interpreter    │  │      Catalog      │
└───────────────────┘  └───────────────────┘
┌──────────────────────────────────────────┐
│               Query Engine               │
│ ┌─────────────────┐  ┌─────────────────┐ │
│ │    Optimizer    │  │    Executor     │ │
│ └─────────────────┘  └─────────────────┘ │
└──────────────────────────────────────────┘
┌──────────────────────────────────────────┐
│         Pluggable Table Engine           │
│  ┌────────────────────────────────────┐  │
│  │              Analytic              │  │
│  │┌────────────────┐┌────────────────┐│  │
│  ││      Wal       ││    Memtable    ││  │
│  │└────────────────┘└────────────────┘│  │
│  │┌────────────────┐┌────────────────┐│  │
│  ││     Flush      ││   Compaction   ││  │
│  │└────────────────┘└────────────────┘│  │
│  │┌────────────────┐┌────────────────┐│  │
│  ││    Manifest    ││  Object Store  ││  │
│  │└────────────────┘└────────────────┘│  │
│  └────────────────────────────────────┘  │
│  ┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─   │
│           Another Table Engine        │  │
│  └ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─   │
└──────────────────────────────────────────┘

性能優(yōu)化與實驗結(jié)果

CeresDB 組合使用了列式混合存儲、數(shù)據(jù)分區(qū)、剪枝、高效掃描等技術(shù),解決海量時間線(high cardinality)下寫入查詢性能變差的問題。

寫入優(yōu)化

CeresDB 采用類 LSM(Log-structured merge-tree)寫入模型,無需在寫入時處理復(fù)雜的倒排索引,因此寫入性能上較好。

查詢優(yōu)化

主要采用以下技術(shù)手段提高查詢性能:

剪枝:

  • min/max 剪枝:構(gòu)建代價比較低,在特定場景,性能較好
  • XOR 過濾器:提高對 parquet 文件中的 row group 的篩選精度

高效掃描:

  • 多個 SST 間并發(fā):同時掃描多個 SST 文件
  • 單個 SST 內(nèi)部并發(fā):支持 Parquet 層并行拉取多個 row group
  • 合并小 IO:針對 OSS 上的文件,合并小 IO 請求,提高拉取效率
  • 本地 cache:緩存 OSS 拉取文件,支持內(nèi)存和磁盤緩存

性能測試結(jié)果

采用 TSBS 進行性能測試。壓測參數(shù)如下:

  • 10 個 Tag
  • 10 個 Field
  • 時間線(Tags 組合數(shù))100w 量級

壓測機器配置:24c90g

InfluxDB 版本:1.8.5

CeresDB 版本:1.0.0

寫入性能對比

InfluxDB 寫入性能隨著時間下降較多。CeresDB 在寫入穩(wěn)定后,寫入速率趨于平穩(wěn),并且總體寫入性能表現(xiàn)為 InfluxDB 的 1.5 倍以上(一段時間后可達 2 倍以上差距)

下圖中,單行 row 包含 10 個 Field。

66b64880-bb79-11ed-bfe3-dac502259ad0.png66d16606-bb79-11ed-bfe3-dac502259ad0.png

上圖為 Influxdb,下圖為 CeresDB

查詢性能對比

低篩選度條件(條件:os=Ubuntu15.10),CeresDB 比 InfluxDB 快 26 倍,具體數(shù)據(jù)如下:

  • CeresDB 查詢耗時:15s
  • InfluxDB 查詢耗時:6m43s

高篩選度條件(命中的數(shù)據(jù)較少,條件:hostname=[8 個],此時理論上傳統(tǒng)倒排索引會更有效),這是 InfluxDB 更有優(yōu)勢的場景,此時在預(yù)熱完成條件下,CeresDB 比 InfluxDB 慢 5 倍。

  • CeresDB:85ms
  • InfluxDB:15ms

2023 年 roadmap

開發(fā)團隊表示,2023 年,在 CeresDB 1.0 發(fā)布之后,他們大部分工作將聚焦在性能、分布式與周邊生態(tài)方面的工作。尤其周邊生態(tài)的對接支持工作,希望能讓各種不同的用戶更加簡單的用上 CeresDB:

周邊生態(tài)

  • 生態(tài)兼容,包括 PromQL、InfluxdbQL、OpenTSDB 等常用時序數(shù)據(jù)庫協(xié)議兼容
  • 運維工具支持,包括 k8s 支持、CeresDB 運維系統(tǒng)、自監(jiān)控等
  • 開發(fā)者工具,包括數(shù)據(jù)導(dǎo)入導(dǎo)出等

性能

  • 探索新的存儲格式
  • 增強不同類型索引,強化 CeresDB 在不同工作負載下的表現(xiàn)

分布式

  • 自動負載均衡
  • 提高可用性、可靠性

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)存儲
    +關(guān)注

    關(guān)注

    5

    文章

    951

    瀏覽量

    50816
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3739

    瀏覽量

    64181
  • Rust
    +關(guān)注

    關(guān)注

    1

    文章

    228

    瀏覽量

    6530

原文標題:CeresDB 1.0正式發(fā)布,Rust高性能云原生時序數(shù)據(jù)庫

文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    云原生和非云原生哪個好?六大區(qū)別詳細對比

    云原生和非云原生各有優(yōu)劣,具體選擇取決于應(yīng)用場景。云原生利用云計算的優(yōu)勢,通過微服務(wù)、容器化和自動化運維等技術(shù),提高了應(yīng)用的可擴展性、更新速度和成本效益。非云原生則可能更適合對延遲敏感
    的頭像 發(fā)表于 09-13 09:53 ?253次閱讀

    利用NVIDIA RAPIDS加速DolphinDB Shark平臺提升計算性能

    DolphinDB 是一家高性能數(shù)據(jù)庫研發(fā)企業(yè),也是 NVIDIA 初創(chuàng)加速計劃成員,其開發(fā)的產(chǎn)品基于高性能分布式時序數(shù)據(jù)庫,是支持復(fù)雜計算和流數(shù)據(jù)
    的頭像 發(fā)表于 09-09 09:57 ?353次閱讀
    利用NVIDIA RAPIDS加速DolphinDB Shark平臺提升計算<b class='flag-5'>性能</b>

    京東云原生安全產(chǎn)品重磅發(fā)布

    “安全產(chǎn)品那么多,我怎么知道防住了?”“大家都說自己是云原生的,我看都是換湯不換藥”在與客戶溝通云原生安全方案的時候,經(jīng)常會遇到這樣的吐槽。越來越的客戶已經(jīng)開始了云原生化的技術(shù)架構(gòu)改造,也意識到
    的頭像 發(fā)表于 07-26 10:36 ?368次閱讀
    京東<b class='flag-5'>云原生</b>安全產(chǎn)品重磅<b class='flag-5'>發(fā)布</b>

    基于DPU與SmartNic的云原生SDN解決方案

    隨著云計算,大數(shù)據(jù)和人工智能等技術(shù)的蓬勃發(fā)展,數(shù)據(jù)中心面臨著前所未有的數(shù)據(jù)洪流和計算壓力,這對SDN提出了更高的性能和效率要求。自云原生概念
    的頭像 發(fā)表于 07-22 11:44 ?581次閱讀
    基于DPU與SmartNic的<b class='flag-5'>云原生</b>SDN解決方案

    時序數(shù)據(jù)庫是什么?時序數(shù)據(jù)庫的特點

    時序數(shù)據(jù)庫是一種在處理時間序列數(shù)據(jù)方面具有高效和專門化能力的數(shù)據(jù)庫。它主要用于存儲和處理時間序列數(shù)據(jù),比如傳感器數(shù)據(jù)、監(jiān)控
    的頭像 發(fā)表于 04-26 16:02 ?566次閱讀

    華為云多模數(shù)據(jù)庫 GeminiDB 架構(gòu)與應(yīng)用實踐直播問答實錄

    多模數(shù)據(jù)庫作為一種新興的數(shù)據(jù)管理解決方案,正在受到越來越多的關(guān)注。而華為云多模數(shù)據(jù)庫 GeminiDB 基于云原生數(shù)據(jù)庫優(yōu)勢,讓企業(yè)應(yīng)用更智
    的頭像 發(fā)表于 04-08 18:25 ?1098次閱讀

    華為云原生多模數(shù)據(jù)庫 GeminiDB 架構(gòu)與應(yīng)用實踐

    近日,2023 全球分布式云大會·深圳站順利召開,華為云 NoSQL 數(shù)據(jù)庫研發(fā)總監(jiān)余汶龍在會上發(fā)表了題為《華為云原生多模數(shù)據(jù)庫 GeminiDB 架構(gòu)與應(yīng)用實踐》的精彩演講。 余汶龍?zhí)岢鲈谥悄?/div>
    的頭像 發(fā)表于 04-08 18:23 ?1113次閱讀
    華為<b class='flag-5'>云原生</b>多模<b class='flag-5'>數(shù)據(jù)庫</b> GeminiDB 架構(gòu)與應(yīng)用實踐

    基于Rust的嵌入式符合ACID的鍵值數(shù)據(jù)庫

    surrealkv -- 基于 Rust 的 low level、版本化、嵌入式、符合 ACID 的鍵值數(shù)據(jù)庫
    的頭像 發(fā)表于 12-28 11:29 ?817次閱讀

    從WasmEdge運行環(huán)境讀寫Rust Wasm應(yīng)用的時序數(shù)據(jù)

    WebAssembly (Wasm) 正在成為一個廣受歡迎的編譯目標,幫助開發(fā)者構(gòu)建可遷移平臺的應(yīng)用。最近 Greptime 和 WasmEdge 協(xié)作,支持了在 WasmEdge 平臺上的 Wasm 應(yīng)用通過 MySQL 協(xié)議讀寫 GreptimeDB 中的時序數(shù)據(jù)
    的頭像 發(fā)表于 12-22 11:03 ?913次閱讀

    AI 時代數(shù)據(jù)存儲管理新挑戰(zhàn)分論壇圓滿舉辦

    ,共同分享了 AI 時代下數(shù)據(jù)庫技術(shù)最新發(fā)展與實踐。 螞蟻集團開發(fā)工程師、HoraeDB 核心開發(fā)者 曹瑞秋 曹瑞秋 在《時序數(shù)據(jù)庫 HoraeDB 技術(shù)揭秘》的主題分享中表示,近期已將 CeresDB
    的頭像 發(fā)表于 12-22 10:51 ?318次閱讀
    AI 時代<b class='flag-5'>數(shù)據(jù)</b>存儲管理新挑戰(zhàn)分論壇圓滿舉辦

    AI時代數(shù)據(jù)存儲管理新挑戰(zhàn)分論壇圓滿舉辦

    AI時代下數(shù)據(jù)庫技術(shù)最新發(fā)展與實踐。 螞蟻集團開發(fā)工程師、HoraeDB 核心開發(fā)者 曹瑞秋 曹瑞秋 在《時序數(shù)據(jù)庫HoraeDB 技術(shù)揭秘》的主題分享中表示,近期已將CeresDB內(nèi)核捐獻到
    的頭像 發(fā)表于 12-20 09:40 ?299次閱讀
    AI時代<b class='flag-5'>數(shù)據(jù)</b>存儲管理新挑戰(zhàn)分論壇圓滿舉辦

    云原生數(shù)據(jù)庫GaiaDB架構(gòu)設(shè)計解析

    目前,云原生數(shù)據(jù)庫已經(jīng)被各行各業(yè)大規(guī)模投入到實際生產(chǎn)中,最終的目標都是「單機 + 分布式一體化」。但在演進路線上,當前主要有兩個略有不同的路徑。
    的頭像 發(fā)表于 12-14 14:48 ?507次閱讀
    <b class='flag-5'>云原生</b><b class='flag-5'>數(shù)據(jù)庫</b>GaiaDB架構(gòu)設(shè)計解析

    oracle數(shù)據(jù)庫的使用方法

    Oracle數(shù)據(jù)庫是一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它由Oracle公司開發(fā)和維護。它提供了安全、可靠和高性能數(shù)據(jù)庫管理解決方案,被廣泛應(yīng)用于企業(yè)級應(yīng)用和大型
    的頭像 發(fā)表于 12-06 10:10 ?1110次閱讀

    NoSQL 數(shù)據(jù)庫如何選型

    什么是NoSQL數(shù)據(jù)庫?為什么要使用NoSQL數(shù)據(jù)庫?鍵值數(shù)據(jù)庫內(nèi)存鍵值數(shù)據(jù)庫文檔數(shù)據(jù)庫列式數(shù)據(jù)庫
    的頭像 發(fā)表于 11-26 08:05 ?403次閱讀
    NoSQL <b class='flag-5'>數(shù)據(jù)庫</b>如何選型

    如何編寫高性能Rust代碼

    為了最大限度地提高Rust應(yīng)用程序的性能,你需要了解支持代碼的底層硬件架構(gòu),如何優(yōu)化算法和數(shù)據(jù)結(jié)構(gòu),以及如何對代碼進行配置和基準測試。在本文中,我們將簡要介紹這些主題,希望能更好地理解如何編寫
    的頭像 發(fā)表于 11-03 14:28 ?752次閱讀
    如何編寫<b class='flag-5'>高性能</b>的<b class='flag-5'>Rust</b>代碼