我正在设置一个Java Enterprise 1.7项目,该项目使用TinkerPop 3和Titan 0.5与Cassandra。
一般的想法是:
我有很多未解决的问题,我想要求最佳做法,建议,示例。
这个基本配置最终将放入github ot bitbucket准备好用于其他项目。
答案 0 :(得分:4)
Titan有点像数据库,但有点像GraphDB驱动程序。我这样说是因为无论你选择什么配置,Titan都会使用另一个DB作为存储后端。目前的选项包括BerkeleyDB,HBase和Cassandra。 This page描述了Cassandra的系统架构选项。
我将remote server mode用于java网络应用。我分别运行Cassandra,我在每个应用程序服务器中使用Titan通过thrift与Cassandra进行通信(Titan也支持astyanax)。我创建了一个TitanGraph实例并将其(通过工厂bean包装器)注入到需要访问图形的任何Service Beans中。
TitanGraph将负责事务级别和数据库级别的缓存。这是可配置的。
TitanGraph将处理并发操作。关键是让您的交易正确。您可以通过以1:1 w /请求存在事务来开始。请记住,读取操作也发生在事务中(这有时会使新手感到困惑)。
我尽可能地使用Blueprints API(TinkerPop),但通常我需要做一些Titan特定的事情 - 通常与搜索有关。我通常使用TinkerPop:
(这只是一个简短的例子列表,但这是我几乎经常做的事情。)
我没有公开项目的例子,但我真的应该这样做。也许我本周末有时间提出一些事情。