Jump to content

Болт (сетевой протокол)

Болт
Оригинальный автор(ы) Нео Технология
Стабильная версия
Версия 1
Написано в Различные языки
Операционная система Любой
Платформа Кросс-платформенный
Тип Сетевой протокол
Лицензия Creative Commons 3.0 Attribution-ShareAlike
Веб-сайт протокол болта .org

Протокол Bolt ( Bolt ) — это , ориентированный на соединение сетевой протокол , используемый для клиент-сервер связи в приложениях баз данных . Он работает через TCP- соединение или WebSocket .

Bolt ориентирован на операторы и позволяет клиенту отправлять сообщения, содержащие оператор, состоящий из одной строки и набора типизированных параметров. Сервер отвечает на каждый запрос сообщением о результате и дополнительным потоком записей результатов.

Протокол Bolt был впервые представлен публике в ноябре 2015 года во время интервью, проведенного Дунканом Брауном и опубликованного на DZone . [1] Первый выпуск программного обеспечения, реализующего этот протокол, состоялся в декабре 2015 года в рамках знакового выпуска Neo4j Server. [2] В апреле 2016 года был выпущен Neo4j Server 3.0, который содержал первую серверную реализацию протокола, сопровождаемую набором клиентских драйверов Bolt. Этот релиз привлек внимание нескольких ведущих СМИ. [3] [4] [5]

Управление версиями

[ редактировать ]

Протокол поддерживает явное управление версиями и согласование версий между клиентом и сервером. Существует только одна опубликованная версия протокола: версия 1.

Обзор протокола — версия 1

[ редактировать ]

Обмен сообщениями

[ редактировать ]
Типичное взаимодействие в сетевом протоколе Bolt

Клиенты и серверы Bolt отправляют данные по соединению в виде последовательности сообщений. Каждое сообщение имеет тип (обозначаемый байтом «подписи») и может включать дополнительные данные. Клиент управляет взаимодействием, и каждое сообщение, отправленное клиентом, вызывает отправку сервером одного или нескольких ответных сообщений.

Сообщения клиента:

Тип Подпись
ГОРЯЧИЙ 0x01 [6]
БЕГАТЬ 0x10 [7]
DISCARD_ALL 0x2F [8]
PULL_ALL 0x3F [9]
ACK_FAILURE 0x0E [10]
ПЕРЕЗАГРУЗИТЬ 0x0F [11]

Сообщения сервера:

Тип Подпись
УСПЕХ 0x70 [12]
ОТКАЗ 0x7F [13]
ИГНОРИРУЕТСЯ 0x7E [14]
ЗАПИСЫВАТЬ 0x71 [15]

Кодирование передачи сообщений

[ редактировать ]

Каждое сообщение кодируется в последовательность байтов. Эти байты передаются с использованием двоичного фрагментированного кодирования , где каждому фрагменту предшествует беззнаковое 16-битное целое число с обратным порядком байтов , обозначающее количество байтов, которые следуют сразу за ним. Длина 0 используется для обозначения конца сообщения.

Обработка сбоев

[ редактировать ]

Клиент может отправить несколько сообщений на сервер, не дожидаясь предварительного ответа. [16] Сервер последовательно обрабатывает каждое сообщение. Однако, поскольку между сообщениями, отправленными клиентом, могут существовать логические зависимости, сервер не будет оценивать запросы, которые он получает после отправки FAILURE в ответ на предыдущее сообщение. Вместо этого он будет отправлять сообщение IGNORED в ответ на каждое сообщение клиента, пока клиент не подтвердит сбой, отправив сообщение ACK_FAILURE.

Это похоже на обработку сбоев и восстановление в проводном протоколе PostgreSQL .

Кодирование данных

[ редактировать ]

Bolt поддерживает кодирование ряда различных типов данных.

Тип Описание
Нулевой [17] Обозначает отсутствие значения.
логическое значение [18] Логическое значение true или false.
Целое число [19] 64-битное целое число со знаком.
Плавать [20] 64-битное число с плавающей запятой.
Нить [21] Строка в кодировке UTF-8.
Список [22] Упорядоченный сбор значений.
Карта [23] Неупорядоченная коллекция значений с ключами.
Узел [24] Узел в диаграмме свойств с дополнительными свойствами и метками.
Отношение [25] Направленное типизированное соединение между двумя узлами в графе свойств . Каждое отношение может иметь свойства и всегда имеет индивидуальность.
Путь [26] Запись направленного обхода графа свойств , состоящего из последовательности из нуля или более сегментов.
  1. ^ «Представляем Bolt, будущий двоичный протокол Neo4j – Часть 1 – База данных DZone» . dzone.com . Проверено 2 июня 2017 г.
  2. ^ «Рвно вперед: выпуск Neo4j 3.0 Milestone 1 уже здесь — база данных графов Neo4j» . neo4j.com . 4 декабря 2015 года . Проверено 2 июня 2017 г.
  3. ^ Мартин, Александр Дж. (26 апреля 2016 г.). «Neo4j использует двоичный протокол для улучшения своей игры с графовыми базами данных» . theregister.co.uk . Проверено 2 июня 2017 г.
  4. ^ «Neo4j 3.0 выпущен с двоичным протоколом связи и стандартизированными драйверами» . ИнфоQ . Проверено 2 июня 2017 г.
  5. ^ «Neo Technology выпускает Neo4j 3.0» . tomsitpro.com . 26 апреля 2016. Архивировано из оригинала 7 мая 2017 года . Проверено 2 июня 2017 г.
  6. ^ «Протокол Болта, Версия 1» . www.boltprotocol.org . Проверено 2 июня 2017 г.
  7. ^ «Протокол Болта, Версия 1» . www.boltprotocol.org . Проверено 2 июня 2017 г.
  8. ^ «Протокол Болта, Версия 1» . www.boltprotocol.org . Проверено 2 июня 2017 г.
  9. ^ «Протокол Болта, Версия 1» . www.boltprotocol.org . Проверено 2 июня 2017 г.
  10. ^ «Протокол Болта, Версия 1» . www.boltprotocol.org . Проверено 2 июня 2017 г.
  11. ^ «Протокол Болта, Версия 1» . www.boltprotocol.org . Проверено 2 июня 2017 г.
  12. ^ «Протокол Болта, Версия 1» . www.boltprotocol.org . Проверено 2 июня 2017 г.
  13. ^ «Протокол Болта, Версия 1» . www.boltprotocol.org . Проверено 2 июня 2017 г.
  14. ^ «Протокол Болта, Версия 1» . www.boltprotocol.org . Проверено 2 июня 2017 г.
  15. ^ «Протокол Болта, Версия 1» . www.boltprotocol.org . Проверено 2 июня 2017 г.
  16. ^ «Протокол Болта, Версия 1» . www.boltprotocol.org . Проверено 2 июня 2017 г.
  17. ^ «Протокол Болта, Версия 1» . www.boltprotocol.org . Проверено 2 июня 2017 г.
  18. ^ «Протокол Болта, Версия 1» . www.boltprotocol.org . Проверено 2 июня 2017 г.
  19. ^ «Протокол Болта, Версия 1» . www.boltprotocol.org . Проверено 2 июня 2017 г.
  20. ^ «Протокол Болта, Версия 1» . www.boltprotocol.org . Проверено 2 июня 2017 г.
  21. ^ «Протокол Болта, Версия 1» . www.boltprotocol.org . Проверено 2 июня 2017 г.
  22. ^ «Протокол Болта, Версия 1» . www.boltprotocol.org . Проверено 2 июня 2017 г.
  23. ^ «Протокол Болта, Версия 1» . www.boltprotocol.org . Проверено 2 июня 2017 г.
  24. ^ «Протокол Болта, Версия 1» . www.boltprotocol.org . Проверено 2 июня 2017 г.
  25. ^ «Протокол Болта, Версия 1» . www.boltprotocol.org . Проверено 2 июня 2017 г.
  26. ^ «Протокол Болта, Версия 1» . www.boltprotocol.org . Проверено 2 июня 2017 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 75907d7b9767b84f165af7bf663c8626__1676286540
URL1:https://arc.ask3.ru/arc/aa/75/26/75907d7b9767b84f165af7bf663c8626.html
Заголовок, (Title) документа по адресу, URL1:
Bolt (network protocol) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)