عن المشروع
يتم تقديم Neon كمنصة قاعدة بيانات Postgres خالية من الخوادم ومفتوحة المصدر. تفصل بين التخزين والحوسبة وتستبدل طبقة تخزين PostgreSQL عن طريق إعادة توزيع البيانات عبر مجموعة من العقد.
يقترح دليل البدء السريع في README استخدام طبقة Neon المجانية (Neon Free Tier) لإنشاء نسخة خالية من الخوادم من Postgres والاتصال بها باستخدام عميل Postgres مثل psql أو dbeaver، أو باستخدام محرر SQL عبر الإنترنت. كما يذكر أن المشروع يمكن تجميعه وتشغيله محليًا.
نظرة عامة على الهندسة: تتكون تثبيتات Neon من عقد حوسبة ومحرك تخزين Neon. عقد الحوسبة هي عقد PostgreSQL لا تحمل حالة وتستند إلى محرك التخزين. يحتوي محرك التخزين على مكونين رئيسيين: Pageserver، وهو خلفية تخزين قابلة للتوسع لعقد الحوسبة؛ وSafekeepers، خدمة WAL مكررة تستقبل WAL من عقد الحوسبة وتخزنها بشكل دائم حتى يقوم Pageserver بمعالجتها وتحميلها إلى التخزين السحابي. الوثائق للمطورين موجودة في docs/SUMMARY.md.
التطوير المحلي: يوفر README تعليمات تثبيت الاعتمادات لتوزيعات Linux مثل Ubuntu أو Debian، Fedora، وArch، وكذلك لنظام macOS، بما في ذلك protobuf-compiler 3.15+، Rust، عميل PostgreSQL، وأدوات البناء. عملية البناء تنشئ neon وpostgres المعدل، ويستخدم المستودع ملف rust-toolchain. بعد الاستنساخ المتكرر والبناء باستخدام make، يقوم المستخدمون بتنفيذ cargo neon init، cargo neon start، cargo neon tenant create --set-default، cargo neon endpoint create main، وcargo neon endpoint start main. تُظهر الأمثلة تشغيل psql ضد نقطة النهاية المحلية وإنشاء فرع باستخدام cargo neon timeline branch --branch-name migration_check، ثم إنشاء وتشغيل نقطة نهاية PostgreSQL على ذلك الفرع. يوضح README أن الفرع يبدأ ببيانات من main بينما تظل التعديلات اللاحقة معزولة.
الاختبار والتنظيف: تستخدم اختبارات الوحدة في Rust cargo-nextest؛ وتتطلب اختبارات التكامل الاعتمادات وتُنفّذ عبر ./scripts/pytest، مع خيارات لاختيار نسخة PostgreSQL ونوع البناء. يمكن توليد مخططات اللهب (flamegraphs) باستخدام flamegraph-rs أو flamegraph.pl. عملية التنظيف تستخدم make clean وmake distclean، وإزالة دليل .neon تحذف قاعدة البيانات المحلية. تشمل الوثائق docs/sourcetree.md وrustdoc. يربط README إلى مشاركات مدونة، فيديو، مسرد Neon، مسرد PostgreSQL، CONTRIBUTING.md، ويطلب من المساهمين قراءة وثائق نمط الشيفرة وتخطيط شجرة المصدر.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.