The Register® — Biting the hand that feeds IT

Feeds

Frustration and joy - Microsoft's CTP in action

Thank God for file streaming

Customer Success Testimonial: Recovery is Everything

Project Watch: Microsoft 2008 OK, so choosing and installing the hardware - that was easy. I wish I could say the same for the software.

On the face of it all I had to do was install the beta version of Windows Server 2008, the production version of Visual Studio 2008 and the beta SQL Server 2008. Sorry, by beta of course I mean community technology preview. It appears that Microsoft has learned that renaming can be used to shed bad associations.

Microsoft encourages people to join its CTP programmes and puts a great deal of effort into the "welcome to our happy community" front end, encouraging us to play and telling us how valuable the company finds our thought-provoking feedback.

Which is fine. I just wish it would then put one tenth of the same effort into making the sites, the downloads and the installations usable. As it is you find yourself enmeshed in a Kafkaesque nightmare of: go here and download this, add this patch, and read these installation instructions - which are almost but not exactly like the instructions you downloaded the night before.

And if all of this sounds bad, remember that this is only the downloaded - installation is yet to come. There are three separate products, and I discovered that if they are to work together properly it is vital they are installed in the right order with the correct options selected. In three days I went back to bare metal five times before everything was present and correct.

Install across the ages

For instance, some installation processes will load a junior version of SQL Server onto the machine by default. We, of course, needed the grown-up one. With a CTP you're never sure, if you install the serious version on top of the toy, that the latter will be overwritten properly. Any problems you may have later could be laid at the door of an imperfect install so to exclude this possibility you go back to square one and start again.

Furthermore, SQL Server Management Studio needs Visual Studio 2008 whereas SQL Server Business Intelligence Development Studio requires Visual Studio 2005 - at least in CTP5. So you need both. This is not made at all clear on the CTP sites. Note that I'm not asking whether the information is there or not - I admit I didn't check every folder in every basement. It's doubtless there somewhere, but are these fundamental requirements stated clearly at the start of the download or installation instructions? No.

The entire CTP programme ends up feeling like an initiation ceremony: if you can't find your way through the maze, round the sleeping dragon and past Cerberus then you are not worthy. Having actually installed the stack and got it working, I feel that I deserve a T-shirt that says: "I survived the 2008 install, even if my sanity didn't".

The greatest service Microsoft could perform for its oh-so-valued, unpaid, beta testers is to get somebody to write, for each CTP release, a clear step-by-step guide to installing the stack from a standing start. Having done it five times I could have written it. (So why don't I write it here for you now? Because I did it first in CTP5, which has since been superseded meaning anything I'd written would be out of date by now).

Good. I feel better for that. And before you ask why anyone would go through that pain, the answer is for the killer functionality that is to be found in the 2008 stack. I've talked about the spatial data types (here, here and here), but another compelling feature for our project was the file streaming.

The joy of BLOBs

Binary Large Objects are here to stay. Whatever relational theory says about atomic data (and the arguments are complex and technically fascinating) users want to store images, documents, scans and other elements as part of the database. The bad news is that, by definition, BLOBs are large. Up until now, SQL Server users have had two choices - store BLOBs in the database itself, or store in the file system and point to them.

As it happens, our application has a great number of BLOBs. In SQL Server 2005 we tried both approaches. Storage in the database rapidly produced databases files that exceeded the 4GB limit on a 32-bit operating system. Storing the BLOBs in the file system was better but managing the pointers to the correct BLOB - in our case by bar codes - was time consuming and limiting.

File streaming is fabulous for our application. Essentially it means that, within the database, we behave as if the BLOB is part of the row. This makes the management easy. In practice, despite appearing to be in the database, the images are actually stored in the file system; however they can be retrieved very rapidly. The bottom line is that, within reason, we get the benefits of both and the disadvantages of neither.

There, I know there had to be SOME reason for enduring the CTP pain.®

Follow Register Developer regular Mark Whitehorn next time on Project Watch: Microsoft 2008 as he continues to roll out a spanking-new 1TB database for several thousand users on Microsoft's SQL Server 2008, Visual Studio 2008 and Windows Server 2008.

Magic Quadrant for Enterprise Backup/Recovery

Latest Comments

@ the lot of you (apart from the author)

what are you guys about? I mean really.

Just use the database to point to the binary file and go do somethig productive.

... I mean REALLY.

It's because of people like you I keep getting promoted.

* sigh *

0
0
Anonymous Coward

@Replies to several comments

Yep, same AC.

"That way you can only backup the new BLOBS and it makes the backup of the database much faster because it is smaller."

Or use a differential backup?

I dunno. you seem to have chosen the most rocky route up this mountain. I'll be watching your progress with interest.Best of luck.

0
0

Holy BLOBs

How do filesystem-BLOBs work? My last experience was/is with SQL Server 2000 and I didn't even know this option was available. Maybe because most of my BLOB experience comes from PostgreSQL, basically the lo_*() functions.

@Kevin - Wouldn't that be LAPP stack? "LAMP" implies MySQL *retch*

@ACs - Hm, you could install DB2 UDB on a Linux box, with all the added benefits of a graphical installation, and the db2 Command Center. See, using the Linux platform doesn't automatically restrict you to Postgres/mySQL ;)

All that said, SQL Server is a fairly decent DBMS, even if it is a blatant Sybase fork. Though I've been able to bring it down with a triple self-join without WHERE parameters ... watch the server go down! Weeeeeeeeeee!!!!!

0
0

More from The Register

Bjarne Again: Hallelujah for C++
Plus: Now officially OK to admit you never used STL algorithms
Interwebs taunt Sir Jony over Apple eye candy makeover
Hey Ive, Ive... add more unicorns, willya?
Nuke plants to rely on PDP-11 code UNTIL 2050!
Programmers and their walking sticks converge in Canada
SCO vs. IBM battle resumes over ownership of Unix
Zombie lawsuit back and wants to suck the brains out of Linux
Red Hat to ditch MySQL for MariaDB in RHEL 7
So long, Oracle! Don't let the door hit you on the way out
Shy? Socially inadequate? Fiddling with your phone could help
App 'tells the brutal truth' about social inadequates' chatup lines
Java EE 7 melds HTML5 with enterprise apps
New release arrives with GlassFish, NetBeans support
 breaking news
'Office Facebook' firm Tibbr wants you to PAY for mobe-meetings app
Great idea. Punters won't cough for it though
 breaking news
The only Waze is Google: Ad giant tipped to gobble map app 'for $1.3bn'
Pac-Man-satnav-ish upstart in bidding war with Apple, Facebook
 breaking news
PM Cameron calls for modern, programmable computers! (We think)
IT education musings to G8 chiefs to mystify IT industry