資料與儲存 2026 年 8 月 5 日

2026-08-05 — ClickHouse Cloud 用 50 倍加速觀測查詢並改進秒級自動擴縮容,pgBackRest 2.59.0 加入 WAL 到期清除

primary=https://clickhouse.com/blog/mercado-libre-observability-on-clickhouse-cloud primary=https://clickhouse.com/blog/making-clickhouse-cloud-autoscaling-more-reactive primary=https://www.postgresql.org/about/news/pgbackrest-2590-released-3355/ primary=https://pgbackrest.org/release.html#2.59.0

Mercado Libre 換掉可觀測性資料庫:Trace 查詢從 5 分鐘降到 4 秒

ClickHouse Blog · 2026-08-04

原本的問題

拉美最大電商與金融科技平台 Mercado Libre 營運橫跨 18 國,市佔約 35%,年處理 2.7 億件商品配送與 870 億美元支付,官方文章寫出每秒承載超過 150 億次請求的規模。舊有可觀測性平台把過濾、聚合等重運算放在查詢時於用戶端執行,高基數欄位(如付款 ID、使用者 ID)的 trace 查詢常常超過 5 分鐘才有結果。架構複雜度隨「使用者數 × span 數」線性成長,span 吞吐量卡在每分鐘 7000 萬筆就上不去,新增可索引屬性的成本也很高。

採用的方法

資料擷取流程(應用程式 → SDK → OTel collector → stream → consumer)維持不變,只把儲存層換成 ClickHouse Cloud,並在前面加一層讀取代理做限流與 AI 工具(O11y MCP server)整合。schema 採分層設計:原始表只留 1 天,再用materialized view算出 30 天的 span 摘要表與 90 天的 metric 表。針對高基數查詢,另建一張 span_events_attributes 查找表,用 ReplacingMergeTree 引擎依「屬性 key → 時間桶 → 屬性值 → trace ID」排序並加 bloom filter skip index,查詢先在這張表篩選再用 trace ID 回頭撈完整 trace,把兩層查詢拆開。ReplacingMergeTree 的去重是在背景 merge 時才發生、非寫入當下,需要即時保證去重的場景要搭配 FINAL。此外把讀、寫、merge 拆成獨立叢集,避免小 part 堆積拖垮效能。

實際效果

原本超過 5 分鐘的查詢,現在約 4 秒回應,官方數字是 50 倍加速。ZSTD 壓縮把原始表從 181 TiB 壓到 20 TiB,減少 89%;span 表整體從 4.34 PiB 壓到 621 TiB,減少 86–89%。目前遷移約 30% 的關鍵應用,這部分流量已經是每分鐘 4 億筆 span,span 表累積 9.55 兆行,查找表累積 4.9 兆行,trace 摘要表 8700 億行。

原始來源:ClickHouse BlogReplacingMergeTree docs


ClickHouse Cloud 自動擴縮容改版:從固定週期輪詢變成秒級反應

ClickHouse Blog · 2026-08-04

核心改動

ClickHouse Cloud 原本的擴縮容建議服務是計時器驅動:每隔固定時間醒來一次,把所有服務排進同一個時間窗口逐一算建議,算完就回去睡到下一個 tick。問題是若某服務突然記憶體吃緊,也得等到下一輪排程才會被處理,中間有明顯延遲。團隊改用 Kubernetes 的 controller-runtime 函式庫重寫調度層,把 Prometheus 指標即時寫進 ClickHouse,再用 materialized view 把超過門檻的事件篩進一張輕量的 recommendation_signals 表:

CREATE TABLE recommendation_signals (
  scrape_ts DateTime,
  service_name LowCardinality(String),
  metric_name LowCardinality(String),
  metric_value Float64
)

反應路徑每隔幾秒對這張表做一次輪詢:

SELECT DISTINCT service_name, metric_name
FROM recommendation_signals
WHERE scrape_ts > now() - INTERVAL 5 MINUTE;

影響範圍

系統變成雙軌並行:原本的週期性掃描保留下來做安全網與縮容判斷,新增的反應式快速路徑在偵測到如 soft_memory_rejections 這類關鍵訊號的幾秒內就觸發建議,架構上也預留了加入 CPU 門檻、OOM 事件等其他訊號類型的空間。訊號表只保留 5 分鐘回看窗與 1 小時 TTL,執行端靠限流工作佇列(含去重、指數退避、有界並行)與可重複執行(idempotent)的調節函式,確保同一訊號不會被重複處理。文章提到反應式路徑在上線初期先跑在「只觀察、不觸發」模式,週期性掃描仍是主要驅動者。

原始來源:ClickHouse Blog


pgBackRest 2.59.0 發布:新增 WAL 歸檔到期清除與 S3 Outposts 支援

PostgreSQL News · 2026-08-04

核心改動

pgBackRest 是 PostgreSQL 常用的備份與還原工具,2.59.0 加入對 PostgreSQL 19 的支援,並新增 archive-expire-before 選項,讓使用者能主動清掉超過指定時間點的 WAL 歸檔,不必等下一次完整備份才回收空間。儲存後端補上 S3 Outposts 與可設定的 S3 STS endpoint,Azure 儲存新增批次刪除,S3 也加入 process 層級驗證。另外還有 systemd notify 整合、SFTP 連線在伺服器主動斷開閒置連線後會自動重連、manifest 建置時用 user/group 快取加速掃描。

影響範圍

安全性上,以 root 執行 pgBackRest 現在預設會直接報錯,除非明確加上 allow-root;非同步 archive-push 遇到第一個錯誤就會直接退出,不再悶著繼續跑。這版也修了幾個穩定性問題:

  • expire 可能誤刪還在其他主機上進行中的備份
  • WAL 檔案出錯時 archive-push-queue-max 沒有被正確套用
  • 跨 timeline 切換時 archive-get 的非同步復原會失敗
  • error 模組的潛在 buffer overrun,以及並行 protocol client 的 use-after-free

原始來源:PostgreSQL NewspgBackRest Release Notes


End of article
0
Would love your thoughts, please comment.x
()
x