high scalability网站上all-time-favorites聚合下的文章的阅读笔记

大部分文章似乎有点老了,不知道现在FB、Tumblr、Pinterest、Twitter这些网站的架构是什么样子的了。

1、clustering vs sharding?自动/手动(需要去除join,添加cache,NoSQL似乎不如MySQL成熟?但HBase/Cassandra似乎又还可以)

2、技术为业务服务,架构为应用服务,so创新在于发现真正的有价值的问题(需求)

3、应用特定的数据库?物化“数据项”,无锁事务,append-only存储;为大规模scale设计:普通FS -> ceph/...(分布式对象数据库)

4、LB:缩短用户与“内容”之间的路径

5、howto protect data?howto USE them?

6、User table(存储用户信息的表)is not sharded.

7、shard with 大容量规划(means ‘hash big’)<-- add timestamp to hash key?

8、Mapping(分片/存储)& reverse-mapping(query)

9、cache:memcache/redis(支持的数据结构更丰富点)——不知道现在memcached功能是否完善了?

10、Scripting:sharding过滤器方案,迁移数据(not so good)

11、Pyres:Python over redis?(Resque -->)

12、Dev:everyone has access to everything, be careful.(统一的全局视图)小型团队用git可能并不合适,git vs svn有时候只是操作大型repo的性能原因

13、SOA:实际的db proxy也是一个服务!

14、Keep it simple & fun

15、Architect is doing the right thing,if growth can be handled by adding more of the same stuff.(水平扩展)

16、不要害怕(?)丢失部分数据,根据data性质决定CAP/BASE

17、Master-slave lag(主从复制的缺点):当然主-主复制又会引入分布式一致性问题,一开始就应该shard writes(如何真正地做无join的设计?靠增加冗余吗?)

18、keep load at <= 50%(live容量须可控)(或“留出resilience”)

19、use tool,not framework(前者意味着小型可组合,后者实际上属于侵入式设计,比如那个恶心的Spring)

20、避免(分布式下的)joins:de-normalize?从一开始就设计为可扩展/“伸展性”

21、把网站变为服务(API):twitter早期的成功做法

22、防止abuse

23、Cache vs Log:注意两者相似的地方,Cache实际上缓存的是近期的热点数据,而Log分析完后可以删除,也就是说,不会用完存储空间

24:Facebook 2011:Batching IO,避免HBase hot keys?

Java <--> Thrift <--> PHP

Sharding plan:手工切分?这应该是没有数据中心之前的做法吧

10000 writes per sec per server

25、Dropbox 2011:Python用于后端和client(python写的TortoiseHg/Mercury其实性能还不错,Sublime不也是Python写的嘛);但是它不能用于Android(-_-)

内存碎片问题

PS:rsync同步大量的深度嵌套小文件时性能差,不如一次性压缩下载

26、Anti-spam(Mollom 2011)

为保护ML算法,用户不能提交wrongly rejected的数据

免费用户的输入可帮助改进训练ML

disks -> SSD --> Cassandra:RAID 10(条带&镜像),for heavy writes & row caching;aging机制(正好可用于隐私,欧洲立法的“遗忘权”)

可以设计用HTML5 Local Storage存储用户自己的全部本地数据~

客户端LB:首先请求一个可用server list,然后顺序请求,一个不行换下一个(这里不能随便乱请求!)

对IP地址的reputation机制?

AWS虚拟服务器:IO是瓶颈,scale up

16GB的coredump分析leaks?Oh crazy

27、Redis:LPUSH/LTRIM;LREM;ZADD/ZREVRANGE/ZRANK/ZRANGE;SADD;pub/sub;通常的get/set

28、可靠性:MTTR指标 <-- MTBF

Capacity Planning & Expect Failure(k,独孤求败!)

时间: 2024-08-06 20:13:41

high scalability网站上all-time-favorites聚合下的文章的阅读笔记的相关文章

Azure网站上的PHP — 架构

Azure是一个开放而灵活的平台.您可以选择最适合或者最擅长的语言(包括 ASP.NET.PHP.Node.js.Python 和经典 ASP)创建基于Azure网站的应用程序.在随后的几篇文章中,我们将讨论Azure网站上的PHP. 首先,我们讨论Azure网站上PHP的架构. 下图描述了Windows Azure网站上PHP的架构.该架构与本地IIS上的PHP配置并无不同. PHP请求的处理流程如下: 1. 客户端HTTP请求到达HTTP.SYS(处理HTTP请求的内核模块) 2. HTTP

本地项目通过github客户端上传到github网站上

一.github客户端上传步骤 一.github客户端上传步骤1.百度搜索关键字: GitHub 离线安装包 ==> Github_3.3.4.0版本链接:https://pan.baidu.com/s/1NSnfodfK7EhhrTEmKIr3yA密码:bgtv 2.官网客户端: https://desktop.github.com/ 二.新建一个仓库 3.把本地项目拷贝到此目录下. 4.选择上传的文件 5.如果想将本地的改动提交到网站上,可以点击右上角的"Sync" 原文地址

关于spring 获取不到网站上的xsd的处理记录

前两天做一个项目还好好的,今天突然报出这个错误 cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'mvc:annotation-driven' 应该是xml文件找不到相应的xsd了,这时候我的springmvc.xml的头部是这么配置的,之前指定了版本号总报错,就把版本号删了,但是今天有没有版本号都报错: <beans xmlns="ht

下载Tomcat时Tomcat网站上的core和deployer的区别

Tomcat官网上去下载tomcat的时候总会看到下载列表中有如下内容(下面以下载6.0.43版为例): 6.0.43 Please see the README file for packaging information. It explains what every distribution contains. Binary Distributions Core: zip (pgp, md5) tar.gz (pgp, md5) 32-bit Windows zip (pgp, md5)

Java爬虫实战(二):抓取一个视频网站上2015年所有电影的下载链接

前言:这是Java爬虫实战的第二篇文章,在第一篇文章仅仅只是抓取目标网站的链接的基础上,进一步提高难度,抓取目标页面上我们所需要的内容并保存在数据库中.这里的测试案例选用了一个我常用的电影下载网站(http://www.80s.la/).本来是想抓取网站上的所有电影的下载链接,后来感觉需要的时间太长,因此改成了抓取2015年电影的下载链接. 注:文末有我抓取到的整个列表的下载链接(包括:电影名称和迅雷下载链接) 一 原理简介 其实原理都跟第一篇文章差不多,不同的是鉴于这个网站的分类列表实在太多,

一步步教你如何将项目部署到开源中国等开源网站上

本文以开源中国为例,上传到Github上可以使用类似的方法,因为它们都是使用git这个版本控制系统的.在Github上使用私有的项目会收费,而在开源中国是免费的.推荐大家支持国产! 创建一个开源中国的账号 地址 https://git.oschina.net/signup 注意不要使用QQ邮箱,因为接收邮件会不及时 创建项目 创建完成后会自动生成两个配置文件 设置公钥 设置公钥的目的:不用每次push代码到服务器输密码 进入终端,切换目录 生成秘钥 在OSChina上设置公钥 测试 克隆项目到本

数据来源等内容都公布在排名网站上

 http://www.ebay.com/cln/maniikfc_wf7zyv/-/171384741017/20150203html http://www.ebay.com/cln/bujshmkginnum/-/171478646018/20150203html http://www.ebay.com/cln/bsptaj_gwqyrz/-/171637771011/20150203html http://www.ebay.com/cln/tym-xo1t3zk/-/171637755

独立博客开张!有关读书、GTD和IT方面的内容将发布在新网站上

2015年自己建个独立博客http://www.shenlongbin.com,以后与读书.GTD和IT技术有关的主题都放在个人博客中,2015年计划基本制定,请移步到这里. 感谢博客园提供了如此优秀的平台,此网站上只更新家庭.个人兴趣爱好等博文.

Android5.0源码-国内镜像网站上用repo下载

1.找个地方git clone git://aosp.tuna.tsinghua.edu.cn/android/git-repo.git 2.把命令放到~/.bash_profile(source) 3.找个文件夹 repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-5.0.2_r1 4. repo sync 正在下载.预知后事如何,且听下回分解. 感谢清华大学.^_^ 版权声明:本文