Ruminating on NSFDB2 »
PHILIP STORRY - SEP 30, 2009 (01:11:54 PM)
I've been wanting to ruminate on NSFDB2 and its fate for a while, and have finally decided to do a braindump. Apologies to my more expert readers for the gentle "beginner's introduction" start, but this all does have a purpose...
It was back in the R7 days when we got our first sniff of Notes and DB2 (NSFDB2).
It was a new technology, and IBM were justifiably both proud of it and at the same time cautious. When you change a storage engine, you want to be careful. So for the whole of R7's lifespan, it was something you had to ask for specifically from IBM.
This wasn't a huge issue, but probably seemed odd to many.
DB2 integration had some specific goals, mostly around handling very large data sets. The idea was to combine the strong RAD environment of Notes - and to an extent its looser normalisation and data typing - with the high performance and scalability of DB2.
That was misunderstood a little at first in the Notes community, and some were disappointed that they couldn't just throw their 2,000 mail databases into a DB2 store and get a free performance improvement. It was soon clarified that it was primarily for apps, not mail, which helped.
In R8, the integration was improved somewhat and the feature was open to all - you no longer needed to ask IBM for a feature key to use it!
It seemed that NSFDB2 integration had come of age.
Which is why it was a bit of a shock when IBM announced that support for NSFDB2 would end with Domino/Notes 8.5.
There wasn't a lot of wailing and gnashing of teeth, but that's mostly because there were very few deployments of NSFDB2 - it was still a very new technology.
It could be argued that IBM did the right thing when they killed it early - rather than struggle on with whatever difficulties they had with it
But what wasn't terribly clear - to me at least - was WHY they killed it.
IBM said at the time that it had been very difficult to get non-relational data into DB2, and make it perform as they'd like. And that the future for Notes was NSF, which would continue to be improved.
But this was a brief note, buried almost immediately by IBM throwing options out as to what people could use instead - from DECS to LEI, and third party tools like Notrix.
I can understand being more keen to advertise the way forward rather than dwell on the unpleasantness of a feature lost - but I like reasons!
So here I'd like to speculate wildly for a while on why DB2 was axed.
The following is my inference and reasoning from the limited information available. It is not canon. Thank you for remembering that!
I believe that with NSFDB2 there are three main considerations IBM had. The first was support. The second was ROI. And the third was politics.
Support is easy to explain. Even when in its final release form, DB2 support was missing on some supported Domino platforms (Solaris, iSeries and zOS and others) for periods because either DB2 on those platforms is singificantly different, or the DB2 libraries weren't available on the platform.
And then it gets more painful because by tying the two products together, IBM is effectively committing to supporting one for as long as the other. That's not necessarily desirable in all circumstances.
Worse, it may be that newer versions of one product can't support the newer version of another without a delay. That's not good..
The only way to effectively support this over the long term is to synchronise the development, testing & release cycles of the two products. Anything else gets messy.
But I see the real problem being that the two products work in very different markets. DB2 shouldn't have to wait for Notes releases in order to ship Oracle-killing features. It should be able to strike whilst the iron is hot. And the same applies in reverse - Notes should ship when ready, not when DB2 is ready with Oracle-killing features Notes may not even use.
And this is all support from IBM's point of view. I'm not even going to go through the pains of support for customers (architecture, installation, patching, etc.).
After looking at support issues, ROI becomes obvious. A lot of investment was put into NSFDB2, and the actual ROI was vague. Yes, some very large apps became faster - but other paths had been available for similar performance gains. And it wasn't something you'd typically use for mail, which is the vast majority of Notes/Domino I/O cycles worldwide.
The ROI on NSFDB2 just doesn't add up favourably for IBM. Even if you argue that it's a strategic investment, it will probably take a decade or longer to give decent returns.
But finally, politics might be an issue some people didn't quite realise.
Not internal politics at IBM. (I know nothing of such things!)
The politics within their customers.
NSFDB2 gives you relational database advantages with one database only - DB2. It looks like a play for space in the data center to some. And implementing it has overheads - you can imagine the CIO looking at this, and asking why it must be DB2 when they have trained Oracle or MS SQL DBAs on hand.
I suspect that the takeup of NSFDB2 was hampered by this kind of politics at many customers. Even if the DB2 install had been completely turnkey, there would be a fear that it's more licensing, more training, more complication on the infrastructure.
Basically, many people probably suspected it was a "back door" entry for DB2, and that's the kind of thing that can play very badly with management - who are holding the chequebook!
If the applications need that level of performance, then why not just use J2EE or .NET, and put the data in an RDBMS natively? Much more politically acceptable, much simpler to architect and support - even if it may actually be more expensive...
That is why I think NSFDB2 died. It was a complicated abstraction that served less than 1% of all NSF requirements, and even then didn't quite serve it in as transparent and simple a manner as we'd ALL have liked.
Given the differences in the products, it was a magnificent achievement to even get it to a level where it could be shipped.
But from customer to Notes geek to IBM, all realised that a relational database behind NSF just wasn't as good in reality as it looked on paper.
So IBM decided to improve NSF, and we can see that happen with R8.5 and DAOS. Which, overall, is far more important to the Domino/Notes installs worldwide than DB2NSF ever could have been.
These thoughts, by the way, are a prelude.
In my next entry I'm going to cover Microsoft Exchange Server, ESE and SQL Server.
I didn't want to be accused to covering that tricky subject whilst glossing over the "failure" of Notes to move to a new database engine. But I think I've been more than fair here, and can therefore also be more than fair tomorrow...


Comments: 8
COMMENT: HENNING HEINZ
SEP 30, 2009 - 20:23:08
Still, putting nsfdb2 on hold is a clear decisions where the improvements to nsf are still quite vague. «
COMMENT: PHILIP STORRY

OCT 1, 2009 - 09:53:49
I think DAOS is significant enough that it can be counted as an NSF improvement. I just wish we could use it at my workplace, but our platform is R8.0.2 and will be for a while...
We have had improvements to NSF in R8 as well as R8.5. R8 gave us ODS 48, which introduced design and document compression, AdminP author/reader lists, and some unspecified folder speed improvements if I recall correctly.
The document compression is quite good. We've saved around 20% on each of our mail archive servers in the UK when we implemented it recently. That was about 100Gb per server, which is nice to get for free!
I'd like to see further improvements to NSF, and it'd be great to see the community brainstorm on what they'd like to see. If IBM are going to drop NSFDB2 and say that improvements to NSF are the way forward, then let's start suggesting which improvements we'd like to see!
«
COMMENT: BRIAN MOORE

OCT 1, 2009 - 01:34:57 PM
The problem I would have is when a firm makes everything that is doesn't produce work badly - consider the Microsoft model where Sharepoint only works on Windows.
Cheers,
Brian «
COMMENT: PHILIP STORRY

OCT 1, 2009 - 14:31:21
I agree with you - DB2 integration isn't actually a play for space.
But I'm concerned that it's a perception others will have.
Or worse, in some ways - a perception that others will create. You can just see a Microsoft salesman telling people that using NSFDB2 locks you into DB2, whereas with SharePoint it's somehow different...
Given the way IBM's competitors in this arena behave, I think it's a valid concern...
Phil «
COMMENT: BRIAN MOORE

OCT 2, 2009 - 04:09:50 PM
Perception is great, but how do you get a Microsoft salesman saying that buying his product doesn't lock you into something? It is a concern, but from a rational side, Microsoft loses big time there. To get the emotional case, I'd see something like selling "NSFDB2" add-on.
Of course, getting locked into DB2 isn't bad either. It's an established, reliable system. And do the other's sell their relational Dbs as letting you port away?
Cheers,
Brian «
COMMENT: PHILIP STORRY

OCT 5, 2009 - 07:58:39
The problem with perception is that it's just that. It's not fact, and can be much less than the whole truth.
So the perception can be that a Microsoft salesman is selling you something which works with what you've got, and has no lock-in.
DB2's a very nice database. Fast, secure, reliable, and portable.
And of the "big three", it's also the one that seems best able to work in a turnkey manner - its Autonomic Management systems will optimise and repair it remarkably well in day-to-day operations.
But perception may not be the whole truth...
Phil «
COMMENT: STEPHAN WISSEL

OCT 5, 2009 - 11:42:04 AM
There is also a lot of room for NSF improvements. Indici could be stored like the FT Index outside, the Query capabilities could be expanded (personally I would vote for XPath over SQL) and more. You will be amazed.
em18! stw
Disclaimer: I work for Lotus/IBM and the is *not* an official statement. ! «
COMMENT: PHILIP STORRY

DEC 7, 2009 - 23:02:51
Apologies for the delayed reply - things have been very busy for me recently.
I don't take your word for official statement, but it's interesting to hear you mention DB2's XML capabilities. I purposefully stayed quiet on that, as I wasn't sure if it was the same codestream or not...
I find it interesting that you mention XPages could present non-NSF data stores. That seems like a good way forwards. If we have to transition to anything, then CouchDB is the most natural choice - but I'd rather continue with NSF if we can.