Congratulations, folks! It’s official – as I predicted with in my Availability Groups FAQ just over a year ago, the term AlwaysOn has now become the new active/passive and active/active and annoys me just as much if not more. Every time I see it misused I want to proverbially stab myself in the eyes. I really tried to avoid writing this post. I truly did. But people have forced my hand because it’s become like using ur for your, witch for which, etc. – in other words, it’s just wrong and people need to start using the right words.
I swear people should be given a test: if you can’t use the right terminology, you can’t use the feature or speak on it. It’s ignorant otherwise and you’re perpetuating problems. This even goes for people I truly admire and respect – like Bob Ward (one of the best and most knowledgable people about SQL Server around PERIOD) who recently wrote what is an otherwise great blog on availablity groups, but is marred by literally using the wrong term (and see next paragraph for spelling of it; there is no space) the ENTIRE post. MS doing it (be it CSS or a PM) is especially egregious since it helps perpetuate the bad. ARG!
So what is AlwaysOn (one word, no space between Always and On – another common mistake)? It is a marketing term that covers two features in SQL Server: availablity groups (AGs) and failover clustering instances (FCIs). So their official names are technically AlwaysOn availability groups and AlwaysOn failover cluster instances (or failover clustering instances). Don’t believe me? Click here. A few of us had a spirited debate on Twitter awhile back, which I think prompted Jonathan Kehayias’ (blog | Twitter) blog post which predates this one. Part of the reason we had a friendly debate is that depending on who you ask over in SQL Server, AlwaysOn is either just AGs and FCIs, or to some, it covers all features that remotely have to do with availablity. Either way, it still does not equate to AlwaysOn = the availability groups feature.
As with the A/P and A/A, let me give you a bit of history. The availability groups feature in SQL Server 2012 went through a few name changes over the development of the product. It had a total of four (not necessarily in this order):
- AlwaysOn (yes, your eyes do not fail you)
- Availability groups
Let’s start with the first two. If memory serves me correctly, HADR was the first name for the feature which then morphed into HADRON. HADR was around for a long time. HADR was around so long that there are still remnants of it in SQL Server (such as the AG DMVs) that are not being renamed. Truth be told, I liked HADRON. It is easy to remember (a key hallmark for anything marketing) and it rolls of the tongue easily. However, switch two letters and you have a disaster waiting to happen. For those with delicate sensibilities, I apologize but let’s face facts. I can see why they probably didn’t go down that road. To add to the comment about Bob Ward, take a look at the titles of some of the CSS blog posts. (As an aside, you should bookmark that CSS blog site. They always post interesting stuff.) Many still use HADRON. They’re not helping any here.
That brings me to the dreaded term: AlwaysOn. Yes, it was the feature name for AGs for what seemed like five minutes, but it’s the one for some reason that most of the SQL dev PMs stuck on and started using in things like presentations, so I think that’s why it stuck. I don’t remember when marketing co-opted the term and made it cover the features of availability groups and FCIs, but it happened. I think that was much later in the dev cycle, which is also I think why the damage was done and somewhat irreversible.
The the term AlwaysOn (with or without space) has a long history with SQL Server going back nearly 10 years which adds to the confusion. The term Always On (with space) was introduced in SQL Server 2005 to brand a program to certify storage vendors with SQL Server (example: Dell’s whitepaper; EMC and Hitachi also have similar ones). In SQL Server 2008, Always On (with space) was used to cover availability in general – much like how it’s SUPPOSED to be used in SQL Server 2012. Don’t believe me? Here’s proof.
I leave you with this: STOP USING ALWAYSON IF YOU ARE REFERRING TO AVAILABILITY GROUPS. Please use the right terminology. Just as active/passive and active/active are incorrect for FCIs, AlwaysOn is wrong for AGs.
In the immortal words of Bartles and James, thank you for your support.