mysql- 开源数据库sharding技术--

mysql- 开源数据库sharding技术--

ID:9648197

大小:51.50 KB

页数:3页

时间:2018-05-04

mysql- 开源数据库sharding技术--_第1页
mysql- 开源数据库sharding技术--_第2页
mysql- 开源数据库sharding技术--_第3页
资源描述:

《mysql- 开源数据库sharding技术--》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、MySQL:开源数据库Sharding技术>>  从Shard到Sharding  Shard这个词英文的意思是碎片,而作为数据库相关的技术用语,似乎最早见于大型多人在线角色扮演游戏(MMORPG)中。Sharding姑且称之为分片。  Sharding不是一门新技术,而是一个相对简朴的软件理念。如您所知,MySQL5之后才有了数据表分区功能,那么在此之前,很多MySQL的潜在用户都对MySQL的扩展性有所顾虑,而是否具备分区功能就成了衡量一个数据库可扩展性与否的一个关键指标(当然不是唯一指标)。数据库扩展性是一个永恒的话题,MySQL的推广者经常会被问到:如在

2、单一数据库上处理应用数据捉襟见肘而需要进行分区化之类的处理,是如何办到的呢?答案是:Sharding。  Sharding不是一个某个特定数据库软件附属的功能,而是在具体技术细节之上的抽象处理,是水平扩展(ScaleOut,亦或横向扩展、向外扩展)的解决方案,其主要目的是为突破单节点数据库服务器的I/O能力限制,解决数据库扩展性问题。  事关数据库扩展性  说起数据库扩展性,这是个非常大的话题。目前的商业数据都有自己的扩展性解决方案,在过去相对来说比较成熟,但是随着互联网的高速发展,不可避免的会带来一些计算模式上的演变,这样很多主流商业系统也难免暴露出一些不足之

3、处。比如Oracle的RAC是采用共享存储机制,对于I/O密集型的应用,瓶颈很容易落在存储上,这样的机制决定后续扩容只能是ScaleUp(向上扩展)类型,对于硬件成本、开发人员的要求、维护成本都相对比较高。  Sharding基本上是针对开源数据库的扩展性解决方案,很少有听说商业数据库进行Sharding的。目前业界的趋势基本上是拥抱ScaleOut,逐渐从ScaleUp中解放出来。  Sharding的应用场景  任何技术都是在合适的场合下能发挥应有的作用。Sharding也一样。联机游戏、IM、BSP都是比较适合Sharding的应用场景。其共性是抽象出来的

4、数据对象之间的关联数据很小。比如IM,每个用户如果抽象成一个数据对象,完全可以独立存储在任何一个地方,数据对象是ShareNothing的;再比如Blog服务提供商的站点内容,基本为用户生成内容(UGC),完全可以把不同的用户隔离到不同的存储集合,而对用户来说是透明的。  这个ShareNothing是从数据库集群中借用的概念,举例来说,有些类型的数据粒度之间就不是ShareNothing的,比如类似交易记录的历史表信息,如果一条记录中既包含卖家信息与买家信息,如果随着时间推移,买、卖家会分别与其它用户继续进行交易,这样不可避免的两个买卖家的信息会分布到不同的S

5、hardingDB上,而这时如果针对买卖家查询,就会跨越更多的Sharding,开销就会比较大。  Sharding并不是数据库扩展方案的银弹,也有其不适合的场景,比如处理事务型的应用就会非常复杂。对于跨不同DB的事务,很难保证完整性,得不偿失。所以,采用什么样的Sharding形式,不是生搬硬套的。  Sharding与数据库分区(Partition)的区别  有的时候,Sharding也被近似等同于水平分区(HorizontalPartitioning),网上很多地方也用水平分区来指代Sharding,但我个人认为二者之间实际上还是有区别的。的确,Shard

6、ing的思想是从分区的思想而来,但数据库分区基本上是数据对象级别的处理,比如表和索引的分区,每个子数据集上能够有不同的物理存储属性,还是单个数据库范围内的操作,而Sharding是能够跨数据库,甚至跨越物理机器的。(见对比表格)  Sharding策略  数据Sharding的策略与分区表的方式有很多类似的地方,有基于表、ID范围、数据产生的时间或是SOA下理念下的基于服务等众多方式可选择。而与传统的表分区方式不同的是,Sharding策略和业务结合的更为紧密,成功的Sharding必须对自己的业务足够熟悉,进行众多可行性分析的基础上进行,业务逻辑驱动。  Sh

7、arding实现案例分析:Digg网站  作为风头正劲的ySQL5.x。Digg.的IO压力非常大,而且是读集中的应用(98%的IO是读请求)。因为提供的是新闻类服务,这类数据有其自身特点,最近时间段的数据往往是读压力最大的部分。  根据业务特点,Digg.根据时间范围对主要的业务数据做Sharding,把不到10%的热数据有效隔离开来,同时对这部分数据用以更好的硬件,提供更好的用户体验。而另外90%的数据因用户很少访问,所以尽管访问速度稍慢一点,对用户来说,影响也很小。通过Sharding,Digg达到了预期效果。  现有的Sharding软件简介  现在Sh

8、arding相关的软件实

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。