پرش به محتوای اصلی
پرش به محتوای مقاله

پروژه pgrust: عبور از ۴۶,۰۰۰ تست رگرسیون در بازنویسی PostgreSQL

·۱۸ تیر ۱۴۰۵۳ دقیقه مطالعه۲ بازدید
پایگاه داده Postgres بازنویسی‌شده در Rust، اکنون ۱۰۰٪ تست‌های رگرسیون Postgres را با موفقیت پشت سر می‌گذارد.
پایگاه داده Postgres بازنویسی‌شده در Rust، اکنون ۱۰۰٪ تست‌های رگرسیون Postgres را با موفقیت پشت سر می‌گذارد.
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

دستیابی به سازگاری ۱۰۰ درصدی با تست‌های رگرسیون نسخه ۱۸.۳ Postgres توسط بازنویسی Rust؛ این نخستین بار است که یک بازنویسی کامل، دقت رفتاری نسخه رسمی را در مقیاس ۴۶ هزار تست بازتولید کرده است.

تصور کنید بخواهید موتور یک هواپیما را در حال پرواز، بدون اینکه مسافران متوجه شوند، با قطعاتی مدرن‌تر و ایمن‌تر جایگزین کنید. این دقیقاً همان کاری است که توسعه‌دهندگان pgrust با یکی از پیچیده‌ترین نرم‌افزارهای جهان انجام می‌دهند.

طبق اعلام رسمی این پروژه، بیش از ۴۶,۰۰۰ پرس‌وجوی رگرسیونی (Regression Query) اکنون در pgrust خروجی‌های مورد انتظار را تولید می‌کنند. در تاریخ ۹ جولای ۲۰۲۶، این پروژه برای نخستین بار به سازگاری ۱۰۰ درصدی با تست‌های رسمی Postgres نسخه ۱۸.۳ دست یافت.

بازنویسی یک پایگاه‌داده از صفر معمولاً ماموریتی محال است، اما هدف pgrust جایگزینی کامل نیست، بلکه تسهیل تکامل آن است. همان‌طور که در تحلیل‌های پیشین ما درباره امنیت حافظه در زبان‌های برنامه‌نویسی اشاره کردیم، استفاده از زبان رست (Rust) — که مثل یک نگهبان سخت‌گیر، اجازه نمی‌دهد برنامه‌نویس اشتباهاتی کند که باعث کرش کردن سیستم شود — در کنار برنامه‌نویسی کمک‌گرفته از هوش مصنوعی، به توسعه‌دهندگان اجازه می‌دهد تا رفتار اصلی Postgres را به عنوان یک «اوراکل» یا مرجع حقیقت قرار دهند و با خیال راحت تغییرات رادیکال را آزمایش کنند. این رویکرد بازنویسی هسته‌ها با Rust، مشابه تلاشی است که در پروژه Pon برای حذف مفسر پایتون از طریق یک کامپایلر بومی دیده شده است.

به نقل از مخزن گیت‌هاب این پروژه، pgrust با داده‌های دیسکی Postgres 18.3 سازگار است؛ یعنی می‌تواند مستقیماً از روی یک دایرکتوری داده موجود بوت شود. با این حال، این سیستم هنوز برای محیط‌های عملیاتی (Production) آماده نیست و بهینه‌سازی‌های عملکردی لازم را دریافت نکرده است.

وضعیت فنی و محدودیت‌ها

  • سازگاری: هدف‌گذاری روی نسخه ۱۸.۳
  • محدودیت‌ها: افزونه‌های PL/Python، PL/Perl و PL/Tcl عموماً سازگار نیستند
  • دسترسی: از طریق Docker (v0.1) یا دموی WebAssembly در سایت pgrust.com

نقشه راه این پروژه نشان‌دهنده چرخش جسورانه‌ای به سمت مدرن‌سازی داخلی پایگاه‌داده است. قابلیت‌هایی نظیر پردازش‌های داخلی چندرشته‌ای (Multithreaded)، مدیریت داخلی اتصالات (Connection Pooling) و طراحی ذخیره‌سازی «بدون vacuum» برای حذف یکی از نقاط درد قدیمی Postgres در فهرست برنامه‌ها قرار دارند. این تلاش‌ها برای بهینه‌سازی لایه‌های زیرین، در راستای تحولاتی است که پیش‌تر شتاب‌دهنده‌های گرافیکی برای افزایش بازدهی pgvector به ارمغان آورده بودند.

برای برنامه‌نویسان، این یعنی امکان ایجاد شاخه‌های سریع (Forking) و تعریف حفاظ‌هایی (Guardrails) در زمان اجرا که از کرش کردن سرور بر اثر کدهای SQL تولیدشده توسط هوش مصنوعی جلوگیری کند. این تحول، دیتابیس را از یک کدبیس صلب به زبان C به محیطی منعطف و ایمن در Rust منتقل می‌کند.

این دستاورد، این فرض قدیمی را که هسته Postgres بیش از حد یکپارچه (Monolithic) است و نمی‌توان سریع روی آن تغییر ایجاد کرد، به چالش می‌کشد. با جداسازی «رفتار» از «پیاده‌سازی»، pgrust محیطی ایزوله برای آزمایش‌های ذخیره‌سازی فراهم می‌کند که در شاخه اصلی C بسیار پرریسک بود.

کاربران می‌توانند در حال حاضر با اجرای ایمیج Docker نسخه 0.1 یا بیلد کردن سورس روی سیستم‌عامل‌های macOS و Ubuntu، این پروژه را آزمایش کنند.

گام بعدی شما

  • اگر توسعه‌دهنده دیتابیس هستید، دموی WebAssembly را در pgrust.com بررسی کنید تا سرعت بوت شدن را ببینید.
  • ایمیج Docker v0.1 را برای تست سازگاری با کوئری‌های پیچیده خود اجرا کنید.
  • مستندات مربوط به طراحی «بدون vacuum» را دنبال کنید تا متوجه شوید مدیریت حافظه در Rust چگونه جایگزین روش‌های سنتی می‌شود.

اما داستان سخت‌افزاری این تحول حتی شگفت‌انگیزتر است؛ بررسی کنید که چگونه معماری‌های جدید حافظه، استنتاج‌های دیتابیسی را شتاب می‌بخشند.

چرا این موضوع مهم است؟

این پروژه اعتبار زبان Rust را در مدیریت سیستم‌های سطح پایین تثبیت می‌کند و نشان می‌دهد که حتی پیچیده‌ترین هسته‌های نرم‌افزاری دنیا نیز قابل مدرن‌سازی هستند. این تغییر مسیر، ریسک‌های امنیتی مربوط به مدیریت حافظه در زبان C را برای نسل آینده پایگاه‌داده‌ها حذف می‌کند.

تأثیر برای ایران

این ابزار به‌دلیل متن‌باز بودن و عدم نیاز به APIهای ابری، برای توسعه‌دهندگان ایرانی که روی بهینه‌سازی زیرساخت‌های داخلی دیتابیس کار می‌کنند، یک منبع آموزشی و ابزاری رایگان و در دسترس است.

·نگاه ما
تحریریه دات‌هوش

جدا کردن لایه رفتار (Behavior) از پیاده‌سازی در pgrust، در واقع ایجاد یک «تست‌بنز» برای تکامل نرم‌افزارهای میرا (Legacy) است. این رویکرد ثابت می‌کند که برای مدرن‌سازی سیستم‌های عظیم، نیاز به بازنویسی خط‌به‌خط نیست، بلکه باید یک مرجع حقیقت (Oracle) داشت تا تغییرات ساختاری را بدون ترس از شکست سیستم، آزمایش کرد.

منابع

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.