您现在的位置:首页
--> 系统架构
在前文《多IDC的数据分布设计(一)》中介绍了多IDC数据一致性的几种实现原理,遗憾的是,目前虽然有不少分布式产品,但几乎都没有开源的产品专门针对IDC来优化。本文从实践的角度分析各种方法优缺点。背景资料 Latency差异 Jeff Dean提到不同数据访问方式latency差异 Numbers Everyone Should Know L1 cache reference 0.5 ns Branch mispredict 5 ns L2 cache reference ...
上个月跟某个朋友谈及多IDC数据同时读写访问的问题,当时觉得有不少解决方案,但觉得思路还不够清晰。最近看了Google App Engine工程师Ryan Barrett介绍GAE后端数据服务的演讲稿Transactions Across Datacenters(视频),用Ryan的方法来分析这个问题后就豁然开朗。按Ryan的方法,多IDC实现有以下几种思路。一、Master/slave方式这个是多机房数据访问最常用的方案,一般的需求用此方案即可。因此大家也经常提到“premature optimi...
现在很多国内公司都纷纷开始了key-value的nosql存储方式,然而,从什么时候开始key-value会变得这么流行呢?是风靡一时,还是顺应时代的潮流?前后数一数,有豆瓣网的beandb、有新浪的SDD、小道...
昨天有幸邀请到周爱民先生在懒懒交流会上分享《架构,框架和库》,很精彩睿智的讲演,受益颇多。其中提到对架构的一个描述: 架构是把握问题的关键,平衡设计。 很认可。下面是我的些许理解: 什么是把握?在武术届有一种器械训练方式是“抖大杆”:一条白蜡木做的大杆,杆长超过两米,训练者一手把杆,一手握住杆的底部,全身配合双手,将杆抖出各种样式。把和握是两个不同的动作,把的是方向,握的是基底。把握是一种掌控,武...
待月西厢下,迎风户半开。隔墙花影动,疑是玉人来。最近推上最流行的一个关键词是”西厢计划”, 这个计划名字取得很浪漫,客户端叫做张生,对,就是西厢记里面那个翻墙去见崔莺莺小姐的张生;显然,服务器端必然叫做崔莺莺。客户端的张生是最重要的部件,可以不依赖于服务端工作。因为西厢计划的作者只是简要的介绍了一下原理,其他报道又语焉不详,我当时就觉得很好奇,花了昨天一个晚上详细读了一下源代码,终于知道怎...
LightCloud是最近看到的一个比较轻巧的分布式key-value数据库,尽管这类软件已经让人觉得审美疲劳,但我仍然觉得它的设计思路值得一提。特色除开其项目主页上列出来的特点不提,我觉得还能数得上的特色有: 阅读全文(1472字)
图片是网站上很重要的资源,用户发布的产品图片,用户的logo,AV男,兽兽女,犀利哥等等等等,一个稍具规模的网站,图片的数量可能是千万级,这种资源的特点就是文件小,数量大,每个文件在几字节到几K不等,所以针对图片的访问,基本是非常离散的IO,考验的是系统的磁盘并发和CPU处理能力一般网站,图片都是存放专门的图片服务器,可集中也可以分布式,比如有条件的可以购买昂贵的NAS存储,由主机拖着,以NFS或者HTTP的方式,供前...
最近在做项目的时候,遇到一个问题,即结构体内的字段可能会在未来的时间内不停的增加(不会减少或者删除),所以在打包解包的时候就会涉及到版本兼容的问题,并且是向前和向后同时...
很多人都熟悉Twitter访问故障时候那条白色的鲸鱼。今年新推出的Twitter Engineering Blog讲述了Twitter白鲸技术故障的原因及解决思路。这是到目前为止Twitter公开的最底层的一篇技术资料。 http://engineering.twitter.com/2010/02/anatomy-of-whale.html 当Web Server发生503错误后,Twitter配置了一个前端鲸鱼的显示页面。Twitter对鲸鱼页面有监控体系,当每秒超过100个鲸鱼就会引起报警。 为什么在单位时间内会有大量的”...
在2009年Facebook Developer Garage Shanghai活动上,Five Minutes程延辉 介绍开心农场架构,让大家了解了SNS game的一些挑战和设计模式。由于农场游戏风靡全球,最近highscalability.com网站采访了美版开心农场FarmVille的Luke Rajlich,他介绍了FarmVille的部分架构资料(1)。 (Via: highscalability.com) 所有模块都是一个可降级的服务 For any web application, high latency kills your app and highly variable latency eve...
章文嵩博士(LVS开源项目创始人)进入淘宝好几个月了,今天是他第一次讲解LVS的实现原理。作为DBA的一员,终于近距离膜拜了大牛。讲解的内容就不具体介绍了,在LVS官方网站上面可以找到。PPT的内容和网站上基本上一样,只是讲解人是章博士本人。我在这整理一下自己的理解,不对请大家指正。 ^_^组成LVS最重要的部分有三个:请求分发服务器、处理服务器、共享存储。典型的Web集群并不需要共享存储,只有请求分发服务器和处理服务器...
• 分布式之后的变化
在经历了2009年的分布式启步之后,经过改造的数据库系统性能得到极大的提升,但这个变化仍然不构成今天这篇文章的主题,我想要说的是另外一方面的变化,这个变化在某种程度上影响着当前DBA的角色变化问题。 在分布式数据库时代,开发DBA的开发支持工作相比于以前,会有更多的系统思考问题的机会,会结合应用来设计量身定做的分布式数据库系统,如果一个DBA对业务有着深刻的理解,深刻理解数据库原理,既具有整体性的架构思维,...
在读《Web信息架构》的时候第九章讲到叙词表、受控词表和元数据。当时书中的定义很模糊,所讲的篇幅也少,就没有在意,一直也没有能完全理解。今天在读《锦绣蓝...
这几天在做一个API的时候,由于后端服务器量太多,导致前段webserver的CGI连接数过多,所以,不得不使用连接池来进行管理。(好吧,我知道说出来有点恐怖,600台webserver,125台32G的cache服务器...
一个数据库的同步系统,可以分为三部分:抓取变化,传输和加载。抓取数据库变化,最通常的做法是用trigger记录到表中,或者通过解析Oracle redo log中的信息来抓取。传输是将数据库变化记录到特定格式的文件中,通过网络推送到目标数据库上。加载则是指在目标数据库上应用这些变化(SQL),这里主要是讨论并行加载的实现思路。我们通过trigger或者redo log得到了数据库变化的事务流,这个流是按照事务的提交顺序排列的,最简单的...
章文嵩博士(LVS开源项目创始人)进入淘宝好几个月了,今天是他第一次讲解LVS的实现原理。作为DBA的一员,终于近距离膜拜了大牛。讲解的内容就不具体介绍了,在LVS官方网站上面可以找到。PPT的内容和网站上基本上一样,只是讲解人是章博士本人。我在这整理一下自己的理解,不对请大家指正。 ^_^组成LVS最重要的部分有三个:请求分发服务器、处理服务器、共享存储。典型的Web集群并不需要共享存储,只有请求分发服务器和处理服务器...
• 网址缩短服务
前一段时间帮一个朋友做了一个非常简单的网址缩短服务,已经上线运行了一段时间,这里把当时设计的一些想法分享出来,等有时间我会把代码也发布出来,程序很简单,用 web.py 做的。网址缩短服务需要考虑两个问题,第一个问题是如何有效地查询,即,作为约束条件,在访问"短网址"的时候,它必须能够迅速的将结果返回;第二个问题是如何有效地将写操作复制出去。还有一点就是,缩短形成的短网址要真的越短越好。接口整个服务包括两个...
摘要:在进行互联网用户浏览行为的定量研究中,我们采用数据挖掘的方式对网站日志进行分析,用可视化技术展现日志的有效信息,开发了一个基于网站日志的可视化分析系统。这个分析系...
近3天十大热文
- [70] IOS安全–浅谈关于IOS加固的几种方法
- [69] Twitter/微博客的学习摘要
- [64] 如何拿下简短的域名
- [63] android 开发入门
- [62] Go Reflect 性能
- [61] find命令的一点注意事项
- [59] 流程管理与用户研究
- [58] 图书馆的世界纪录
- [57] Oracle MTS模式下 进程地址与会话信
- [56] 【社会化设计】自我(self)部分――欢迎区
赞助商广告