【问题标题】:Rails 3 and graph databasesRails 3 和图形数据库
【发布时间】:2011-08-19 06:31:17
【问题描述】:

在 Postgresql 上运行的 Rails 3 应用程序需要切换到图形数据库才能成长。它们有很多,它们都提供不同类型的 API,主要是 REST。

NeoTechnologies 的首席执行官 talksEmil Eifrem 对 Neo4j 可以完成的工作非常鼓舞。我必须承认,我玩过它,这个东西绝对是我们需要的,但是有几个障碍。

  1. REST API 不是事务性的。
  2. Rails 3 应用在 ruby​​ 1.9.2 上运行,而不是在 jRuby 1.5.3 或 1.6 上运行以实现原生 API。

一些数据库也由 Java 驱动并提供 REST API,因此使用它们不会改变任何事情。由于许可证或成本或背后缺乏团队,我们无法选择其他人。

我认为我遗漏了一些东西,因此如果您能提供任何提示、见解或建议,我们将不胜感激,什么是我们的选择,什么对我们有好处。谢谢。

【问题讨论】:

  • 当然。使用 REST API,您不能一次回滚一组操作。例如,您想删除 3 个节点,您执行第一个和第二个请求,但第三个请求以某种方式失败,您无法使用“回滚”一词将存储恢复到开始之前的状态。但这可以通过原生 API 来实现。
  • 这是个问题。你有没有向 neo4j 家伙报告这个错误?我相信他们会想要纠正这个问题。
  • 您好,是的 - REST 和事务有点难以合并。现在有一个关于如何尝试的讨论,请参阅lists.neo4j.org/pipermail/user/2011-May/thread.html#8363
  • @SrdjanPejic 这不是错误,这几乎是不可能的。任何实施都将是一种解决方法,而不是解决方案。因为没有连接,REST API 只是发送命令。
  • @Comptrol JRuby1.6 + Rails 3 + Neo4jrb(gem,提供原生API)

标签: ruby-on-rails ruby-on-rails-3 neo4j graph-databases


【解决方案1】:

您可以在 jruby 1.6 上使用 Rails 3 运行 Neo4jrb,所以这应该不是问题。

要在此基础上运行事务 (REST) API,您可以轻松编写自己的 Neo4j-Server 插件/extension,该插件也可以在内部使用 Neo4jrb,但会公开适合您的域的 API,并且不那么冗长/健谈细粒度的 Neo4j-Server REST API。这也应该更容易为您的客户使用,因为它会根据您的术语、词汇和用例进行交流。

我们目前正致力于创建一个通用 (j)ruby 服务器扩展,该扩展能够使用发布的代码并将其作为新的 REST 端点提供。

【讨论】:

  • 谢谢你,迈克尔。使用发布的代码听起来很让人放心。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-14
相关资源
最近更新 更多