views:

100

answers:

2

I have a simple (actually simplified :) ) scenario that is possibly the cause for the headache I've been having for the last few days...

My current application (that serves 100's of users) currently uses Oracle as the database. I have no stored procs (I wish actually).

Now, I've been asked if the product will work if I migrate to IBM DB2 as the database.

So, after taking Oracle for granted all this while.... and having re-read Tom's article on MVCC (Multiversion Concurrency Control) and going through this post stating that DB2 is not 'on the list' or 'just tip-toeing in the area' as it were... I know I can't be sure that the product will work with DB2 as is.

Is there no hope.. or is there a nice disclaimer I could use.. ?

UPDATE: DB2 has upped the ante and made this look good, on paper at least. Well, I got the 'clause' to add to my db2-migration-requirements.

DB2 licenses Postgres Plus - DB2 9.7
Enterprise DB Oracle Compatibility

A: 

Not sure what you are looking for. An application that isn't reading data that is being concurrrently inserted/updated/deleted would be pretty 'immune' to MVCC (unless it takes out locks while reading large chunks, when the locking becomes an issue).

An application that is pretty much insert only wouldn't worry either.

A 'twitter' like app, which isn't that concerned about "consistency" doesn't have to worry either.

In short, there are a lot of apps where it won't make a difference. Whether your app is in the group isn't something anyone out here can help with.

That said, you would start with a regression test plan. How long would it take to run a full regression test on your application (every screen, batch job etc on high volume data with lots of simulated users.) to confirm it works. It won't all work first time without any change, so double that figure. If your boss doesn't wince at that total then get a few DB2 experts in to look at the code and app and get their opinion.

Gary
Oh, its definitely an app reading data that is being concurrently modified... But..the worrying part is that "various databases executing in the same, apparently safe isolation level can and will return very different answers under the same circumstances". Different test case results for different databases? :)
Ryan Fernandes
A: 

I am pretty sure that this will work. I should disclose that I work for IBM now a migration specialist. DB2 has licensed Postgress plus and this is in DB2 9.7. This is being used essentially a set of Oracle compatibility features. One of those features is Concurrency control. The other main ones are SQL dialect, PL/SQL, PL/SQL packages Built-in packages, JDBC client with extensions, OCI client applications, SQL*Plus scripts.

Ciaran De Buitlear
yeah! this is exactly what I'm looking for. Thanks!
Ryan Fernandes