Тест производительности при доступе к базе данных Titan Graph из Python через Bulbs

У меня есть Титан (со встроенной кассандрой, работающей в моей системе).

cd titan-cassandra-0.3.1
bin/titan.sh config/titan-server-rexster.xml config/titan-server-cassandra.properties

У меня работает клиент rexster

cd rexster-console-2.3.0
bin/rexster-console.sh

Я установил лампочки в своей системе следующим образом.

sudo apt-get install python2.7-dev
sudo apt-get install libyaml-dev

sudo pip install  https://github.com/espeed/bulbs/tarball/master

После вышеуказанной настройки я приступаю к созданию своего графика из своего приложения Python.

  from bulbs.titan import Graph
  g = Graph()
  switch = g.vertices.create(name="switch")
  device = g.vertices.create(name="device")
  g.edges.create(switch, "connected to", device)

Мои вопросы заключаются в следующем.

1) Для простого графика я получаю доступ к базе данных Titan Graph из приложения Python, используя Bulbs через сервер REXSTER. Насколько я понимаю, сервер REXSTER предоставляет Titan через интерфейс RESTful, который использует лампочка.

2) Если мне нужны какие-то сложные операции, мне лучше создать несколько хранимых процедур в groovy-скрипте и использовать клиент REXSTER между Titan+Bulbs и сервером REXSTER. (Правильно ли я понимаю?)

3) Поскольку Bulbs взаимодействует с Titan через интерфейс RESTful, какова будет производительность? Я хотел бы иметь представление о - написании перфомансов - запросе производительности

4) Если я буду использовать клиент REXSTER между ними, повлияет ли это на производительность?

Было бы здорово, если бы вы могли указать мне на какую-нибудь документацию, в которой они измеряли производительность с использованием вышеуказанной настройки.


person liv2hak    schedule 20.02.2015    source источник


Ответы (1)


2) Если мне нужны какие-то сложные операции, мне лучше создать несколько хранимых процедур в groovy-скрипте и использовать клиент REXSTER между Titan+Bulbs и сервером REXSTER. (Правильно ли я понимаю?)

Для сложных запросов вы можете выполнять запросы гремлина через Bulbs. Взгляните на эту страницу: http://bulbflow.com/docs/api/bulbs/gremlin/

3) Поскольку Bulbs взаимодействует с Titan через интерфейс RESTful, какова будет производительность? Я хотел бы иметь представление о - написании перфомансов - запросе производительности

4) Если я буду использовать клиент REXSTER между ними, повлияет ли это на производительность?

Насколько я знаю, использование Rexster для записи или запроса данных не приведет к значительному снижению производительности. Потому что, каким бы сложным и тяжелым ни был ваш запрос, он будет выполняться внутри самого Титана. Таким образом, использование Rexster не будет здесь узким местом.

person Kevin    schedule 20.02.2015
comment
вы говорите, что для выполнения запросов гремлина вам не нужно проходить через клиент rexster. - person liv2hak; 20.02.2015