{"id":29161,"date":"2020-06-05T15:55:29","date_gmt":"2020-06-05T19:55:29","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=29161"},"modified":"2024-12-09T08:44:59","modified_gmt":"2024-12-09T13:44:59","slug":"the-origin-of-database-sharding","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2020\/06\/05\/the-origin-of-database-sharding\/","title":{"rendered":"The Origin of Database &ldquo;Sharding&rdquo;"},"content":{"rendered":"<p><a href=\"https:\/\/www.raphkoster.com\/2009\/01\/08\/database-sharding-came-from-uo\/\">Raph Koster<\/a> (via <a href=\"https:\/\/twitter.com\/lazerwalker\/status\/1265730921489223680\">Em Lazer-Walker<\/a>):<\/p>\n<blockquote cite=\"https:\/\/www.raphkoster.com\/2009\/01\/08\/database-sharding-came-from-uo\/\">\n<p>No, &ldquo;shards&rdquo; came about specifically because when we realized we would need to run multiple whole copies of <em>Ultima Online<\/em> 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 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Britannia_(Ultima_Online)\">is described here pretty well<\/a>: 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 <strong>shards<\/strong> each held a refracted copy of Sosaria.<\/p>\n<p>[&#8230;]<\/p>\n<p>In any case, we called parallel servers &ldquo;shards&rdquo; and it became a term used occasionally though not universally as a term of art within the field. [&#8230;] So, did this database term come from a doc that I dashed off one afternoon in 1996? Umm&#8230; I am not sure. Seems like an interesting coincidence, if not.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/Shard_(database_architecture)#Etymology\">Wikipedia<\/a> references an earlier paper about <a href=\"https:\/\/dl.acm.org\/doi\/book\/10.5555\/889956\">SHARD (System for Highly Available Replicated DAta)<\/a>. I seem to recall reading about that in college, before the term could have jumped from MMOs to the mainstream via Flickr. However, SHARD was about replicating full copies of a database, not partitioning it. So the Ultima theory seems likely.<\/p>\n\n<p id=\"the-origin-of-database-sharding-update-2020-06-09\">Update (2020-06-09): See also: <a href=\"https:\/\/news.ycombinator.com\/item?id=23438399\">Hacker News<\/a>.<\/p>\n\n<p id=\"the-origin-of-database-sharding-update-2024-09-12\">Update (2024-09-12): See also: <a href=\"https:\/\/news.ycombinator.com\/item?id=41351219\">Hacker News<\/a>.<\/p>\n\n<p id=\"the-origin-of-database-sharding-update-2024-12-09\">Update (2024-12-09): See also: <a href=\"https:\/\/www.reddit.com\/r\/pathofexile\/comments\/1h8c7hw\/a_brief_explanation_of_sharding_in_software\/\">Reddit<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Raph Koster (via Em Lazer-Walker): No, &ldquo;shards&rdquo; 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 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2020-06-05T19:55:32Z","apple_news_api_id":"4ae574ba-6a4c-4319-9bdc-7c0bac2fbad1","apple_news_api_modified_at":"2024-12-09T13:45:01Z","apple_news_api_revision":"AAAAAAAAAAAAAAAAAAAAAw==","apple_news_api_share_url":"https:\/\/apple.news\/ASuV0umpMQxmb3HwLrC-60Q","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[2],"tags":[143,116,418,295,71],"class_list":["post-29161","post","type-post","status-publish","format-standard","hentry","category-technology","tag-database","tag-flickr","tag-game","tag-history","tag-programming"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/29161","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=29161"}],"version-history":[{"count":5,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/29161\/revisions"}],"predecessor-version":[{"id":46086,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/29161\/revisions\/46086"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=29161"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=29161"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=29161"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}