Question

What benefits (if any) to the company (not only to developers) I could gain by switching from SQL Server 2008 to Versant OODB?

More info about the project and facts to help with an answer (let me know if you need more):

  • Very small team, almost never used OODB.
  • Project uses NHibernate 2.
  • About 75% test coverage.
  • ASP.NET MVC app.

At this stage I could not justify the switch due to following points (most related to db4o, not Versant mainstream OODB):

  • tooling is pretty bad comparing to RDBMSs world where there are bunch of "Managers", profilers, integration/migration tools and others;
  • documentation is pretty basic from what I can observe and heavily mixed with Java;
  • not so many resources on the net comparing to RDBMS;
  • switching to other databases may be problematic (as opposed to RDBMS);
  • learning curve for the developers and IT team;
  • additional licensing cost;
  • additional maintenance cost;
  • no integration with MSDeployment (including automatic backups, MSBuild, Packaging etc);
Was it helpful?

Solution

Here is a comments by a real user who switched from SQL Server 2005 to Versant:

Here’s feedback from me and my colleagues about VOD.Net.

I grouped my ideas in pros and cons

PROS: (In one word : Speed)

  • The database engine is fast for data read and writes, from what we’ve done, it’s about 5 to 10 times faster than SQL Server 2005
  • It reduce the amount of code needed to do same thing than standards Data Access Layer technologies
  • It also reduce time to develop new functionality
  • It creates a strict objects structure and that facilitates data integrity
  • Data import into VOD is easy

CONS: (In one word : Need Troubleshooting skills)

  • Our major negative point is about the Administration tools usability (Administration Console and Object Inspector)
  • Buttons/Links not quite explicit about what they do, we usually figure out when we try to use it
  • Versant Compilation/Database update errors are not enough explicit,  we barely know what class cause the error but not the reason, so we need to debug by ourselves.
  • Using Verify Database menu option could not work and will show errors (Depending of the times)
  • Application Migration
  • When migrating a DAL pattern application, it’s long to make it work with VOD if you try to keep the same code for the UI

In résumé, I would recommend using VOD.Net for enterprise having senior developers skills and complex/big data structure. It is definitely faster creating brand new application than migrating existing application. The Object inspector need a redesign to be more user friendly.

We have addressed some of the Object Inspector concerns by providing LINQpad support. I think you should make the decision to switch based on technical benefits and not on any emotional discussion. Also, Versant is a Microsoft partner, and there are plenty of opportunities for people with good OO Skills Versant or not.

OTHER TIPS

Depends on you object model. If you're dealing with a deep object graph in your domain with complex hierarchical relationships you'll benefit big time by switching from SQL Server 2008 to Versant ODB. If you're dealing with flat objects sticks to a relational engine. Please check the c/s results in www.polepos.org: http://polepos.sourceforge.net/results/PolePositionClientServer.pdf

You forgot .... It is probably going to me much much faster ( but will depend on your model. if you have simple model, I recommend to just stick with RDB ).

If you have many-to-any, recursive relations, nested subgraphs, etc ... then if will be much faster.

Of course, it will also run on a lot less hardware. Studies with IBM show that you will save around 50% of CPU in your middle tier ( e.g. you webservers where all the type translation happend for the RDB ).

Also, you don't need a database expert .. if you are an OO guy then you already have the skill set ...especially if you know Hibernate/nHibernate because the concepts of object life cycle management from Hibernate and the ORM space were basically hijacked from the OODB world and ported to the RDB camp.

Also, you can iterate much faster in your development cycles without having to constantly go to a DBA and ask for schema updates.

....RDB will eventually go the way of the mainframe. Still around, but not being used for new projects. Those Cobalt programmers did not believe it at the time either ... so don't bother with all the na-sayers.

If you want to switch then do so. This is your only "plus" point.

"getting rid of Object-relational impedance mismatch that we all are so tired of."

You listed most of the negatives already. I'll add two more:

  • how may jobs ever ask for Versant OODB skills?
  • how many developers will have Versant OODB skills?

In disclosure, I work for Versant in Sales, and to comment on your questions, Versant is a commercial product, but like SQL Server, we have similar pricing, Community Edition is free with limitations on database size, Standard Edition is a small cost per server but limited in the number of threads allowed, and an Enterprise Edition which is expensive, but less than either SQL Server or Oracle if you need scalability and performance. Also, by moving from nHibernate to LINQ you will be able to use that to Versant's database, and in the future if you want to move back to SQL Server, you can do so quite easily with EF or LINQ TO SQL, therefore it mitigates your risk in the database infrastructure. This would be a point for Versant rather than using a KVP NoSQL store with a prorprietary interface. True, much less documentation that Relational, but www.odbms.org does have some great information and reference material. Learning curve if your team is proficient in C# should be quite easy, and from an administration standpoint, Versant is a database, so learning backup and recovery procedures should seem familiar. Our customers, C++, Java or .Net, all say the benefits of Versant are ease of development, performance and ability to support their needs with a lower amount of resources in servers and storage.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top