底層揭密

多執行緒架構

HotKV™ 讓網路 I/O 與指令執行都在每個核心上運行,並共用同一份儲存。每個工作執行緒都會讀取、解析並執行自己所負責連線的指令,因此單一執行個體就能用上整台機器,吞吐量也會隨您提供的核心數成長。

  • 300 個核心指令
  • 170+ 個 AI 與企業指令
  • RESP2 / RESP3
  • C++20
  • Linux x86_64 · ARM64
所有核心

真正的平行處理

每個工作執行緒都同時執行自己所負責連線的指令。沒有會被塞滿的單一指令執行緒,因此吞吐量隨核心數成長。

逐鍵

細粒度並行

鍵空間經過劃分,讓對不同鍵的指令得以同時執行,而且很少需要互相等待。

無 GC

可預期的延遲

原生 C++ 引擎,沒有垃圾回收器,也沒有 stop-the-world 暫停。快照由背景執行緒寫入,而不是 fork 出子行程,因此儲存時不會讓記憶體用量加倍。

關鍵路徑

一個指令的一生

每個請求都在接收它的核心上,經過相同的四個階段。

01

解析

讀取請求,包括只收到一部分的讀取。HotKV 支援 RESP2、RESP3 與 inline 指令,並可透過 HELLO 切換協定。

02

分派

在執行開始之前,先找到指令,並檢查它的參數個數、旗標與鍵的位置。

03

執行

針對指令的鍵執行指令。過期的鍵會在被存取時移除,也會由背景清掃移除。

04

回應

以用戶端協商出的協定版本送出回覆。

引擎內建

不只是快取

同一個平行引擎提供 300 個核心指令、八種淘汰策略與下列子系統,授權方案另有超過 170 個 AI 與企業指令。不需要額外掛載模組。

持久化

快照 + AOF

以原子方式寫入的二進位快照,加上可設定 fsync 策略(always、everysec、no)的僅追加檔案,以及 BGREWRITEAOF 壓縮。

腳本

Lua 5.4,沙箱隔離

EVAL 與 EVALSHA 透過 hotkv.call() 在沙箱隔離的 Lua 5.4 執行環境中以原子方式執行腳本,並保留 redis.call() 作為相容別名。具名函式庫透過 FUNCTION 與 FCALL 提供。

向量搜尋

HNSW 索引

VSIM 指令在 HNSW 索引上提供近似最近鄰搜尋,支援餘弦、L2 與內積距離,也包含依標籤篩選的查詢。

機率型

草圖與速率限制

HyperLogLog、Bloom filter、Count-Min Sketch 與 Top-K 高頻項目追蹤,以及伺服器端、可控制突發量的 GCRA 速率限制。用戶端不需要做任何運算。

可觀測性

原生支援 Prometheus

內建的 HTTP 指標端點(在您設定 metrics-port 之前不會啟用)會提供每個指令的呼叫次數與延遲。LATENCY HISTOGRAM 與 INFO latencystats 會回報 p50、p99 與 p99.9,HOTKEYS 則列出存取最頻繁的鍵。

安全性

ACL + TLS

依使用者設定的存取控制,可限定指令、鍵與頻道的範圍,並以雜湊儲存密碼。TLS 在行程內終止,適用於用戶端連線,也適用於叢集與複寫連結。On-Premise 另外提供角色,以及 LDAP 與 OpenID Connect 單一登入。

讓每個核心都派上用場

在 HotKV Cloud 上啟動託管的執行個體,或憑地端部署授權在您自己的資料中心運行 HotKV。同一個引擎、同一套架構,用上每個核心。

300 個核心指令170+ 個 AI 與企業指令RESP2 / RESP3C++20Linux x86_64 · ARM64