冷知识|数据库 “Shard“ 一词的起源

PostgreSQL:国产数据库的技术基石与自主创新路径解析 在数据库技术领域,尤其是企业级应用和国产化替代的浪潮下,PostgreSQL(简称PG)是一个无法绕开的名字。它不仅是全球最先进的开源对象关系型数据库之一,更是众多国产数据库的“技术基石”。许多开发者在使用国产数据库时,会发现其语法、特性甚至报错信息都似曾相识,这背后往往与PostgreSQL有着千丝万缕的联系。本文将深入探讨PostgreSQL的技术内核、其在中国数据库生态中的核心地位,并通过实战演示,帮助你理解从“基于开源”到“自主创新”的技术路径。无论你是正在选型的架构师,还是希望深入理解数据库底层原 阅读详情

作者| Raph Koster 原文|https://www.raphkoster.com/2009/01/08/database-sharding-came-from-uo/


TL;DR:数据库词汇 Shard 来源于网游鼻祖 Ultima Online (网络创世纪) 🤯。

file

「在初创企业的分片」是一篇关于数据库可扩展性的技术文章。引起了我的注意的是这个奇特的术语:分片 (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 之间的)。不同之处在于,其中一些得到了化身(由时空领主派遣),而有些则没有。其中一些被守护者俘虏,并且我们发明了影子领主这个概念,他们本质上是从他捕获的碎片中创造出来的邪恶分身。实际上,测试版里的分身最终以这种方式被捕获 - 如果你读了相关资料,就会发现现在已经有第四位影子领主了。

file

(本来 Second Age 的陆地应该是 Ultima III 中的 Ambrosia,并且北部实际上有一个位置可以放 Exodus。我们甚至作了一个旋涡形状来加进去,但后来却没有安装进去。不过那是另外的故事了...)

(以及至于为什么原始 UO 介绍中的陌生人胸前带着 Ankh?因为当时已经开始开发 U9 了,并且没有人有空制作新模型。🙂所以就用了与 U9 相同的 3D 模型,而 U9 直到几年后才发布。因此,为了方便起见,导致出现虚构故障。)

无论如何,我们将平行服务器称为「分片」,并且它成为该领域内偶尔但不普遍使用的术语。你会听到在 90 年代参与大型多人线上游戏开发的人们交替使用服务器和分片 - 有时说「碎片」是在说平行服务器集群而不是物理服务器。

那么这个数据库术语是否来自我在 1996 年一个下午匆忙写下的文档?...我不确定。这似乎是一个有趣的巧合。

这份 doc 我还留着吗...

通过 Bytebase 的多租户库变更管理 Shard

Bytebase 的多租户数据库管理(Tenant Database)可以保证对多个分片 (shard) 进行统一变更,这里可以进一步阅读来自金融 SaaS 服务商长桥科技的管理实践。


💡 你可以访问官网,免费注册云账号,立即体验 Bytebase。

Elasticsearch5.x-head Chrome插件:集群可视化管理工具 搜索引擎是信息检索系统,用于存储、检索和分析数据。传统的搜索引擎如Google和Bing,主要是面向网页内容的索引和搜索。而Elasticsearch这样的全文搜索引擎,专注于存储大量数据并提供快速的搜索结果,它支持结构化和非结构化数据,对于大数据分析和实时搜索有着独特的应用。随着数据量的激增,对搜索的实时性和准确性要求也越来越高。Elasticsearch作为一款高性能的搜索和分析引擎,在大数据场景下得到了广泛的应用。然而,在日常的维护和管理工作中,缺少直观且功能强大的工具是一个问题。 阅读详情

相关推荐

shard:GUI文件加密工具

碎片 Shard 是一种加密工具,可让您将文件拆分为“分片”,因此只有将一定数量的分片重新组合在一起才能恢复原始文件。 警告: Shard 是实验性软件,其安全性尚未得到验证。 请不要依赖 Shard 来获取重要文件。 截图 技术 Shard 使用 Shamir 秘密共享,由 Daniel Silverstone 编写的 libgfshare 加密库实现。 每个分片与加密文件的大小相同(加上一个小标题)。 这个大小对于提供信息论安全性是必要的,这意味着没有足够分片的人可能无法重建有关原始文件的任何信息。 有关其工作原理和原因的更多信息,请参阅 libgfshare 文档。 作者 Shard 是哈佛图书馆创新实验室的一个项目,得到了奈特基金会原型基金的支持。

跟我一起云计算(5)——Shards

什么是sharding Sharding的基本思想就要把一个数据库切分成多个部分放到不同的数据库 (server)上,从而缓解单一数据库的性能问题。不太严格的讲,对于海量数据的数据库,如果是因为表多而数据多,这时候适合使用垂直切分,即把关系紧密(比如同一模块)的表切分出来放在一个server上。如果表并不多,但每张表的数据非常多,这时候适合水平切分,即把表的数据按某种规则(比如按ID ...

504

MongoDB资料shard,oplog等

MongoDB资料MongoDB资料MongoDB资料MongoDB资料MongoDB资料MongoDB资料MongoDB资料MongoDB资料

数据库 shard 分片存储

2.1.1什么是数据切分 "Shard" 这个词英文的意思是"碎片",而作为数据库相关的技术用语,似乎最早见于大型多人在线角色扮演游戏中。"Sharding" 姑且称之为"分片"。Sharding 不是一门新技术,而是一个相对简朴的软件理念。众所周知,MySQL 5 之后才有了数据表分区功能,那么在此之前,很多 MySQL 的潜在用户都对 MySQL 的扩展性有所顾虑,而是否具备分区功能就成

zhuyijian135757的专栏 9153

shard解包工具

ios的接封包工具,很好用啊

TwinCAT3 Modbus-TCP Client/Server使用

/起始地址是12289//起始地址是12294。

panjinliang066333的博客 7736

数据库分片(Sharding):分表+分库+分片+分区

在字段很多的情况下(例如一个大表有100多个字段),通过"大表拆小表",更便于开发与维护,也能避免跨页问题,MySQL底层是通过数据页存储的,一条记录占用空间过大会导致跨页,造成额外的性能开销。但是如果取得页数很大,情况则变得复杂很多,因为各分片节点中的数据可能是随机的,为了排序的准确性,需要将所有节点的前N页数据都排序好做合并,最后再进行整体的排序,这样的操作时很耗费CPU和内存资源的,所以页数越大,系统的性能也会越差。表中ID增长的步长是库的数量,起始值依次错开,这样能将ID的生成散列到各个数据库上。

qq_28097205的博客 3270

STM32F030F4P6 ADC多通道定时器触发DMA搬运

主函数中等待转换完成的标志位,然后打印出来。ADC回调函数中将数值赋值给变量。配置定时器1s读一次。

qq_24426625的博客 1358

Elasticsearch 中的一些重要概念: cluster, node, index, document, shards 及 replica

当我们开始使用Elasticsearch时,我们必须理解其中的一些重要的概念。这些概念的理解对于以后我们使用Elastic栈是非常重要的。在今天的这篇文章里,我们先来介绍一下在Elastic栈中最重要的一些概念。 首先,我们来看下一下如下的这个图: Cluster Cluster也就是集群的意思。Elasticsearch集群由一个或多个节点组成,可通过其集群名称进行标识。通常这个........................

Elastic 中国社区官方博客 3万+

echarts实现3D地图——map3D

【代码】echarts实现3D地图——map3D。

xiaoququ的博客 7324

Ubuntu下Charm-Crypto安装

经过一下午的努力终于是把Charm-Crypto给安上了,经过查询资料,大致有三种方案(两坑一可行)。 适用于我的电脑的是Ubuntu 18.04版本。 第一种方案是根据连接https://pypi.org/project/charm-crypto/的教程进行安装,但是该方案的优势在于下载快速,缺陷在于Ubuntu系统仅仅更新到13+版本。 第二种就是网络博客上的介绍,内容与第一种较类似,但是有16+,18+成功的例子,缺点就是bug太多,我大部分时间都耗在了这上边,而且还没有成功。 第三中是github上

Mr.Yi的博客 2284

mongodb 集群shard_MongoDB分片(Sharding)技术

分片(sharding)是MongoDB用来将大型集合分割到不同服务器(或者说一个集群)上所采用的方法。尽管分片起源于关系型数据库分区,但MongoDB分片完全又是另一回事。和MySQL分区方案相比,MongoDB的最大区别在于它几乎能自动完成所有事情,只要告诉MongoDB要分配数据,它就能自动维护数据在不同服务器之间的均衡。2.1 MongoDB分片介绍2.1.1 分片的目的高数据量和吞吐量的...

weixin_39843847的博客 285

深度学习(Deep Learning, DL)简介

深度学习(Deep Learning, DL)是机器学习的一个子领域,主要使用多层神经网络来处理复杂的数据和任务。深度学习通过模拟人脑的神经网络结构,能够自动提取特征并进行高效的模式识别和预测。

qq_28791753的博客 1万+

PostgreSQL国产数据库:从“套壳”争议到分布式架构实战

数据库作为现代信息系统的核心组件,其架构设计与技术选型直接影响着系统的稳定性、扩展性与安全性。在众多数据库技术中,PostgreSQL以其经典的单机内核架构、完善的SQL标准支持以及宽松的BSD许可证,成为许多国产数据库发展的“黄金基座”。基于此,国产数据库厂商通过深度改造,实现了从单机到分布式集群的演进,解决了水平扩展、云原生部署等关键工程问题。这一过程涉及分布式SQL引擎、数据分片、分布式事务等核心技术,其价值在于为金融、政务等关键领域提供了高性能、高可用的数据管理方案。当前,基于PostgreSQL的

weixin_34245749的博客 413

遗传算法解整数规划IntCon

x = ga(fun,nvars,A,b,[],[],lb,ub,nonlcon,IntCon) IntCon就是代表整数的参量,描述的是哪几个自变量是0-1整数变量。比如navrs设置有4个变量,设置IntCon为[2 3],代表第2和第3个变量是整数。 再比如设置IntCon=2:2:nvars,代表偶数项的变量是整数。 值得注意的是一旦设置了非空的IntCon,则Aeqandbeqmust be an empty entry ([]), andnonlconmust re...

jianti9962的博客 9220

高斯过程的数学理解

G澳大利亚的过程是有益的,特别是当我们有少量数据时。当我在制造业担任数据科学家时,我们的团队使用这种算法来揭示我们接下来应该进行哪些实验条件。但是,此算法不如其他算法流行。在这篇博客中,我将通过可视化和 Python 实现来解释高斯过程 [1] 的数学背景。

gongdiwudu的专栏 3611

45.大数据之旅——java分布式项目06

Redis介绍 Redis 介绍 Redis是REmote DIctionary Server(远程字典服务器)的缩写,它以字典结构(key-value键值对结构)存储数据,并允许其他应用通过TCP协议读写字典中的内容。所以,redis是一个key-value存储系统,或者说是一个key-value数据库。 Redis是用C语言开发的,并提供了几十种不同编程语言的客户端库,即我们用java语言也...

零零天 413

【STM32实物】基于STM32设计的智能垃圾桶(语音、颜色识别、称重、光强、烟雾、人体识别、步进电机、水泵等)_资料编号25

基于STM32的语音识别垃圾桶系统以STM32F103C8T6为主控,采用18650可充放电锂电池组供电。硬件组成模块由5V步进电机马达与ULN2003驱动板、HX711压力传感器模块、DC5V水泵与MOSFET驱动板、0.96寸OLED显示屏、四个轻触按键、四个TCRT5000红外反射传感器、四个SG90舵机、SU-03T1语音模块、光敏电阻模块、MQ-2烟雾传感器模块、TCS34725颜色识别模块、蜂鸣器、LED灯构成。通过编写C语言软件程序,实现各硬件模块的协同工作。

嵌入式阿齐Archie 1万+

ElasticSearch核心概念讲解

目录 1、es的前世今生 2、es的核心概念 3、es与数据库的对比 1、es的前世今生 Lucene 是最先进的,功能最强大的搜索库,但是直接基于Lucene开发十分复杂,api非常复杂,体现在实现一个简单的功能要实现大量的代码,而且需要我们深入理解其底层原理,比如各种索引结构等; ElasticSearch : 基于Lucene进行封装,一定程度上隐藏了复杂性,提供了简单的api接...

IBLiplus的博客 609

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Elastisearch入门——(3)剖析Elasticsearch核心概念:NRT、索引、分片、副本等

1、lucene和elasticsearch的前世今生 lucene,最先进、功能最强大的搜索库,直接基于lucene开发,非常复杂,api复杂(实现一些简单的功能,写大量的java代码),需要深入理解原理(各种索引结构) elasticsearch,基于lucene,隐藏复杂性,提供简单易用的restful api接口、java api接口(还有其他语言的api接口) (1)分布式的文档存储引擎 (2)分布式的搜索引擎和分析引擎 (3)分布式,支持PB级数据 开箱即用,优秀的默认参数,不需要任何额外设置,

The shortest answer is doing。 265

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

04_手工画图剖析Elasticsearch核心概念:NRT、索引、分片、副本等

1、lucene和elasticsearch的前世今生2、elasticsearch的核心概念3、elasticsearch核心概念 vs. 数据库核心概念。

chishing943的博客 1049

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Redis-“自动分片、一定程度的高可用性”(sharding水平拆分、failover故障转移)特性(Sentinel、Cluster)

sharding:水平拆分的支持replication:作为读写分离和故障转移的基础fail-detect:和replication配合,支撑故障转移cluster(all-in-one):独立完成上面三个的这样的完整的分布式解决方案Redis集群是一种Redis安装方式,提供数据在多个Redis节点间的自动分片和一定程度的高可用性。手动配置:通过配置文件和命令行工具手动设置集群。使用redis-trib.rb:一个Ruby脚本,用于创建和管理集群。

sq2048935747@163.com的博客 1495

MongoDB分片集群与监控命令

MongoDB分片集群与监控命令部署分⽚集群MongoDB 监控命令 MongoDB分⽚(Sharding)技术 分⽚(sharding)是MongoDB⽤来将⼤型集合分割到不同服务器(或者说⼀个集群)上所采⽤的⽅法。尽管分⽚起源于关系型数据库分区,但MongoDB分⽚完全⼜是另⼀回事。 和MySQL分区⽅案相⽐, MongoDB的最⼤区别在于它⼏乎能⾃动完成所有事情, 只要告诉MongoDB要分...

weixin_44848382的博客 745

MongoDB分⽚(Sharding)技术

一、MongoDB分⽚(Sharding)技术 分⽚(sharding)是MongoDB⽤来将⼤型集合分割到不同服务器(或者说⼀个集群)上所采⽤的⽅法。尽管分 ⽚起源于关系型数据库分区,但MongoDB分⽚完全⼜是另⼀回事。 和MySQL分区⽅案相⽐, MongoDB的最 ⼤区别在于它⼏乎能⾃动完成所有事情, 只要告诉MongoDB要分配数...

coisini-ye 326

Elasticsearch学习笔记

2004 年 Shay Banon 基于 Lucene 开发了 Compass,2010 年 重写了 Compass,取名 Elasticsearch,使其支持分布式,可水平拓展,并提供 restful 接口,让任何编程语言进行使用。引擎,可以从海量的数据中高效的找到相关信息。ES 常常搭配一些产品提供一些解决方案,如常提到的 ELK 就是,ES,Logstash 和 Kibana 的统称,下图很好的描述了 ES 家族及其生态。ES 物理架构(集群,节点,shard 等)的介绍。高性能,非 T +1。

Java架狗师知识框架速查表 189
上一篇: SQL Chat 更新 - 用户注册,早鸟套餐,GPT-4,新增支持数据库
下一篇: 构建 AI 应用:开源 infra 项目指南
Bytebase
博客等级 码龄5年 1349粉丝 258原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值