AI 驅動的混合搜尋目前處於封閉測試階段。 加入候補名單 以取得搶先體驗!

前往首頁Meilisearch 的標誌
返回文章
2019年3月25日

MeiliES - Rust 中的事件溯源

Thomas Payet
Thomas Payet聯合創辦人兼營運長 @ Meilisearch@totolapaille
MeiliES - Event sourcing in Rust

今天,我們發布了 MeiliES,這是我們完全用 Rust 實現的事件儲存庫。

事件溯源是一種方式,如 Martin Fowler 所描述的 「將應用程式狀態的所有變更擷取為一系列事件」。伺服器的首要目的是將事件流發布到訂閱的客戶端。客戶端還可以指定要從哪個事件號碼讀取,因此可以僅使用新事件來重建狀態,從而從崩潰中恢復。

由於 訊息佇列不適用於事件溯源,因此可用的事件溯源應用程式很少:主要選項是 EventStore,這是一個用 C# 製作的事件溯源資料庫。
因此,我們開始使用 EventStore 來滿足我們的事件溯源需求,並遇到了一些麻煩

  • 可攜性:EventStore 是用 C# 構建的,並使用 mono,使其在 UNIX 上安裝和執行相當困難
  • 支援:我們詢問了有關 EventStore 商業支援的資訊,但從未收到任何回覆
  • 穩定性:Rust 客戶端尚未準備好用於生產環境,儘管進行了一些合併請求,但仍有很多工作要做,而許多可用的功能對我們沒有用處。

因此,我們決定實作我們自己的事件儲存庫來解決這些問題。

MeiliES 是一個事件溯源資料庫,使用 RESP (REdis 序列化協定) 進行通訊。我們使用 Redis 協定來簡化客戶端實作。透過使用完整的 Rust 實作(我們使用 Sled 作為內部儲存)解決了可攜性問題。

安裝就像執行 cargo build --release 一樣簡單。如果您不想複製儲存庫,您可以從 Azure 管道下載二進位檔案或使用 Docker 執行 docker run -p 6480:6480 --rm getmeili/meilies:latest

如果您對 MeiliES 有任何疑問,可以在 Twitter 上發推文 @meilisearch 或在 GitHub 上提出問題 🎉

How Meilisearch updates a database with millions of vector embeddings in under a minute

Meilisearch 如何在一分鐘內更新具有數百萬個向量嵌入的資料庫

我們如何在向量儲存庫中實作增量索引。

Tamo null
Tamo null2024年4月4日
Meilisearch expands search power with Arroy's Filtered Disk ANN

Meilisearch 使用 Arroy 的篩選磁碟 ANN 擴展搜尋功能

我們如何使用 Arroy 的篩選磁碟 ANN 實作 Meilisearch 的篩選功能

Clément Renault
Clément Renault2023年12月27日
Multithreading and Memory-Mapping: Refining ANN performance with Arroy

多執行緒和記憶體映射:使用 Arroy 改進 ANN 效能

克服使用 Rust 增強 ANN 效能的挑戰。

Clément Renault
Clément Renault2023年12月21日