Опубликован выпуск открытой СУБД Nebula Graph 3.2, предназначенной для эффективного хранения крупных наборов связанных между собой данных, образующих граф, который может насчитывать миллиарды узлов и триллионы связей. Проект написан на языке С++ и распространяется под лицензией Apache 2.0. Клиентские библиотеки для обращения к СУБД подготовлены для языков Go, Python и Java.
В СУБД применяется распределённая архитектура без разделения ресурсов (shared-nothing), подразумевающая запуск независимых и самодостаточных процессов обработки запросов graphd и процессов хранения storaged. Оркестровкой перемещения данных и предоставлением мета-информации о графе занимается мета-сервис. Для обеспечения согласованности данных используется протокол на базе алгоритма RAFT.
คุณสมบัติหลักของกราฟเนบิวลา:
- Обеспечение безопасности через предоставление доступа только аутентифицированным пользователям, полномочия которых задаются через систему управления доступа на основе ролей (RBAC).
- Возможность подключения разных типов движков хранения. Поддержка расширения языка формирования запросов новыми алгоритмами.
- Обеспечение минимальных задержек при чтении или записи данных и поддержание высокой пропускной способности. При тестировании в кластере из одного узла graphd и трёх узлов storaged БД размером 632 GB, включающей граф из 1.2 миллиарда вершин и 8.4 миллиарда рёбер задержки были на уровне нескольких миллисекунд, а пропускная способность составила до 140 тысяч запросов в секунду.
- ความสามารถในการปรับขนาดเชิงเส้น
- ภาษาคิวรีที่คล้ายกับ SQL ที่มีประสิทธิภาพและเข้าใจง่าย การดำเนินการที่รองรับ ได้แก่ GO (การเคลื่อนที่แบบสองทิศทางของจุดยอดกราฟ), GROUP BY, ORDER BY, LIMIT, UNION, UNION DISTINCT, INTERSECT, MINUS, PIPE (โดยใช้ผลลัพธ์จากการสืบค้นก่อนหน้า) รองรับดัชนีและตัวแปรที่ผู้ใช้กำหนด
- รับประกันความพร้อมใช้งานสูงและความยืดหยุ่นต่อความล้มเหลว
- รองรับการสร้างสแน็ปช็อตด้วยส่วนของสถานะฐานข้อมูลเพื่อทำให้การสร้างสำเนาสำรองง่ายขึ้น
- พร้อมสำหรับใช้ในอุตสาหกรรม (ใช้ในโครงสร้างพื้นฐานของ JD, Meituan และ Xiaohongshu แล้ว)
- ความสามารถในการเปลี่ยนรูปแบบการจัดเก็บข้อมูลและอัปเดตโดยไม่หยุดหรือส่งผลกระทบต่อการดำเนินงานที่กำลังดำเนินอยู่
- รองรับ TTL เพื่อจำกัดอายุการใช้งานข้อมูล
- คำสั่งสำหรับจัดการการตั้งค่าและโฮสต์การจัดเก็บข้อมูล
- เครื่องมือสำหรับจัดการงานและกำหนดเวลาการเปิดตัวงาน (ของงานที่สนับสนุนในปัจจุบันคือ COMPACT และ FLUSH)
- การดำเนินการหาเส้นทางที่สมบูรณ์และเส้นทางที่สั้นที่สุดระหว่างจุดยอดที่กำหนด
- อินเทอร์เฟซ OLAP สำหรับการผสานรวมกับแพลตฟอร์มการวิเคราะห์ของบุคคลที่สาม
- ยูทิลิตี้สำหรับการนำเข้าข้อมูลจากไฟล์ CSV หรือจาก Spark
- Экспорт метрик для мониторинга при помощи Prometheus и Grafana.
- Web-интерфейс Nebula Graph Studio для визуализации операций с графом, навигации по графу, проектирования схемы хранения и загрузки данных.
ในรุ่นใหม่:
- Добавлена поддержка функции extract() для извлечения подстроки, соответствующей заданному выражению.
- Оптимизированы настройки в файле конфигурации.
- Добавлены правила оптимизации для удалений бесполезного оператора AppendVertices и отключения применения фильтров рёбер и вершин.
- Сокращён объём данных, копируемых для операции JOIN, а также для операторов Traverse и AppendVertices.
- Оптимизирована производительность SHORTEST PATH и SUBGRAPH
- Улучшено распределение памяти (задействован Arena Allocator).
ที่มา: opennet.ru