https://www.raphkoster.com/2009/01/08/database-sharding-came-from-uo/ Raph's Website Raph Koster's personal website: MMOs, gaming, writing, art, music, books * Blog + Recommended posts 1998-2012 + Recommended posts 2012-2017 + Popular Posts * Game Design + A Theory of Fun + Presentations + Essays + Interviews and panels + Snippets + Laws of Online World Design + The Online World Timeline + Links * Books + Postmortems + Theory of Fun + Sunday Poems + Other writing o Fiction o Poetry o Lit Crit * Music + After the Flood o Amazon o iTunes o Spotify + Listen + Instruments and tunings * Art + Pencils + Pen and Ink + Cartoons + Digital Art + Doodles * About Raph + CV + Contact Raph + Press kit + Hobbies o Emulation o Fish tanks * Upcoming Events Independent Games Reflections Across the Board: The "Music" Festival Finalists of Game Design: Part 1 Database "sharding" came from UO? Posted by Raph Koster(Visited 132841 times) Game talk Tagged with: ultima online, vw history Jan 082009 Lessons Learned: Sharding for startups is a technical post about database scalability. What caught my eye was the term. What an odd term -- "sharding." Why would a database be described that way? So I started reading a bit about it. It basically means running a bunch of parallel databases and looking into the right one, rather than trying to cram everything into one. Near as I can tell, a quick Google seems to say that the term came about because of a guy who worked at Friendster and Flickr, and seems to . Wikipedia has only had an article for a little while. In the comment thread at Lessons Learned, there's mention of the term being used in 2006. Flickr, of course, was born as an MMO called Game Neverending. In fact, I was quoted in Ludicorp's business plan, and Stewart Butterfield had asked if I could be an advisor, but I couldn't do it at the time because of my contract with Sony. Sigh. Anyway, I would be shocked if the term "shard" hadn't been thrown around those offices... because in MMOs, of course, "shards" has a very specific meaning and history. It means database partitioning -- of worlds. Parallel worlds each running the same static template database source, but evolving different runtime databases. But these were just called "servers" -- like, Meridian 59 had bunches of them, and they had numbers instead of the common practice of names that is in use today. A snippet from the UO intro movie A snippet from the UO intro movie No, "shards" came about specifically because when we realized we would need to run multiple whole copies of Ultima Online for users to connect to, we needed to come up with a fiction for it. I went off and read a whole mess of stuff about early Ultima lore and tried to come up with a fictional justification. What I ended up with is described here pretty well: that the evil wizard Mondain had attempted to gain control over Sosaria by trapping its essence in a crystal. When the Stranger at the end of Ultima I defeated Mondain and shattered the crystal, the crystal shards each held a refracted copy of Sosaria. It was a very very specific word chosen because, well, it was a piece of a crystal, which was a completely fictional invention. If Mondain had captured Sosaria on a parchment or in a painting, I would have said "a tatter" or a "fragment" or some such. But in the original U1, it specifically said he had used a crystal to gain power. We even talked about terms like "multiverse" and the like at the time and dismissed them as comic-book geeky and not really Ultima-flavored... so "shard" it was. Now, from there time kept marching forward as each parallel Sosaria evolved in tandem. (UO was supposed to be between U3 and U4, in terms of chronology). The difference is, some of them got the Avatar (sent by the Time Lord) and some didn't. Some of them were captured by The Guardian, and we invented the notion that Shadowlords were essentially evil beings created from shards he had captured. In fact, the beta test shard eventually was captured in this way -- if you read up on it, you'll find that really, there should be a fourth Shadowlord running around now. Original planned UO map, photo by Cory Doctorow, CC BY-SA Original planned UO map, photo by Cory Doctorow, CC BY-SA (Originally, the landmass of Second Age was supposed to be Ambrosia from Ultima III, and there's actually a spot up north that is where Exodus is supposed to go. We even made the art for the whirlpool that is supposed to go there, and then just never put it in. But that's a whole other story...) (Oh... and then why does the Stranger in the original UO intro movie have an Ankh on his chest? Because U9 was in development aready, and nobody had time to make a new model. So it's the same 3d model as was used in U9, which didn't ship until years later. So expedience led to a fictional glitch.) In any case, we called parallel servers "shards" and it became a term used occasionally though not universally as a term of art within the field. You'll hear folks who worked on MMOs in the 90s use server and shard interchangeably -- sometimes saying "shard" to reference a parallel server cluster rather than a physical server. So, did this database term come from a doc that I dashed off one afternoon in 1996? Umm... I am not sure. Seems like an interesting coincidence, if not. I wonder if I still have that doc... Share this post: * Click to share on Facebook (Opens in new window) * Click to share on Twitter (Opens in new window) * Click to share on Reddit (Opens in new window) * Click to share on Tumblr (Opens in new window) * Click to share on Pinterest (Opens in new window) * Click to share on LinkedIn (Opens in new window) * Click to share on WhatsApp (Opens in new window) * Click to share on Pocket (Opens in new window) * Click to email a link to a friend (Opens in new window) * More * * Click to print (Opens in new window) * Related 14 Responses to "Database "sharding" came from UO?" 1. Jim Greer says: January 8, 2009 at 2:24 pm Cool! I had kind of wondered about that myself... 2. Peter S. says: January 8, 2009 at 2:54 pm Quick! Post the doc and reference it on Wikipedia! Then sue others for patent infringement! As an aside, you had the art for the whirlpool completed?! Is there any way at all, any possibility for any sort of screenshot of the thing? If not, no big deal, but I'm suddenly intensely curious what you folks had it looking like. 3. Raph says: January 8, 2009 at 2:58 pm It was a whirlpool rendered in 3DSMax, ready to be chopped up into terrain tiles -- which I don't think ever happened. 4. Peter S. says: January 8, 2009 at 4:42 pm Ahh. Well, cool to know it was made manifest for at least a little while. 5. damijin says: January 8, 2009 at 9:16 pm Shred those shards, Jim. 6. Moorgard says: January 9, 2009 at 10:06 am You have successfully stirred up my long-dormant Ultima nerdlove! It would have been *so freaking cool* if Ultima III had been tied into UO as you describe (Ambrosia!!!). Back when I played, it felt as if UO (while enjoyable on its own) was an online game set in a shadow of the true Ultima lineage rather than an integral part of it. 7. Amaranthar says: January 9, 2009 at 10:54 am Wasn't that "The Lost Lands"? What was the thinking in surrounding it in mountains, as opposed to sea? 8. Raph says: January 9, 2009 at 11:04 am Back when I played, it felt as if UO (while enjoyable on its own) was an online game set in a shadow of the true Ultima lineage rather than an integral part of it. UO had a lot of carefully put together lore that tied to the Ultima series. Then each subsequent team pretty much moved it in different directions because there was not adequate documentation of why things were a given way, etc. For example -- originally the Virtues, in UO's time period, were not established -- they are trying to be established firmly by LB, but he faces political opposition from Blackthorn (despite their friendship). Later teams added things like Virtue Quests which suggested that they were in fact established. Wasn't that "The Lost Lands"? What was the thinking in surrounding it in mountains, as opposed to sea? http://www.usecode.org/ultima/u3/ambrosia.png http://uo.stratics.com/content/guides/champions/t2aspawn.gif Lost Lands is a fragment of Ambrosia, just a small portion of the northern end. Minax in both cases was supposed to be near the top. 9. Is MMO terminology invading database programming? | Game Pet says: January 12, 2009 at 10:43 am [...] Read | Permalink | Email this | Linking Blogs | Comments [...] 10. tom says: January 26, 2009 at 3:52 am Back in 1998-99 I helped found a company called BarrysWorld ( http://en.wikipedia.org/wiki/Barrysworld), a game service provider based in the UK. Between 1999 and 2001 I was dealing with requests to host unofficial UO 'shards' on an almost daily basis, and yes, the word 'shard' was used to explicitly describe the function of hosting a private copy of the game world. When I started reading about database 'sharding', the first thing that came to mind was those days at BarrysWorld and the idea of private MMO 'shards' - so, I agree that it is quite likely the term 'shard' in this context came from UO... 11. Web Game - Push cx says: May 9, 2009 at 6:58 am [...] web games end up sharding to cope with the volume of players. By careful game and system design, I think I can build a single [...] 12. Das Gamesystem-Modul << Zeitalter3 - Browsergames Entwicklerblog says: February 13, 2010 at 3:22 am [...] Jede Instanz der Applikation ist ein potentielles Spiel (Sharding) [...] 13. Quora says: April 6, 2011 at 10:23 am Is Ultima Online the origin of the word "shard" in distributed systems?... As a loan word from Ultima Online, "sharding" makes sense: splitting players across different servers was already a common technique, but UO popularized it, being the first massively popular MMO. And the term "sharding" is unique to UO's game fict... 14. What People Mean When They Talk About 'The Cloud' says: November 4, 2015 at 6:22 am [...] called "shards" (a term that apocryphal rumor I desperately hope is true attributes to the MMO Ultima Online ). If you are using cloud infrastructure and you're not a giant company like Amazon, you [...] Sorry, the comment form is closed at this time. Independent Games Reflections Across the Board: The "Music" Festival Finalists of Game Design: Part 1 Meta * Log in * Entries feed * Comments feed * WordPress.org Policies Disclosure and Privacy Policy Data Access Request Archives * [ ] 2024 + August + July + June + March * [ ] 2023 + September * [ ] 2022 + September + August + June * [ ] 2021 + October + September + April + March * [ ] 2019 + February + January * [ ] 2018 + November + September + July + June + May + April + March + February + January * [ ] 2017 + December + November + September + August + July + June + May + April + March + February * [ ] 2016 + October + September + August + July + May + March * [ ] 2015 + December + November + September + August + July + June + April + March + February + January * [ ] 2014 + December + November + October + September + August + July + June + May + April + March + February + January * [ ] 2013 + December + November + October + September + August + July + June + May + April + March + February + January * [ ] 2012 + December + November + October + September + August + July + June + May + April + March + February + January * [ ] 2011 + December + November + October + September + August + July + June + May + April + March + February + January * [ ] 2010 + November + October + September + August + July + June + May + April + March + February + January * [*] 2009 + December + November + October + September + August + July + June + May + April + March + February + January * [ ] 2008 + December + November + October + September + August + July + June + May + April + March + February + January * [ ] 2007 + December + November + October + September + August + July + June + May + April + March + February + January * [ ] 2006 + December + November + October + September + August + July + June + May + April + March + February + January * [ ] 2005 + December + November + October + August + July + May + April + March + February + January * [ ] 2004 + December + November + October * [ ] 2003 + September + April + March * [ ] 2002 + July + March + February * [ ] 2001 + September + January * [ ] 2000 + December + November + September + August + June + April + March + January * [ ] 1999 + November + October + September + August + July + June + May + April + March + February + January * [ ] 1998 + December + October + September + August Tags 3d web agdc art games china community management facebook flash game business game criticism game culture game design game grammar game history game industry game politics game studies gdc gdca gdco gdconline indie games metaplace metaverse metric verse muds Music playable worlds second life serious games sf social games social media speaking star wars galaxies swg theory of fun ultima online uo vw business vw design vw history vw law vw tech wordpress WoW Books (These are affiliate links) Postmortems cover Postmortems on Amazon Sunday Poems cover Sunday Poems on Amazon Theory of Fun cover A Theory of Fun on Amazon A Theory of Fun's website [Search ] [SUBMIT] Follow Me * Twitter * LinkedIn * YouTube * Facebook * Mastodon * Reddit Subscribe Email Address [ ] Subscribe Join 4,134 other subscribers RSS * RSS - Posts * RSS - Comments Upcoming Events There are no upcoming events. View Calendar Add * Add to Timely Calendar * Add to Google * Add to Outlook * Add to Apple Calendar * Add to other calendar * Export to XML Blog Stats * 3,535,226 hits (c) 1998 - 2024 Raph The views expressed here are my own, Suffusion Koster. All rights and not necessarily endorsed by any theme by reserved. former or current employer. Sayontan Sinha We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking "Accept", you consent to the use of ALL the cookies. Do not sell my personal information. Cookie SettingsAccept Manage consent Close Privacy Overview This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience. Necessary [*] Necessary Always Enabled Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously. Cookie Duration Description The cookie is set by GDPR cookie consent to cookielawinfo-checkbox-advertisement 1 year record the user consent for the cookies in the category "Advertisement". This cookie is set by GDPR Cookie Consent 11 plugin. The cookie is cookielawinfo-checkbox-analytics months used to store the user consent for the cookies in the category "Analytics". The cookie is set by 11 GDPR cookie consent to cookielawinfo-checkbox-functional months record the user consent for the cookies in the category "Functional". This cookie is set by GDPR Cookie Consent 11 plugin. The cookies is cookielawinfo-checkbox-necessary months used to store the user consent for the cookies in the category "Necessary". This cookie is set by GDPR Cookie Consent cookielawinfo-checkbox-others 11 plugin. The cookie is months used to store the user consent for the cookies in the category "Other. This cookie is set by GDPR Cookie Consent 11 plugin. The cookie is cookielawinfo-checkbox-performance months used to store the user consent for the cookies in the category "Performance". The cookie is set by the GDPR Cookie Consent plugin and is used to viewed_cookie_policy 11 store whether or not months user has consented to the use of cookies. It does not store any personal data. Functional [ ] Functional Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features. Cookie Duration Description This cookie is used to store the language lang session preferences of a user to serve up content in that stored language the next time user visit the website. __cf_bm 30 This cookie is set by CloudFlare. The cookie is used minutes to support Cloudflare Bot Management. Performance [ ] Performance Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors. Analytics [ ] Analytics Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc. Cookie Duration Description These cookies are set via embedded youtube-videos. They register anonymous statistical data on for 16 years example how many times the video is displayed and CONSENT 4 months what settings are used for playback.No sensitive 16 days data is collected unless you log in to your google account, in that case your choices are linked with your account, for example if you click "like" on a video. Advertisement [ ] Advertisement Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads. Cookie Duration Description Used by Google DoubleClick and stores information about how the user uses the website and any IDE 1 year other advertisement before 24 days visiting the website. This is used to present users with ads that are relevant to them according to the user profile. This cookie is set by 15 doubleclick.net. The purpose of test_cookie minutes the cookie is to determine if the user's browser supports cookies. This cookie is set by Youtube. VISITOR_INFO1_LIVE 5 months Used to track the information of 27 days the embedded YouTube videos on a website. This cookies is set by Youtube YSC session and is used to track the views of embedded videos. yt-remote-connected-devices never These cookies are set via embedded youtube-videos. yt-remote-device-id never These cookies are set via embedded youtube-videos. Others [ ] Others Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet. Cookie Duration Description _ir session The cookie is set by Pinterest. We do not know the exact purpose of the cookies. SAVE & ACCEPT Powered by CookieYes Logo