Ultima Online and the History of Sharding

Have you heard of sharding a database? Of course you have. Do you know where
the term comes from? Someone asked me this at a cocktail party recently. I gave
it my best shot.

“The earliest I remember was Google engineers using it to describe the
architecture of some things,” I said. “That would have been about 2006.”

“Nope. Much earlier than that,” said my new friend.

I pondered. “Well, I guess there was the famous LiveJournal architecture
article about MySQL. That was, I dunno, 2003?”

The person then told me the following history. I can neither
confirm nor deny it; what do you know about it?

Years ago there was a game called Ultima Online. It….

I broke in. “Hey! In 1995 my brother and I were staff members at a Boy Scout
Camp, and one of the other staff members had a game called Ultima Underworld on
his PC. It was addictive. Any relationship?”

“Yes, it was a predecessor to Ultima Online.”

“Oh,” I said. “Well, that’s basically the last game I’ve ever played.
But please go on.”

Ultima Online was early in the Internet age – late nineties, I think. They
knew they were going to have a lot more traffic than they could handle with
one server, no matter how big it was. The only solution that presented itself
was to run lots of small instances of the game. But that would impact the game
play itself. What to do?

The answer was to work it into the storyline of the game itself. The world in
the game was said to have been broken into shards. Not the database – the
world itself. That was part and parcel of the game. Some gemstone had been
broken into shards and reality was broken along with it.

True? False? It’s easy to verify that the storyline is true, but is this how we
ended up with “sharding” in the database world, especially in MySQL?