知识大全 开源数据库Sharding技术[1]
Posted 数据库
篇首语:听闻少年二字,当与平庸相斥。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 开源数据库Sharding技术[1]相关的知识,希望对你有一定的参考价值。
开源数据库Sharding技术[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
从 Shard 到 Sharding
Shard 这个词英文的意思是 碎片 而作为数据库相关的技术用语 似乎最早见于大型多人在线角色扮演游戏(MMORPG)中的 Sharding 姑且称之为 分片
Sharding 不是一门新技术 而是一个相对简朴的软件理念 如您所知 MySQL 之后才有了数据表分区功能 那么在此之前 很多 MySQL 的潜在用户都对 MySQL 的扩展性有所顾虑 而是否具备分区功能就成了衡量一个数据库可扩展性与否的一个关键指标(当然不是唯一指标) 数据库扩展性是一个永恒的话题 MySQL 的推广者经常会被问到 如在单一数据库上处理应用数据捉襟见肘而需要进行分区化之类的处理 是如何办到的呢? 答案是 Sharding
Sharding 不是一个某个特定数据库软件附属的功能 而是在具体技术细节之上的抽象处理 是水平扩展(Scale Out 亦或横向扩展 向外扩展)的解决方案 其主要目的是为突破单节点数据库服务器的 I/O 能力限制 解决数据库扩展性问题
事关数据库扩展性
说起数据库扩展性 这是个非常大的话题 目前的商业数据都有自己的扩展性解决方案 在过去相对来说比较成熟 但是随着互联网的高速发展 不可避免的会带来一些计算模式上的演变 这样很多主流商业系统也难免暴露出一些不足之处 比如 Oracle 的 RAC 是采用共享存储机制 对于 I/O 密集型的应用 瓶颈很容易落在存储上 这样的机制决定后续扩容只能是 Scale Up(向上扩展) 类型 对于硬件成本 开发人员的要求 维护成本都相对比较高
Sharding 基本上是针对开源数据库的扩展性解决方案 很少有听说商业数据库进行 Sharding 的 目前业界的趋势基本上是拥抱 Scale Out 逐渐从 Scale Up 中解放出来
Sharding 的应用场景
任何技术都是在合适的场合下能发挥应有的作用 Sharding 也一样 联机游戏 IM BSP 都是比较适合 Sharding 的应用场景 其共性是抽象出来的数据对象之间的关联数据很小 比如IM 每个用户如果抽象成一个数据对象 完全可以独立存储在任何一个地方 数据对象是 Share Nothing 的 再比如 Blog 服务提供商的站点内容 基本为用户生成内容(UGC) 完全可以把不同的用户隔离到不同的存储集合 而对用户来说是透明的
这个 Share Nothing 是从数据库集群中借用的概念 举例来说 有些类型的数据粒度之间就不是 Share Nothing 的 比如类似交易记录的历史表信息 如果一条记录中既包含卖家信息与买家信息 如果随着时间推移 买 卖家会分别与其他用户继续进行交易 这样不可避免的两个买卖家的信息会分布到不同的 Sharding DB 上 而这时如果针对买卖家查询 就会跨越更多的 Sharding 开销就会比较大
Sharding 并不是数据库扩展方案的银弹 也有其不适合的场景 比如处理事务型的应用就会非常复杂 对于跨不同DB的事务 很难保证完整性 得不偿失 所以 采用什么样的 Sharding 形式 不是生搬硬套的
Sharding与数据库分区(Partition)的区别
有的时候 Sharding 也被近似等同于水平分区(Horizontal Partitioning) 网上很多地方也用 水平分区来指代 Sharding 但我个人认为二者之间实际上还是有区别的 的确 Sharding 的思想是从分区的思想而来 但数据库分区基本上是数据对象级别的处理 比如表和索引的分区 每个子数据集上能够有不同的物理存储属性 还是单个数据库范围内的操作 而 Sharding 是能够跨数据库 甚至跨越物理机器的
cha138/Article/program/SQL/201311/16326相关参考
开源技术之Tomcat数据源配置总结 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 成功配置环境
Facebook开源服务器和数据中心核心技术 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs
知识大全 C#开源轻量级对象数据库NDatabase介绍[1]
C#开源轻量级对象数据库NDatabase介绍[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
第一站 走进开源数据库 %的投入 实现%的理想 在Linux这种开放源代码的操作系统已经逐渐被越来越多的企业应用时在基础软件平台的另一端开源数据库开始显山露水 近年来美国一些大企
几乎像是一年一度的仪式数据库三大巨头供应商—OracleIBM和微软正着手准备主要产品的发布展开了一场客户争夺战 但是不同于以往的竞争这次商家关注的是急剧增长的新的开源带来的威胁特别是针对低
java开源数据库项目Derby的问答 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! IBM?在
MySQL创始人宣布创建开源数据库联盟 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! MySQL
知识大全 C#开源轻量级对象数据库NDatabase介绍[2]
C#开源轻量级对象数据库NDatabase介绍[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 C#开源轻量级对象数据库NDatabase介绍[3]
C#开源轻量级对象数据库NDatabase介绍[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
人们经常说开源没有创新而是模仿这肯定是专有软件行业希望你相信的看一看目前企业中使用的一些最著名的开源项目中的活动让你不由得不同意 例如尽管开源数据库令人难以置信地广泛用于各类关键任务应用但不管是My