نیترو: موتور جستوجوی جدید Brainstore
خلاصهٔ کاملتر
تیم Braintrust تو بلاگ مهندسیش نوشته که شکل کوئری زدن عوض شده. قبلاً یه آدم چندتا سرچ میزد و مینشست نتیجه رو میخوند، ولی حالا ایجنتهایی مثل Codex و Claude Code صدها کوئری رو پشت سر هم میزنن تا دلیل یه خطا رو پیدا کنن. همین حجم و همزمانی، CPU و حافظهٔ مشترک رو تحت فشار میذاره و Nitro دقیقاً برای همین بار کاری ساخته شده.
Brainstore ایندکسهاش رو با Tantivy میسازه ولی داده رو روی آبجکت استوریج نگه میداره، چون هم ارزونه هم دوام بالایی داره. مشکل اینه که Tantivy برای دیسک محلی طراحی شده. برای رسیدن به یه posting list (یعنی لیست سندهایی که یه کلمهٔ خاص توشون اومده) ممکنه چهار خوندن وابسته به هم لازم باشه و هر کدوم یه رفتوبرگشت شبکهست.
Nitro فرمت ذخیرهسازی Tantivy رو دست نمیزنه و فقط مسیر اجرای همگام رو با یه مسیر ناهمگام عوض میکنه. خوندنها رو بین سگمنتهای ایندکس زمانبندی میکنه و کار CPU رو فقط وقتی راه میندازه که دادهش رسیده باشه. به گفتهٔ نویسندهها بخش دوم کار، کم کردن خود درخواستهاست: یه تیکهٔ ثابت از انتهای فایل رو یهجا میخونن و درخواستهای نزدیک به هم رو با هم ادغام میکنن.
یه بهینهسازی دیگه مربوط به عبارتهای نادریه که از کلمههای خیلی رایج ساخته شدن. Nitro اول موقعیت کمتکرارترین کلمهها رو چک میکنه تا بیشتر کاندیداها زودتر حذف بشن، بعد بقیهٔ عبارت رو روی بازموندهها تطبیق میده. یعنی دیگه لازم نیست لیست موقعیت همهٔ کلمههای رایج تا آخر خونده بشه.
برای سنجش، سه روز دادهٔ واقعی با ایندکس ۳۰۰ گیگابایتی روی ماشینی با ۳۲ vCPU و ۱۲۸ گیگ رم تست شد. بیشترین سود مال کوئریهای cold بود، جایی که کش NVMe خالیه و چندتا از اون سرچها ۲ تا ۴ برابر سریعتر شدن. نویسندهها میگن سریعتر کردن کوئریهای warm سختترین بخش بود، چون باید حداقل به پای خود Tantivy میرسیدن.
نکات کلیدی:
- Nitro روی Braintrust SaaS و BYOC خودکار فعاله و برای self-hosted از dataplane 2.15 به بعد
- تو تست روی ترافیک واقعی، جستوجوی full-text بهطور میانگین بیش از ۲ برابر سریعتر شد
- کوئریهای cold تا ۲ تا ۴ برابر بهبود گرفتن
- بنچمارک روی ۳ روز داده با ایندکس ۳۰۰ گیگابایت و ماشین ۳۲ vCPU و ۱۲۸ گیگ رم اجرا شد
- تو مقایسهٔ ۴۰ گیگابایتی با بقیه، Vendor A فقط توی کوئری تجمیعی شمارش span جلو بود




