Выпуск Π³Ρ€Π°Ρ„ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π‘Π£Π‘Π” Nebula Graph 3.2

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ выпуск ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ Π‘Π£Π‘Π” Nebula Graph 3.2, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠΉ для эффСктивного хранСния ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… Π½Π°Π±ΠΎΡ€ΠΎΠ² связанных ΠΌΠ΅ΠΆΠ΄Ρƒ собой Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰ΠΈΡ… Π³Ρ€Π°Ρ„, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄Ρ‹ ΡƒΠ·Π»ΠΎΠ² ΠΈ Ρ‚Ρ€ΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ связСй. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ написан Π½Π° языкС Π‘++ ΠΈ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ 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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ