منصوبے کے بارے میں
HydraDB ایک آبجیکٹ اسٹور-نیٹو تقسیم شدہ گراف ڈیٹا بیس ہے جو Rust میں نافذ کیا گیا ہے۔ یہ S3-مطابق آبجیکٹ اسٹوریج پر پائیدار گراف اسٹوریج فراہم کرنے کے لیے ڈیزائن کیا گیا ہے، جس میں سنیپ شاٹ-مستقل OpenCypher کوئریز، GraphBLAS ٹراورسل، Neo4j-مطابق Bolt کنیکٹیویٹی اور HTTPS کوئری API شامل ہیں۔
اس کی آرکیٹیکچر میں اسٹوریج اور کمپیوٹ مکمل طور پر الگ کیے گئے ہیں۔ ڈیٹا نوڈس (graph-node) کوئریز اور کینونیکل میوٹیشنز پیش کرتے ہیں، جبکہ انڈیکسرز (graph-indexer) پس منظر میں ناقابلِ تبدیل ٹراورسل انڈیکسز بناتے ہیں۔ دونوں کردار میموری اور مقامی SSD یا NVMe میں صرف ضائع ہونے والی حالت رکھتے ہیں، جس سے گراف کو منتقل کیے بغیر اسکیلنگ ممکن ہوتی ہے۔ پائیدار سورس آف ٹروتھ S3-مطابق آبجیکٹ اسٹوریج میں موجود ہوتا ہے، جو گراف ریکارڈز، WALs، مینی فیسٹس اور ناقابلِ تبدیل ٹراورسل انڈیکسز رکھتا ہے۔
اہم صلاحیتیں شامل ہیں:
- تمام مستقل ڈیٹا کے لیے S3-مطابق اسٹوریج کے ساتھ آبجیکٹ اسٹور پائیداری۔
- ڈیٹا نوڈس اور انڈیکسرز کی آزاد اسکیلنگ۔
- آبجیکٹ اسٹور CAS لیزز اور SlateDB رائٹر ایپوکس کے ذریعے محفوظ رائٹر ہینڈ آف۔
- پن شدہ SlateDB سنیپ شاٹس کا استعمال کرتے ہوئے مستقل ریڈز، جہاں انڈیکس شدہ ٹراورسل کو مرئی WAL اوورلے کے ساتھ ملایا جاتا ہے۔
- پراپرٹی انڈیکسز، ریورس ایڈجیسنسی، اسپارس ٹراورسل اور SuiteSparse GraphBLAS سے فائدہ اٹھانے والا گراف-نیٹو ایگزیکیوشن۔
- مانوس کلائنٹس: Bolt 5.x پر Neo4j ڈرائیورز اور ٹائپڈ JSON/NDJSON HTTP API۔
- آتھنٹیکیشن، آتھرائزیشن، ڈیڈ لائنز، رزلٹ لمٹس، بیک پریشر، کینسلیشن، کیش بجٹس، میٹرکس اور ٹریسز کے ساتھ محدود آپریشن۔
HydraDB ریڈز اور میوٹیشنز کے لیے OpenCypher کا ایک عملی ذیلی مجموعہ سپورٹ کرتا ہے، جس میں ٹائپڈ ریلیشن شپس، محدود متغیر لمبائی والے پاتھز، پراپرٹی اور لیبل پریڈیکیٹس، آرڈرنگ، پیجینیشن، ایگریگیشن، OPTIONAL MATCH، UNION اور بیچڈ UNWIND رائٹس شامل ہیں۔ یہ مؤثر محدود پاتھ کوئریز کے لیے نیٹو سنیپ شاٹ-اسکوپڈ پاتھ پروسیجرز (algo.SPpaths، algo.SSpaths، algo.MSpaths) بھی فراہم کرتا ہے۔
ریڈ کنسسٹنسی دو موڈز پیش کرتی ہے: causal (ڈیفالٹ، موجودہ پائیدار ریڈر ویو استعمال کرتا ہے) اور strong (سنیپ شاٹ پن کرنے سے پہلے آبجیکٹ اسٹوریج سے SlateDB ریڈر ریفریش کرتا ہے)۔ HTTPS ریکوئسٹس باڈی میں کنسسٹنسی سیٹ کرتی ہیں؛ Bolt کلائنٹس اسے RUN یا ٹرانزیکشن میٹاڈیٹا میں سیٹ کرتے ہیں۔
شروع کرنے کے اختیارات میں Docker امیج (ghcr.io/hydra-db/hydradb) چلانا یا Rust 1.91+، C/C++ ٹول چین، libcypher-parser اور SuiteSparse GraphBLAS کے ساتھ سورس سے بلڈ کرنا شامل ہے۔ ریپوزٹری کمانڈ چلانے کے لیے `just` استعمال کرتی ہے۔ تصدیقی مراحل میں اسموک ٹیسٹس اور رن ٹائم اسموک اسکرپٹس شامل ہیں۔
پروڈکشن کے لیے Kubernetes ڈیپلائمنٹ کے لیے ایک Helm چارٹ دستیاب ہے، جو کوئری نوڈس، انڈیکسر ورکرز، سروسز، کیش والیومز، نیٹ ورک پالیسیز، ڈس رپشن بجٹس، TLS، آتھنٹیکیشن اور اختیاری Prometheus انٹیگریشن کنفیگر کرتا ہے۔
آبزرویبیلٹی فیچرز میں HTTP ہیلتھ اینڈ پوائنٹس، ریڈینس اور میٹرکس اینڈ پوائنٹس، اسٹرکچرڈ ٹریسنگ فیلڈز اور OpenTelemetry سپورٹ شامل ہیں۔ Prometheus ڈیوریشن ہسٹوگرامز کی مخصوص اکائیاں دستاویزی ہیں۔
یہ پروجیکٹ AGPL-3.0 کے تحت لائسنس یافتہ ہے اور اس میں بینچ مارکس، آرکیٹیکچر دستاویزات، درستگی کیس بکس، فارمل ویریفیکیشن شواہد اور ایک Jepsen کنسسٹنسی رپورٹ شامل ہیں۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.