刚才看过了High Scalability的新文:SIFY.COM ARCHITECTURE - A PORTAL AT 3900 REQUESTS PER SECOND。构架里有许多有意思的地方,他们在GFS上存储所有数据,没有DB,没有NoSQL,而是使用Apache Solr来做数据的索引。使用了Drools这个rule引擎来处理缓存过期的问题。文章的最后把他们在构架进化过程的问题也抛出来了,这一点很不错,弯路谁没走过,把这样的经验分享出来是相当不错的。
从抛出来所遇到的问题和解决方法来看,系统重启以解决还是相当的普遍。
Recently in arch Category
High Scalability有篇基于内存构建云的展望。顺手做一下笔记:
- Google的一个查询能够在200ms之内完成,其性能主要来源就是索引信息完全在内存里。数以千记的服务器处理每一个查询,以使搜索结果能立刻返回。
- Linkedin和digg都把自己的社会关系网络给塞到内存里了。
- Facebook使用了800个memcached,存储了25T的数据,并且保持了99%的cache命中率。
- 在基于内存的结构中,内存将是一套存储系统。与基于缓存的结构不同之处是,内存中的数据即是最终数据。
- 缓存系统是以最小化磁盘读取数据的瓶颈为目的,而内存系统则可以定址整个应用的栈。 数据存储在内存里比之传统方式将获得更高的可用性。
- 内存=高带宽和低传输时间。
- 内存的带宽是5GB/s,硬盘是100MB/s。内存比硬盘快数百倍。
- 硬盘的读传输时间大约在几秒的范围之内,内存则在5纳秒之内。内存比硬盘快了2000倍。
- 内存是新的硬盘。
- 通过网络在内存中提交一个事务要比写在硬盘上快。同样的读内存也要比读硬盘快。
- 所以思想就是要跳过硬盘。
- 硬盘是新内存,内存是新缓存。50个硬盘的集群可以达到与内存相同的带宽。但是传输时间上的问题就要靠组织数据结构和优化算法实现了。
Update: 刚才看到了几幅图和这个题很近。
![Reblog this post [with Zemanta]](http://img.zemanta.com/reblog_e.png?x-id=ae2c25f9-de37-4918-851f-760b6316b98b)
