gpt4 book ai didi

java - OrientDb 事务错误

转载 作者:行者123 更新时间:2023-11-30 11:09:31 24 4
gpt4 key购买 nike

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

这是代码(恕我直言,这里太长了):https://github.com/PeterKnego/nosql-benchmark/blob/master/orientdb/src/main/java/net/nosql_bench/OrientDbSimpleTransact.java

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

它在一个实体上引起了很多争论——这就是重点。它有点工作,大部分时间都检测到争用并正确回滚事务。

我正在本地安装的 OrientDB 2.0-rc2 上对此进行测试,客户端通过 remote 协议(protocol)连接到它。

为什么有时会检测到事务冲突,而有时却会通过?有什么想法吗?

最佳答案

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

对于你拥有的文件

ODatabaseDocumentPool pool = new ODatabaseDocumentPool("plocal:/temp/mydb");
OrientGraph g = new OrientGraph(pool.acquire());

对于图数据库就更简单了

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

关于java - OrientDb 事务错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28116787/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com