生活分享

Google Cloud 宣布 Spanner queues 正式推出:把訊息佇列放進資料庫交易,瞄準 AI 代理可靠性

Google Cloud 宣布 Spanner queues 正式推出,讓訊息建立成為資料庫交易的一部分,目標是解決 AI 代理「狀態」與「動作」不同步的問題。本文整理官方說法、主要功能與對一般讀者的意義。

閱讀時間約 6 分鐘

Google Cloud 宣布 Spanner queues 正式推出:把訊息佇列放進資料庫交易,瞄準 AI 代理可靠性
圖片:Mokaair (Original editorial artwork)

Google Cloud 宣布了什麼

Google Cloud 在官方部落格宣布 Spanner queues 正式推出(general availability,也就是不再是測試版)。Spanner 是 Google Cloud 的資料庫服務;依該公司說明,Spanner queues 是直接內建在 Spanner 資料庫中的原生交易式訊息功能。文章由產品經理 Nitin Sagar 與工程經理 Matthew Mucklo 署名。

這裡的「佇列」可以想成一張排隊等待處理的工作清單;「交易」則是一組綁在一起的資料變更,要嘛全部完成、要嘛全部取消。Google Cloud 表示,使用 Spanner queues 時,建立一則訊息只是交易中的另一筆寫入。換句話說,AI 代理(能自主執行退款、管理庫存等工作的 AI 程式)更新自身狀態,以及「接下來要做什麼」的指令,會被當成同一件事一起寫入;要嘛全部成功,要嘛全部不生效。

它想解決的問題:狀態與動作不同步

Google Cloud 指出,AI 代理常需要在資料庫中記錄內部狀態,同時再透過另一套訊息或事件佇列系統派送非同步動作(不必等待立即完成、稍後才執行的工作)。該公司認為,兩套系統各自提交,會破壞交易一致性。

Google Cloud 舉出兩種失敗情境:一是資料庫已更新、但動作沒送出,代理「決定了卻沒做」;二是動作已送出、但資料庫更新被回滾(撤銷),代理根據無效的狀態採取行動。該公司表示,開發者過去必須自行建置 outbox 模式、冪等層(確保同一個動作重複執行也不會造成重複結果的機制)與對帳程式等補救機制,並形容這是沉重的可靠性負擔。

傳統做法與 Spanner queues 比較,內容均依 Google Cloud 官方部落格描述整理
面向傳統做法(據 Google Cloud 描述)Spanner queues(據 Google Cloud 說法)
狀態與訊息資料庫與訊息系統分開提交同一交易內一起提交或一起失敗
延遲與排程需外部 cron 排程器(定時執行工作的工具)或輪詢訊息可立即派送或排程於未來送達
可靠性補強自建 outbox、冪等層、對帳程式保證訊息至少送達一次、確認至多一次,可藉此達成恰好處理一次
監控方式訊息儲存常像黑盒子以標準 SQL 查詢佇列資料表

主要功能重點

  • 原子性的決策與入列:Google Cloud 表示,代理可在同一交易中更新記憶或狀態,並把任務交給其他代理,兩者不可分割地一起完成。
  • 排程與延遲:據該公司說法,延遲重試、排程檢查或 SLA(服務水準承諾)升級計時器都可與狀態更新一起寫入。
  • 人工審批與逾時:Google Cloud 舉例,等待主管核准時,可記錄待審批狀態並排程在 72 小時後升級處理;若主管提前核准,可在同一交易中取消該升級任務。
  • 租約管理:「租約」是處理程式暫時領取一項任務的期限。Google Cloud 表示 Spanner 會自動管理訊息租約,處理耗時較長的 LLM(大型語言模型)推理或外部 API 呼叫時可延長租約。
  • SQL 監控:該公司表示可用 GoogleSQL 定義、檢視與管理佇列,並用標準 SQL 稽核執行紀錄。

Google Cloud 也特別區分 Spanner change streams 與 Spanner queues:前者用於持續擷取資料庫的資料變更,並串流到下游分析或儲存;後者則專為交易式任務編排設計。

對一般讀者有什麼影響

一般使用者不會直接操作 Spanner queues,但可能間接感受到它想解決的問題。Google Cloud 以退款與審批為例說明:若代理的「紀錄」與「實際動作」不同步,可能出現該做的事沒做,或審批後仍收到催辦通知等狀況。Google Cloud 表示,這項功能正是把這類一致性問題交給資料庫處理。

Google Cloud 表示,Spanner queues 也可用於 AI 代理以外的場景,例如社群動態、新聞即時更新、零售訂單與庫存流程,以及金融服務的交易通知。實際效果仍取決於各企業如何設計與使用,目前也沒有獨立來源驗證其表現。

常見問題

Spanner queues 是什麼?

據 Google Cloud 說法,它是直接內建於 Spanner 資料庫的交易式訊息功能,建立訊息就像在交易中多寫一筆資料,與其他資料更新一起成功或一起失敗。

為什麼 Google Cloud 說它特別適合 AI 代理?

Google Cloud 指出,AI 代理常要一邊記錄狀態、一邊派送動作,兩者若分屬不同系統,可能出現決定了卻沒執行,或根據無效狀態執行的情況。Spanner queues 讓兩者在同一交易內完成。

它能保證任務只執行一次嗎?

Google Cloud 表示其保證至少一次送達與至多一次確認,使用者可藉此「達成」恰好一次處理。這意味著仍需配合正確的應用程式設計,例如該公司範例中把任務編號作為外部 API 的冪等鍵,讓重複送出的請求不會被執行兩次。

它和 Spanner change streams 有什麼不同?

依 Google Cloud 說明,change streams 用於持續擷取資料變更並串流到下游分析或儲存;Spanner queues 則用於交易式任務編排,支援訊息租約、排程送達、SQL 拉取與交易內確認。

這些說法有經過獨立驗證嗎?

沒有。本文資訊僅來自 Google Cloud 官方部落格,屬廠商公告,目前未見獨立第三方的測試或確認。

查看同分類最新消息

最新旅遊情報攻略

資料來源

生活分享