Издадено е издание на отворената СУБД Nebula Graph 3.2, предназначена за ефективно съхранение на големи набори свързани помежду си данни, които образуват граф, който може да наброява милиарди връзки и трилиони свързвания. Проектът е написан на езика C++ и се разпространява под лицензия Apache 2.0. Клиентските библиотеки за достъп до СУБД са подготвени за езиците Go, Python и Java.
В СУБД се прилага разпределена архитектура без разделяне на ресурси (shared-nothing), предполагането минава през стартиране на независими и самодостатъчни процеси за обработка на заявки graphd и процеси за съхранение storaged. Оркестрацията на прехвърляне на данни и предоставянето на мета информация за графа се извършва от мета-сервиса. За осигуряване на последователността на данните се използва протокол на база алгоритъма RAFT.
Основни характеристики на Nebula Graph:
- Осигуряване на сигурност чрез предоставяне на достъп само на автентифицирани потребители, чиито права се задават чрез система за управление на достъпа на база роли (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
