عن المشروع

HydraDB هي قاعدة بيانات رسومية موزعة أصلية لتخزين الكائنات منفذة بلغة Rust. صُممت لتوفير تخزين رسومي متين على تخزين كائنات متوافق مع S3، مع استعلامات OpenCypher متسقة مع اللقطات، واجتياز GraphBLAS، واتصال Bolt المتوافق مع Neo4j، وواجهة برمجة تطبيقات استعلام HTTPS. تتميز البنية بفصل كامل بين التخزين والحوسبة. تخدم عقد البيانات (graph-node) الاستعلامات والطفرات الأساسية، بينما يبني المفهرسون (graph-indexer) فهارس اجتياز غير قابلة للتغيير في الخلفية. يحتفظ كلا الدورين بحالة قابلة للتخلص فقط في الذاكرة وعلى SSD المحلي أو NVMe، مما يتيح التوسع دون نقل الرسم البياني. يقع المصدر الدائم للحقيقة في تخزين كائنات متوافق مع S3، والذي يحتفظ بسجلات الرسم البياني، وسجلات WAL، والبيانات الوصفية، وفهارس الاجتياز غير القابلة للتغيير. تشمل القدرات الرئيسية: - متانة تخزين الكائنات مع تخزين متوافق مع S3 لجميع البيانات الدائمة. - توسع مستقل لعقد البيانات والمفهرسين. - تسليم آمن للكاتب عبر عقود CAS في تخزين الكائنات وحقب كاتب SlateDB. - قراءات متسقة باستخدام لقطات SlateDB المثبتة، مع اجتياز مفهرس مدمج مع طبقة WAL المرئية. - تنفيذ أصلي للرسم البياني يستفيد من فهارس الخصائص، والجوار العكسي، والاجتياز المتناثر، وSuiteSparse GraphBLAS. - عملاء مألوفون: برامج تشغيل Neo4j عبر Bolt 5.x وواجهة برمجة تطبيقات HTTP بنمط JSON/NDJSON. - تشغيل محدود مع المصادقة، والتفويض، والمواعيد النهائية، وحدود النتائج، والضغط الخلفي، والإلغاء، وميزانيات التخزين المؤقت، والمقاييس، والتتبعات. يدعم HydraDB مجموعة فرعية عملية من OpenCypher للقراءات والطفرات، بما في ذلك العلاقات المكتوبة، والمسارات المتغيرة الطول المحدودة، ومحددات الخصائص والتسميات، والترتيب، والترقيم، والتجميع، وOPTIONAL MATCH، وUNION، وكتابات UNWIND المجمعة. كما يوفر إجراءات مسار أصلية محددة النطاق باللقطات (algo.SPpaths، algo.SSpaths، algo.MSpaths) لاستعلامات المسار المحدودة الفعالة. يوفر اتساق القراءة وضعين: السببي (الافتراضي، يستخدم عرض القارئ الدائم الحالي) والقوي (يحدّث قارئ SlateDB من تخزين الكائنات قبل تثبيت اللقطة). تحدد طلبات HTTPS الاتساق في النص؛ ويحدده عملاء Bolt في RUN أو بيانات تعريف المعاملة. تشمل خيارات البدء تشغيل صورة Docker (ghcr.io/hydra-db/hydradb) أو البناء من المصدر باستخدام Rust 1.91+، وسلسلة أدوات C/C++، وlibcypher-parser، وSuiteSparse GraphBLAS. يستخدم المستودع `just` لتشغيل الأوامر. تشمل خطوات التحقق اختبارات الدخان ونصوص الدخان وقت التشغيل. للإنتاج، يتوفر مخطط Helm لنشر Kubernetes، وتكوين عقد الاستعلام، وعمال المفهرسين، والخدمات، وأحجام التخزين المؤقت، وسياسات الشبكة، وميزانيات التعطيل، وTLS، والمصادقة، وتكامل Prometheus الاختياري. تشمل ميزات المراقبة نقاط نهاية صحة HTTP، ونقاط نهاية الجاهزية والمقاييس، وحقول التتبع المنظمة، ودعم OpenTelemetry. لمخططات Prometheus الزمنية وحدات محددة موثقة. المشروع مرخص بموجب AGPL-3.0 ويتضمن معايير الأداء، ووثائق البنية، وحالات الصحة، وأدلة التحقق الرسمي، وتقرير اتساق Jepsen.