首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OrientDb事务错误

OrientDb事务错误
EN

Stack Overflow用户
提问于 2015-01-24 02:53:42
回答 1查看 234关注 0票数 2

我正在评估几个NoSQL数据库,包括OrientDB。我是一个OrientDB新手,正在尝试编写一个强调OrientDB事务的多线程测试。

下面是代码(imho太长,无法包含在这里):https://github.com/PeterKnego/nosql-benchmark/blob/master/orientdb/src/main/java/net/nosql_bench/OrientDbSimpleTransact.java

这是一个简单的独立测试,它使用许多并行线程读取实体,增加number字段的值,然后它们保存实体,所有这些都在一个事务中。

它在一个实体上产生了很多争执--这就是全部的要点。它可以正常工作,大多数时候会检测到争用,并正确地回滚事务。

我在一个本地安装的OrientDB 2.0-rc2上进行了测试,客户端通过remote协议连接到它。

你知道为什么有时事务冲突会被检测到,而有时它们会通过吗?

EN

回答 1

Stack Overflow用户

发布于 2015-07-30 23:14:44

在您的情况下,我建议使用连接池。ThinkerPop应用编程接口包括用于文档和图形连接的工厂实现。每次创建新线程时,您可能都应该获取连接池的一个实例。

对于您拥有的文档

代码语言:javascript
复制
ODatabaseDocumentPool pool = new ODatabaseDocumentPool("plocal:/temp/mydb");
OrientGraph g = new OrientGraph(pool.acquire());

对于图形数据库,它甚至更简单

代码语言:javascript
复制
OrientGraphFactory factory = new OrientGraphFactory("plocal:/temp/mydb").setupPool(1, 10);
OrientGraph txGraph = factory.getTx();

我会尝试使用到数据库的池连接,以查看此错误是否仍然存在,并记得在使用完数据库实例后将其关闭。

查看此链接http://orientdb.com/docs/2.0/orientdb.wiki/Graph-Factory.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28116787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档