記憶體資料快取系統 Dragonfly 1.0 發布

Dragonfly記憶體快取和儲存系統已經發布,它以鍵/值格式操作數據,可以用作加速高負載站點工作的輕量級解決方案,快取對DBMS的慢速查詢和RAM中的中間數據。 Dragonfly 支援 Memcached 和 Redis 協議,讓您可以使用現有的用戶端程式庫,並將使用 Memcached 和 Redis 的專案轉移到 Dragonfly,而無需重新編寫程式碼。

與 Redis 相比,Dragonfly 在 Amazon EC2 c6gn.16xlarge 環境中的典型工作負載方面實現了 25 倍的效能提升(每秒 3.8 萬個請求)。 與AWS c6gn.16xlarge 環境中的Memcached 相比,Dragonfly 每秒執行的寫入請求增加了4.7 倍(3.8 萬對806 萬),每秒執行的讀取請求增加了1.77 倍(3.7 萬對2.1 萬) 。

記憶體資料快取系統 Dragonfly 1.0 發布

在儲存 5 GB 資料的測試中,Dragonfly 所需的記憶體比 Redis 少 30%。 使用「bgsave」命令建立快照時,記憶體消耗會增加,但在高峰時刻仍然比 Redis 少近三倍,而且快照記錄操作本身要快得多(測試中 Dragonfly 中的快照寫入時間為 30 秒)秒,而Redis - 42 秒)。

記憶體資料快取系統 Dragonfly 1.0 發布

高效能的實現得益於多執行緒架構,無需共享資源(無共享),這意味著每個執行緒都被分配一個單獨的處理器及其自己的資料部分,無需互斥鎖和自旋鎖即可工作。 為了確保使用多個鍵時的原子性,使用了輕量級 VLL 鎖定。 為了在記憶體中有效地儲存訊息,使用了 dashtable 結構,它實作了一種分區哈希表。

蜻蜓的一些特徵:

  • 快取模式,空閒記憶體耗儘後自動以新資料取代舊資料。
  • 支援在資料被認為相關的生命週期內綁定到資料。
  • 支援在背景將儲存狀態刷新到磁碟,以便重新啟動後恢復。
  • 存在用於系統管理的 HTTP 控制台(綁定到 TCP 連接埠 6379)和用於傳回指標的 API,與 Prometheus 相容。
  • 支援 185 個 Redis 指令,大致相當於 Redis 5 版本的功能。
  • 支援除 CAS(檢查和設定)之外的所有 Memcached 命令。
  • 支援建立快照的非同步操作。
  • 可預測的記憶體消耗。
  • 內建 Lua 5.4 解譯器。
  • 支援複雜的資料類型,例如雜湊、集合、清單(ZSET、HSET、LIST、SETS 和 STRING)和 JSON 資料。
  • 支援儲存複製以實現容錯和負載平衡。

Dragonfly 程式碼是用 C/C++ 編寫的,並根據 BSL(商業原始碼許可證)分發。 BSL 許可證是由 MySQL 聯合創始人提出的,作為 Open Core 模型的替代方案。 BSL的本質是高級功能的程式碼最初是可以修改的,但在一段時間內只有滿足附加條件才可以免費使用,而這需要購買商業許可證才能規避。 Dragonfly 專案的附加授權條款要求於 2.0 年 15 月 2028 日將程式碼轉移到 Apache XNUMX 授權。 到目前為止,該許可證僅允許使用該程式碼來確保其服務和產品的運行,但禁止用於建立作為 Dragonfly 附加元件的付費雲端服務。

Dragonfly 1.0 版本的值得注意之處在於它支援從主伺服器到輔助伺服器的資料複製。 但是,Dragonfly 可以配置為用作輔助存儲,從基於 Dragonfly 或基於 Redis 的主伺服器接收資料。 複製管理 API 與 Redis 相容,並且基於 ROLE 和 REPLICAOF (SLAVEOF) 命令的使用。

來源: opennet.ru

添加評論