java ObjectDB 生产准备好了吗?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/5291950/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
is ObjectDB production ready?
提问by Attila Nyers
In this benchmark ObjectDB is far the fastest DB: http://www.jpab.org/All/All/All.html
在这个基准中,ObjectDB 是最快的 DB:http: //www.jpab.org/All/All/All.html
But I cannot see any other benchmark results from ObjectDB. Is anyone using ObjectDB? Is it production ready? What are the experiences?
但是我看不到 ObjectDB 的任何其他基准测试结果。有人在使用 ObjectDB 吗?生产准备好了吗?有哪些经验?
回答by Andrew McVeigh
I've used it for a number of projects and products, both professionally and personally. I've used it for a little over 5 years now. These are my experiences of it:
我已经将它用于许多项目和产品,无论是专业的还是个人的。我已经使用它超过 5 年了。这些是我的经历:
Disclaimer: I own a server license and an OEM license, and over the years have got to know the creator(s). I have no other commercial relationship with the ObjectDB company - in other words, I gain nothing commercially if they sell more copies. I just like the product.
免责声明:我拥有服务器许可证和 OEM 许可证,并且多年来已经了解创建者。我与 ObjectDB 公司没有其他商业关系 - 换句话说,如果他们销售更多副本,我将不会获得任何商业利益。我只是喜欢这个产品。
My usages:
我的用法:
personally: I used it as part of a commercial product that came out of my phd, to persist UML2/EMF models. these are complex things with many, many classes and ObjectDB was the only product i was able to find that could handle the complex linking with adequate performance. it has been a stellar performer in this environment.
work related: I work in an investment bank and we used ObjectDB to persist the workflow states and handle persistence in a large grid (>2000 nodes) environment. It worked very well in this environment as well.
个人:我将它用作我的博士生的商业产品的一部分,以保留 UML2/EMF 模型。这些都是复杂的东西,有很多很多类,ObjectDB 是我能找到的唯一一款能够以足够的性能处理复杂链接的产品。它在这种环境中表现出色。
工作相关:我在一家投资银行工作,我们使用 ObjectDB 来持久化工作流状态并处理大型网格(> 2000 个节点)环境中的持久性。它在这种环境中也能很好地工作。
I was also a consultant to Gentleware at one point back in 2007 or so, and we evaluated ObjectDB against db4o, hibernate etc. It outperformed any competition by close to an order of magnitude. This was my first commercial experience with it.
早在 2007 年左右的某个时候,我还是 Gentleware 的顾问,我们针对 db4o、hibernate 等对 ObjectDB 进行了评估。它的表现比任何竞争对手都高出接近一个数量级。这是我第一次使用它进行商业体验。
So, the bottom line is that I have found ObjectDB to be extremely fast, and rock solid. We tested it up to 10GB alone on the UML2 models and there were no problems there. I've never had a database die on me or get corrupted in all my time of using it. Furthermore, its footprint is pretty small. In short, it's a bit of an unsung hero in the space.
所以,最重要的是我发现 ObjectDB 非常快,而且坚如磐石。我们在 UML2 模型上单独测试了高达 10GB 的容量,并且没有出现任何问题。在我使用它的所有时间里,我从未遇到过数据库死机或损坏的情况。此外,它的足迹非常小。简而言之,它是该领域的一位无名英雄。
My experiences concur with the jpab benchmarks - they make uncomfortable reading for the owners of other products, but... perhaps i'm not completely unbiased in this though - i've had much contact with the creator(s) of ObjectDB over the years and pushed them to release the benchmarks. in particular, i felt they should make the graph linear rather than logarithmic - it shows the performance of ObjectDB is vastly better in most cases.
我的经验与 jpab 基准一致——它们让其他产品的所有者感到不舒服,但是......也许我在这方面并不是完全公正的——我与 ObjectDB 的创建者有过很多接触年,并推动他们发布基准。特别是,我觉得他们应该使图形线性而不是对数 - 它表明在大多数情况下 ObjectDB 的性能要好得多。
As an aside, the reason why you won't find many other benchmarks on this or any other JPA product is that none of the vendors can generally agree on a benchmark and tend to accuse others of bias. I've seen this first hand many times. Some people prefer polepos, but this is dominated by db4o and those people won't release the dn results for instance. Some database vendors won't allow results etc. It's a minefield and the creators of ObjectDB are no different here. Everyone likes to control their own benchmark ;-)
顺便说一句,您不会在此产品或任何其他 JPA 产品上找到许多其他基准测试的原因是,没有一家供应商普遍就基准达成一致,并倾向于指责其他人有偏见。我已经多次亲眼目睹了这一点。有些人更喜欢polepos,但这是由db4o 主导的,例如那些人不会发布dn 结果。一些数据库供应商不允许结果等。这是一个雷区,ObjectDB 的创建者在这里也不例外。每个人都喜欢控制自己的基准 ;-)
anyway, to cut a long story short, my honest experience is that ObjectDB is very quick, production ready (for a number of years back to 1.x) and well supported. It's a very good product.
无论如何,长话短说,我诚实的经验是 ObjectDB 非常快,生产就绪(回到 1.x 多年)并且得到很好的支持。这是一个非常好的产品。
回答by Farid.O
We have been using Object DB in our startup for a little over 5 months. We hesitated a long time before settling for objectDB after looking at different technologies (RDBMS, Graph db and object db). We are developing a web based business application and we had a set of requirements for our persistence layer. We considered amongst others : MySQL, PostgreSQL, Derby, Db4o, ObjectivityDB, Perst, Ozone, Neadatis ODB, Neo4j, OrientDB
我们在初创公司中使用 Object DB 已经有 5 个多月的时间了。在研究了不同的技术(RDBMS、Graph db 和 object db)之后,我们犹豫了很长时间才决定使用 objectDB。我们正在开发基于 Web 的业务应用程序,我们对持久层有一组要求。我们考虑了其他:MySQL、PostgreSQL、Derby、Db4o、ObjectivityDB、Perst、Ozone、Neadatis ODB、Neo4j、OrientDB
Our requirements were:
我们的要求是:
- Mature product for stability
ObjectDB is more than 6 years old – In version 2.2.9 as we speak - Supported with a community
We wanted to make sure there is someone to help if we have a problem and so far we are very happy with the speed at which we get answers to our questions. The community could be larger but is very active. - Speed of development
For agility and fast functionality turnaround an object database is incredibly easy and straight forward. We considered RDBMS + Hybernate but that was slow and a little convoluted - Capable of withstanding heavy load
Nothing scientific here but we wanted to feel comfortable that the system could handle a large number of concurrent requests. We tested up to 1000 concurrent requests, a mix of indexed queries, object updates, creations and deletions and collection updates to try and mimic load on our app. ObjectDB came out in the top 2 - Fast
Same here we used the same type of queries and timed them, we also increased the load to what we think is going to be a reasonable guess of our post go live load and again ObjectDB was constantly in the top 2 - Capable of handling large amount of data
We gradually increased the number of customers in our DB to 5 million customers (that's a little optimistic) with 1 to 5 orders each and checked the performance. There was no significant performance decrease (with the right indexes in place!) - Open source/cheap
Small issue with not having access to the source as we are using GWT and it sometimes causes issues with serialisation of managed collections and dates (although a workaround exists) - JPA support
If possible we wanted JPA or JDO support to easily integrate with existing frameworks (Spring) and be reassured that worst comes to worst we can still go back to an old RDMS systems – although I have to say that object persistence is so easy and transparent that it is sometimes hard to stick to the JPA requirements.
- 稳定的成熟产品
ObjectDB 已有 6 年多的历史——在我们所说的 2.2.9 版本中 - 社区支持
我们希望确保在我们遇到问题时有人可以提供帮助,到目前为止,我们对获得问题答案的速度感到非常满意。社区可能更大,但非常活跃。 - 开发速度
对于敏捷性和快速的功能周转,对象数据库非常简单和直接。我们考虑过 RDBMS + Hybernate 但这很慢而且有点复杂 - 能够承受重负载
这里没有科学依据,但我们希望系统能够处理大量并发请求让我们感到舒服。我们测试了多达 1000 个并发请求,混合了索引查询、对象更新、创建和删除以及集合更新,以尝试模拟我们应用程序的负载。ObjectDB 进入前 2 - 快速
在这里,我们使用了相同类型的查询并对它们进行计时,我们还将负载增加到我们认为将是对上线后负载的合理猜测,并且 ObjectDB 再次持续排在前 2 位 - 能够处理大量数据
我们逐渐将我们的数据库中的客户数量增加到500万客户(这有点乐观),每个客户有1到5个订单并检查性能。没有显着的性能下降(使用正确的索引!) - 开源/便宜
无法访问源代码的小问题,因为我们使用 GWT,有时会导致托管集合和日期的序列化问题(尽管存在解决方法) - JPA 支持
如果可能的话,我们希望 JPA 或 JDO 支持能够轻松地与现有框架 (Spring) 集成,并且可以放心,最坏的情况是最坏的,我们仍然可以回到旧的 RDMS 系统——尽管我不得不说对象持久性是如此简单和透明,有时很难坚持 JPA 要求。
All in all, ObjectDB was constantly in our top 2 contestants, sometimes first, sometimes second hence our choice. Also the frequency of bug fix and new feature releases is impressive.
总而言之,ObjectDB 一直是我们的前两名参赛者,有时是第一名,有时是第二名,因此我们选择了它。错误修复和新功能发布的频率也令人印象深刻。
I hope this helps, if I have sometime before our go live (early next year) to put our results in a presentable format I will try and post them here.
我希望这会有所帮助,如果我在我们上线之前(明年初)有时间将我们的结果以可展示的格式展示,我会尝试将它们张贴在这里。
回答by jwenting
I'd not trust that benchmark without independent verification. If you check the copyright information, the site is actually owned and operated by the owners of ObjectDB!
如果没有独立验证,我不会相信该基准测试。如果查看版权信息,该站点实际上由ObjectDB的所有者拥有和运营!
That said, I've no data to counter their claims, I'd just not take them at face value.
也就是说,我没有数据来反驳他们的说法,我只是不相信他们的表面价值。
回答by Paul Gullidge
I have also have been using ObjectDB for many years (I think 7 years) in a commercial capacity. Our company has two products that use the database (both embedded version). One of our products displays information about the signals sent between mobile devices (ie mobile phones) and a simulated network. Although we in effect create a separate database for each test that we run we can often save up to 1GB of equivalent XML data into the database.
我也已经以商业身份使用 ObjectDB 多年(我认为是 7 年)。我们公司有两款使用数据库的产品(均为嵌入式版本)。我们的一款产品显示有关移动设备(即移动电话)和模拟网络之间发送的信号的信息。尽管我们实际上为我们运行的每个测试创建了一个单独的数据库,但我们通常可以将多达 1GB 的等效 XML 数据保存到数据库中。
The speeds for saving the data are very quick (normally faster than asking Windows to make a copy the equivalent XML file). The retrieval speed is excellent allowing us to scroll through thousands (even tens of thousands) of graphically represented items as if scrolling through a Windows explorer file directory.
保存数据的速度非常快(通常比要求 Windows 复制等效的 XML 文件快)。检索速度非常好,允许我们滚动浏览数千个(甚至数万个)图形表示的项目,就像滚动浏览 Windows 资源管理器文件目录一样。
ObjectDB is an excellent product and one I hope to continue to work with. When we were developing our products we encountered the odd problem (although we've not had to report a single thing for as long as I can remember) but the speed with which we have had a resolution to every problem has been the best I've ever encountered.
ObjectDB 是一款出色的产品,我希望继续使用它。当我们开发产品时,我们遇到了奇怪的问题(尽管从我记事起我们一直没有报告任何事情)但是我们解决每个问题的速度是我最好的曾经遇到过。
To answer you question of "Is this production ready" well, in my opinion, it most certainly is.
要回答你“这个产品准备好了吗”的问题,在我看来,它肯定是。
回答by Hiep
I'm testing ObjectDB on a small project. Here are my remarks:
我正在一个小项目上测试 ObjectDB。以下是我的评论:
- There is not much of documentation/tutorial while working with JDO. You have much more documentation with JPA.
- Tutorials are too simple and far away from reality.
- I met 2 bugs in the DatabaseExplorer. But it was quickly fixed in the new version.
- The forum support is very good, I received an answer quickly.
- 使用 JDO 时没有太多文档/教程。您有更多关于 JPA 的文档。
- 教程太简单,离现实太远了。
- 我在 DatabaseExplorer 中遇到了 2 个错误。但它在新版本中很快得到了修复。
- 论坛支持很好,很快就收到了回复。
Compared to Versant DB with the same project and ObjectDB is more straightforward for getting started.
与具有相同项目的 Versant DB 相比,ObjectDB 更容易上手。
回答by user1050755
I'd not trust that benchmark without independent verification. If you check the copyright information, the site is actually owned and operated by the owners of ObjectDB!
如果没有独立验证,我不会相信该基准测试。如果查看版权信息,该站点实际上由ObjectDB的所有者拥有和运营!
Even more importantly, data is one thing, explanations another one. And there really is an explanation missing as to why it should be faster by a magnitude. This, and the fact that the benchmarks shown on their website are VERY low in count and therefore only show a VERY small part of the entire picture, seems very strange to me.
更重要的是,数据是一回事,解释又是另一回事。关于为什么它应该快一个数量级,确实缺少一个解释。这一点,以及他们网站上显示的基准测试数量非常少,因此只显示整个图片的很小一部分这一事实对我来说似乎很奇怪。
My experience (in general, not with ObjectDB) is that, for example, hibernate depends on work load type, and, if you need to migrate a database, you need to explicitly adjust hibernate behavior to get a decent performance. Does ObjectDB support caching? Does it only excel in large throughput scenarios that trash caches?
我的经验(一般来说,不是 ObjectDB)是,例如,休眠取决于工作负载类型,并且,如果您需要迁移数据库,则需要显式调整休眠行为以获得不错的性能。ObjectDB 是否支持缓存?它是否只在垃圾缓存的大吞吐量场景中表现出色?
Update
更新
I just read http://www.objectdb.com/database/forum/259. The typical nemesis for speed is, guess what, consistency. It seems ObjectDB does not support any reasonable concurrency model at all. So, it's basically just a NoSQL store?
我刚刚阅读了http://www.objectdb.com/database/forum/259。速度的典型克星是,你猜怎么着,一致性。ObjectDB 似乎根本不支持任何合理的并发模型。所以,它基本上只是一个 NoSQL 存储?
回答by James
The standard industry benchmark is,
标准的行业基准是,
http://www.spec.org/jEnterprise2010/
http://www.spec.org/jEnterprise2010/
which heavily uses JPA
大量使用 JPA
Note, that it tests the entire Java EE server, not just JPA, but JPA is the most significant part of the benchmark. The main JPA products have submitted results through their respective application servers.
请注意,它测试整个 Java EE 服务器,而不仅仅是 JPA,但 JPA 是基准测试中最重要的部分。主要的 JPA 产品已经通过各自的应用服务器提交了结果。
SpecJ is not as easy to compare products as the JPAB results, as most results are on different hardware, but the results are all peer reviewed, so can be more trusted. It is also a simulated real application, with multiple users, a large database, concurrency and isolation requirements and most results are on a cluster.
SpecJ 不像 JPAB 结果那样容易比较产品,因为大多数结果是在不同的硬件上,但结果都是同行评审的,所以可以更值得信赖。也是一个模拟的真实应用,多用户,大数据库,并发和隔离要求,大部分结果在一个集群上。
There are no ObjectDB results available, but in theory since ObjectDB supports JPA it should be possible to run SpecJ on it, and compare it to other products yourself.
没有可用的 ObjectDB 结果,但理论上,由于 ObjectDB 支持 JPA,因此应该可以在其上运行 SpecJ,并自己将其与其他产品进行比较。
回答by Emily Crutcher
I have used ObjectDb for 10 years and have been very happy with it.
我已经使用 ObjectDb 10 年了,并且对它非常满意。
Admittedly, my database is relatively small, but I went from constantly tripping over hibernate upgrade issues to just not having to worry about it, which has saved me tons of time over the years.
诚然,我的数据库相对较小,但我从经常被休眠升级问题绊倒,而不必担心它,这多年来为我节省了大量时间。