TinkerPop: добавление Vertex Graph API v / s Traversal API - PullRequest
0 голосов
/ 07 мая 2018

Фон :

В одном из сообщений SO рекомендуется использовать API обхода, а не API графика для создания мутации. Поэтому я попробовал некоторые тесты и обнаружил, что Graph API кажется более быстрым, я полностью верю совету, но пытаюсь понять, насколько он лучше.

Я попробовал поискать в Google, но не нашел аналогичного поста


Тестирование

Запрос 1 : выполняется за 0,19734525680541992 секунд

g.addV('Test').property('title1', 'abc').property('title2', 'abc')

Запрос 2 : выполняется за 0,13838958740234375 секунд

graph.addVertex(label, "Test", "title1", "abc", "title2", "abc")

Вопрос

  1. Какой из них лучше и почему?
  2. Если оба одинаковы, то почему разница в производительности?

1 Ответ

0 голосов
/ 07 мая 2018

Graph API предназначен для поставщиков графов, а Traversal API (который на самом деле является языком Gremlin) предназначен для пользователей. Вы определенно уменьшаете мобильность своего кода, используя Graph API. «Серверные графы», такие как Amazon Neptune, DSE Graph, CosmosDB и т. Д., Представляют среды, которые не дают вам доступа к Graph API, и поэтому вы никогда не сможете переключиться на них, если захотите. , Вы также начинаете строить свое приложение на основе двух API, что создает неунифицированный подход к вашей разработке (т. Е. В некоторых случаях вы передаете объект Graph для API Graph, а в некоторых случаях GraphTraversalSource для API Traversal) .

Я не знаю, как вы выполняли свои тесты, но меня не так сильно удивляет, что вы видите небольшую разницу в производительности в микропроцессорах. API-интерфейс Traversal требует определенных затрат, но TinkerPop продолжает совершенствоваться в этой области - рассмотрим недавно закрытый TINKERPOP-1950 как пример чего-то недавнего. Я не знаю наверняка, что это поможет для вашего конкретного теста, поскольку тесты - это непростые вещи, но дело в том, что мы не прекратили попытки оптимизировать эту область.

Наконец, если обсуждения в сообществе TinkerPop продолжатся в том же направлении, что и в прошлом году, я вполне ожидаю, что API Graph исчезнет в TinkerPop 4.x. У этого выпуска нет сроков, и он находится только на стадии обсуждения, но я полагаю, что если вы намерены оставить свое приложение в течение многих лет, эта информация может вас заинтересовать.

...