整套大数据学习资料(视频+笔记)百度网盘无门槛下载:http://www.edu360.cn/news/content?id=3377

13.6.1成功的服务

hadoop 花牛 13℃ 0评论

这里将简单介绍一个典型的RDBMS如何进行扩展。下面给出一个成功服务从小到大的生长过程。

(1) 服务首次提供公开访问。

将服务从本地工作站迁移到拥有良好模式定义的、共享的远程MySQL实例上。 

(2) 服务越来越受欢迎;数据库收到太多的读请求

memcached来缓存常用査询结果。这时读不再是严格意义上的ACID;缓存数据必须在某个时间到期。

(3) 对服务的使用继续增多;数据库收到太多的写请求。

通过购买一个16核、128 GB RAM、配备一组15k RPM硬盘驱动器的增强型服务器来垂直升级MySQL。非常昂贵。

(4) 新的特性增加了查询的复杂度;包含很多连接操作。

对数据进行反规范化以减少连接的次数。(这和DBA培训时所教的不一样!)

(5) 服务被广泛使用;所有的服务都变得非常慢。

停止使用任何服务器端计算(server-side computation)。

(6) 有些查询仍然太慢。

定期对最复杂的查询进行“预物化”(prematerialize),并尝试在大多数情况下停止使用连接。

(7) 读性能尚可,但写仍然越来越慢。

放弃使用二级索引和触发器。(没有索引了?)

迄今为止,如何解决以上扩展问题并没有一个清晰的解决办法。无论怎 样,都需要开始横向进行扩展。可以尝试在大表上进行某种分区或查看一 些能提供多主控机的商业解决方案。


无数应用、行业以及网站都成功实现了 RDBMS的可伸缩性、容错和分布 式数据系统。它们都使用了前面提到的很多策略。但最终,你所拥有的已 经不再是一个真正的RDBMS。由于妥协和复杂性问题,系统放弃了很多易 用性特性。任何种类的从属复本或外部缓存都会对反规范化的数据引入弱 一致性(weak consistency)。连接和二级索引的低效意味着绝大多数査询成为 主键査找。而对于多写入机制(multiwriter)的设置很可能意味着根本没有实 际的连接,而分布式事务会成为一个噩梦。这时,要管理一个单独用于缓 存的集群,网络拓扑会变得异常复杂。即使有一个做了那么多妥协的系 统,你仍然情不自禁会担心主控机崩溃或担心在几个月后,数据或负载可 能会增长到当前的10倍。

转载请注明:全栈大数据 » 13.6.1成功的服务

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址