Youku summary
Youku
statistics
2010年,pv达到17亿。
database evolution
- 单台数据库服务器
- 主从复制
- SSD优化
- 垂直分库
- 水平分库
The master and slave duplication can bring some performance bottleneck.
- 写入无法扩展
- 写入无法缓存
- 复制延时
- 锁表率上升
- 表变大,缓存率下降
vertical sharding
优点:业务切割,不同的业务数据放到不同的数据库服务器。不会有影响,并且有负载分流作用,大大提升了数据库的吞吐能力。
缺点:某些业务或多或少的存在联系,并且不能解决单张数据表数据暴涨问题。
horizontal sharding
将用户按照一定的规则(id hash)分组,一组用户的数据放到一个数据库分片中,即一个shard。这样随着用户增多,只需更多的服务器。
查找用户所属sharding,可以建立一张用户和shard关系的表,每次先去查询获得所在的shard id。
水平分库,带来另外一个问题,如何解决跨shard的查询,尽量不夸shard查询,也可以通过多维分片索引、分布式索搜引擎,最差的可以通过分布式数据库查询(这个性能消耗比较大)。
cach
youku没有使用内存缓存,内存缓存缺点如下。
- 内存拷贝,内存锁
- 删除内容时,缓存的处理比较麻烦
CDN
youku采用了CDN确保用户访问质量。CDN可以保证分布在各地的用户进行就近访问。