April Fools Day joke from my years at Microsoft

I couldn't think of a really good April Fools Day joke to play, so I thought I'd share with you one that I played on the entire 1000-person SQL Server team back when I was a manager in 2007, and one of the things in my portfolio was fostering closer relationships between team members and customers. I managed to fool several hundred people with this, and had a few managers fuming that they weren't involved in the messaging :-)

Here's the text of the email, with actual people's names changed.

To: All SQL Server Full-Time Employees in Redmond

Since the start of the year, the SQL Engine team has been conducting a trial of the new Adopt-A-customer initiative that I'm driving. Now that the approach has proven successful, and after the go ahead from the Senior Leadership Team, we're rolling this program out to the whole SQL division. Read on to find out how you will be involved…

We recognized that the team wasn't involved closely enough with the day-to-day operations of customers and so we didn't have a good enough idea of how customers are using SQL Server. Getting more involved has a number of benefits for us including better pre-release feedback, savings in support costs, and increased customer satisfaction.

Starting immediately, you have been assigned a customer to adopt through a random drawing. See below for details of how to find your assignment. If you don't like the customer you've been assigned, or there's a customer someone else has who you'd rather be assigned to, you can trade with someone, or you can ask me nicely to make a switch.

Here are some of the rules of engagement (the full description of how to go about this has been uploaded to the Engineering website):

  • You must call your customer at least once a week to ask how they are doing
  • You must provide alternative contact details (e.g. home phone number) for when the customer has any kind of urgent questions and needs to contact someone from the Product Group. If you go on vacation, please provide your cell phone or hotel number.
  • Every 4 months you will be required to present a detailed overview of the customer, its operations and uses of SQL Server to our VP and the Senior Leadership Team. You will have 5 minutes each to do this, with a maximum of two slides – time is limited as they will have over 1000 presentations to sit through.
  • You will be going on-site with the customer twice or more during the year, depending on the customer. This may not be much fun for some of you but experiences may vary (e.g. Ryan's customer is Disney, so he will be living in DisneyWorld, Orlando during July and August this year – its unclear which Disney character suit he will be wearing. Rob's customer is Barnes and Noble, so you may spot him on the checkstands at B&N in Crossroads during the year. My assigned customer is the Renault Formula One team, so I'm going to be forced to go to all F1 races around the world this year – luck of the draw I suppose!)
  • You will be expected to support the customer by purchasing some of their products, and evangelizing their products to your friends and family, for a small percentage return on profits from sales. This may be easier for some than for others – e.g. Ryan will have no problem with Disney, but Kevin (who has Boeing) and Mike (who has Lockheed Martin) may have a lot more difficulty, but with a lot more to gain! Ingenuity will be rewarded!
  • For those (approx. 74) people who have offshore telecom companies (e.g. Brian who has Korea Telecom), you will be given a local telephone number in that country and should make all calls (including local calls) through that number. Your DSL service will also be routed through that country.
  • When representatives from the customers are visiting campus here in Redmond, it’s expected that you spend as much time with them as possible, including all meals. You should provide a personal airport shuttle service and if possible, arrangements should be made for them to stay at your house. You will be able to expense all costs involved with this, to a generous maximum of $35/day.
  • The spreadsheet with your customer assignments is at \\internalMSmachine\public\prandal\adopt\customers.xls

Please checkout the Engineering site for full details. Let me know if you have any questions, comments or concerns.

Thanks

Paul Randal
Microsoft SQL Server Core Storage Engine

Ah – the good old days. Happy April Fools Day!

SQL Quiz #5: SANs and mirroring

There's another SQL Quiz (from Chris Shaw) doing the rounds where people blog the answer and then tag someone. This I got tagged by two people (Jason Massie and Gail Shaw) in the same day for the same quiz (albeit over a week ago). They either think I'm going to say something profound or funny, or maybe profoundly funny. Can you say something funnily profound? Ah, got it: profound or strange, or strangely profound, or profoundly strange. Whatever. On with quiz. I'll try not to disappoint.

Question 1: Do you feel that you have a reliable SAN Solution? If so what is the secret?

No. Well, that was easy, eh?

Ok, seriously – we don't have a SAN or any production databases per se, as we're a training and consulting company. We do have a lot of storage hardware (3 x DELL MD3000i's packed with 26TB (unformatted)), but it's not managed by a SAN. However, we do have a lot of clients that DO have SANs. So how do we know they have a reliable SAN solution? I guess there are a number of different factors off the top of my head, and I'm not a SAN expert:

  • Was it designed for the job it's doing? 
  • Are there redundant components to protect against hardware failure?
  • Was it configured by someone who knows what they're doing, with that brand of SAN?
  • Was it load tested to ensure it's can handle the job it was designed for? Was SQLIOSim run to simulate overloading the SAN to flush out any issues?
  • At the time it was configured, was the firmware all up-to-date, with no known bugs? I saw 'at the time it was configured' because you have to be careful about willy-nilly upgrades to firmware in the various components. Someone that doesn't know what they're doing can destabilize a SAN by upgrading a piece of firmware that subtly changes the behavior.
  • Are page checksums configured on the SQL databases to help detect I/O problems? Are regular consistency checks being run?

I would say that a 'no' answer to any of these is cause for concern.

Question 2: Describe database mirroring in laymen’s terms.

I'll try a few different answers. You be the judge.

1) I could make this very, very simple and just say "It's really technical and you don't want to know". That's not really in the spirit of things though.

2) Imagine 2 seven year-old girls, in separate rooms (like my youngest daughter and one of her friends). Maybe even separate countries. Girl #1 is painting a picture, using the standard easel setup. There's a webcam pointing at the painting that girl #1 is doing. Girl #2 has a monitor and can see what girl #1 is doing. They're also on the phone with each other. Whenever girl #1 paints a brush-stroke, she can't paint any more until girl #2 has made the exact same brush-stroke and said "Done it." That's the synchronous part of mirroring. Girl #1 can't get ahead of girl #2. Asynchronous mirroring is where girl #1 doesn't have to wait for girl #2 to keep up. With a witness, there's a third girl, with two webcams and another phone…

Hmm – ok this analogy isn't working. It seemed so promising! Let's try again…

3) This came to mind after taking a shower this morning in the hotel north of Houston. Database mirroring is like having redundant hot-water heaters. If the hot water fails from one heater, the heat-operated valve flips and the hot water is drawn from the other hot-water heater. You need two hot water heaters, and a fast-operating valve. If the first hot water heater is fixed/warmed up again, you can manually switch the water-flow valve back. If both hot-water heaters are unavailable, no hot water. See, failover clustering won't work, because then you've only got one hot water heater, with redundant pipes coming out of it. And replication won't work because there's a lot of latency between the water leaving the hot water heater and reaching the shower head. Ok – got a bit carried-away there.

Luckily we have a redundant hotel across the street, so if there's no hot water by the time we return from a day of bird-watching on the Gulf Coast, we can move to the redundant hotel. Although that's a lot more hassle, and a lot slower than if this hotel had a redundant hot water heater...

PS Some other folks (that I know of) have replied to the quiz – here are links to their answers:

And you can follow me on Twitter at @PaulRandal

PPS I'm not tagging anyone – been too long since the quiz started I think – the usual suspects have all been tagged already.

Quick joke

Saw this on Twitter (anonymous original author):

A SQL query walks into a bar. It goes up to two tables and says “Mind if I JOIN you?”

:-)