作者| Raph Koster
原文|https://www.raphkoster.com/2009/01/08/database-sharding-came-…
TL;DR:数据库词汇 Shard 来源于网游鼻祖 Ultima Online (网络创世纪) 🤯。
「在初创企业的分片」是一篇对于数据库可扩展性的技术文章。引起了我的留神的是这个奇异的术语:分片 (sharding)。为什么要用这种形式形容数据库呢?
所以我理解了一些相干内容,分片指运行一堆并行数据库,并查找正确的那个,而不是试图将所有货色塞进一个。
我疾速谷歌了一下,该术语应该源自一名曾在 Friendster (社交网络) 和 Flickr (图片分享网站) 工作过的人,并且维基百科前不久才加上了相干条目 )。在结尾文章的评论中有人提到了该术语在 2006 年被应用过。
Flickr 的本体是大型多人线上游戏 Game Neverending。其实,Ludicorp (Flickr 母公司) 的商业计划书中援用了我的话,并且 Stewart Butterfield (小编注:Flickr 联结创始人) 也问过我是否能够成为参谋,但我和 Sony 的合同没能承受他们邀请。唉!不过,shard 这个词必定曾经在他们办公室里传开了……因为在大型多人线上游戏中,shards 具备十分特定的含意和历史。
它指在真实世界里数据库的分区。每个并行的世界都运行雷同的动态模板数据库源,但演变出不同的运行时数据库。但这些被称为「服务器」- 比方 3D 网友祖师爷 Meridian 59 就有很多服务器,它们用数字来标识,而不是现金风行的名称。
「分片」之所以产生,是因为当咱们意识到须要运行多个残缺 Ultima Online 正本供用户连贯时,咱们须要想出一个虚构故事。我去读了一堆晚期 Ultima 的货色,并试图想出一个虚构理由:邪恶巫师 Mondain 曾试图通过将其精髓困在水晶中来管制 Sosaria。当 UltimaI 第一部结尾处 Mondain 被战胜并且水晶被粉碎时,每个水晶分身 (shard) 都持有一部分 Sosaria 的折射复制品。
这个单词是顺便选中的,因为水晶是咱们假造的。如果 Mondain 在纸张或画作上捕获了 Sosaria,我会用「残片」或「碎片」,但在第一部中提到他应用了水晶来取得力量。咱们甚至在过后探讨了「多元宇宙」等术语,认为这些都是漫画迷的怪癖,不合乎 Ultima 的格调 … 所以就用了「分身」。
当初,随着工夫的推移,每个平行的 Sosaria 宇宙都在同时演变(依照年代程序,UO 应该是在 U3 和 U4 之间的)。不同之处在于,其中一些失去了化身(由时空领主差遣),而有些则没有。其中一些被守护者俘虏,并且咱们创造了影子领主这个概念,他们实质上是从他捕捉的碎片中发明进去的邪恶分身。实际上,测试版里的分身最终以这种形式被捕捉 – 如果你读了相干材料,就会发现当初曾经有第四位影子领主了。
(原本 Second Age 的海洋应该是 Ultima III 中的 Ambrosia,并且北部实际上有一个地位能够放 Exodus。咱们甚至作了一个旋涡形态来加进去,但起初却没有装置进去。不过那是另外的故事了 …)
(以及至于为什么原始 UO 介绍中的陌生人胸前带着 Ankh?因为过后曾经开始开发 U9 了,并且没有人有空制作新模型。🙂所以就用了与 U9 雷同的 3D 模型,而 U9 直到几年后才公布。因而,为了不便起见,导致呈现虚构故障。)
无论如何,咱们将平行服务器称为「分片」,并且它成为该畛域内偶然但不广泛应用的术语。你会听到在 90 年代参加大型多人线上游戏开发的人们交替应用服务器和分片 – 有时说「碎片」是在说平行服务器集群而不是物理服务器。
那么这个数据库术语是否来自我在 1996 年一个下午匆忙写下的文档?… 我不确定。这仿佛是一个乏味的偶合。
这份 doc 我还留着吗 …
通过 Bytebase 的多租户库变更治理 Shard
Bytebase 的多租户数据库治理(Tenant Database)能够保障对多个分片 (shard) 进行对立变更,这里能够进一步浏览来自金融 SaaS 服务商长桥科技的治理实际。
💡 你能够拜访官网:https://www.bytebase.com/,收费注册云账号,立刻体验 Bytebase。