通过 Bulbs 从 python 访问 Titan Graph DB 时的性能基准

Performance benchmark while accessing Titan Graph DB from python via Bulbs

我有 Titan(在我的系统上嵌入了 cassandra 运行)。

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) 对于一个简单的图表,我通过 REXSTER 服务器使用 Bulbs 从 python 应用程序访问 Titan Graph DB。据我了解,REXSTER 服务器通过灯泡使用的 RESTful 接口公开 Titan。

2) 如果我需要一些复杂的操作,我最好在 groovy 脚本中创建一些存储过程并在 Titan+Bulbs 和 REXSTER 服务器之间使用 REXSTER 客户端。(我的理解是否正确?)

3) Bulbs 通过 RESTful 接口与 Titan 通信,性能如何?我想知道 - 写表演 - 查询性能

4) 如果我在两者之间使用 REXSTER 客户端,性能会受到影响吗?

如果您能向我指出一些文档,他们在其中使用上述设置测量了性能,那就太好了。

2) If I need some complicated operations,I would be better off creating some stored procedures in groovy script and use REXSTER client inbetween Titan+Bulbs and REXSTER server.(Is my understanding correct?)

对于复杂的查询,可以通过Bulbs执行gremlin查询。看看这个页面:http://bulbflow.com/docs/api/bulbs/gremlin/

3) As Bulbs communicates with Titan via a RESTful interface,what would be the performance like? I would like to have an idea about - write performances - querying performance

4) If I use REXSTER client in between would the performance be affected?

据我所知,使用 Rexster 写入或查询数据不会有任何明显的性能下降。因为,无论您的查询多么复杂和繁重,它都将在 Titan 内部执行。因此,使用 Rexster 不会成为瓶颈。