修补LMDB:我们如何使Meilisearch的向量存储速度提升3倍

修补LMDB:我们如何使Meilisearch的向量存储速度提升3倍

💡 原文英文,约3300词,阅读约需12分钟。
📝

内容提要

Meilisearch对LMDB进行了补丁,支持未提交写入的嵌套读取事务,提升了向量存储速度和索引时间。通过优化数据结构和减少全扫描,处理速度提高至每秒20个嵌入,显著提升搜索性能。新特性无需API更改,自2025年12月起在生产中使用。

🎯

关键要点

  • Meilisearch对LMDB进行了补丁,支持未提交写入的嵌套读取事务,消除了全数据库扫描。
  • 通过优化数据结构和减少全扫描,Meilisearch的向量存储速度提高了3倍,索引时间显著缩短。
  • 新特性无需API更改,自2025年12月起在生产中使用。
  • 在处理约19M个嵌入时,插入7000个嵌入的时间从1140秒减少到668秒,处理速度提升至每秒20个嵌入。
  • 新实现通过懒加载必要页面,避免了不必要的缓存污染,提高了搜索性能。

延伸问答

Meilisearch对LMDB进行了什么样的补丁?

Meilisearch对LMDB进行了补丁,支持未提交写入的嵌套读取事务,消除了全数据库扫描。

这个补丁如何提升了向量存储的速度?

通过优化数据结构和减少全扫描,Meilisearch的向量存储速度提高了3倍,索引时间显著缩短。

新特性何时在生产中使用?

新特性自2025年12月起在生产中使用。

在处理嵌入时,插入7000个嵌入的时间变化如何?

插入7000个嵌入的时间从1140秒减少到668秒,处理速度提升至每秒20个嵌入。

新实现如何避免缓存污染?

新实现通过懒加载必要页面,避免了不必要的缓存污染,提高了搜索性能。

LMDB的特性对Meilisearch的影响是什么?

LMDB的MVCC和ACID特性允许同时进行读写事务,提高了并发性能,但不支持并发写入。

➡️

继续阅读