Flickr 的 DBA Dathan Pattishall 在前几天的 MySQL 大会上分享了 Scaling Heavy Concurrent Writes In Real Time (Record every Referral for Flickr Realtime) ,其中介绍了 Flickr Stats 的设计经验。国内好多 Web 站点其实也在设计类似的功能,只是不知道细节罢了。
数据结构原型
字段 数据类型
Path_query Varchar(255) PK
Domain Varchar(50)
Owner Bigint
When Date
Object-ID Bigint
Object-Type Tinyint
Counts and stuff Various ints May be some keys
主键是字符串,开销太大。其他的索引如果做主键,也比较大。当表大小超过内存的时候,插入速度很慢,I/O 能力也上不来。
优化数据结构
数据预处理,通过 CONV(SUBSTR(MD5(Url),0,16),16,10) 把 Path_query 修改为 64 位的 ID (8字节), 主键为 ID+Owner+object+object-type,这个统计信息很容易抽象到一个数据对象,这个索引的设计也在于此。
另外补充一点,利用 PHP 的 ip2long() 和 long2ip() 函数对 IP 地址作预处理,耗费的存储空间只为原来地 25%,这是个很有趣的技巧。
数据 Sharding
对于海量的数据,以一个礼拜为间隔,水平分割。按照不同的数据力度每周一个表,每年一个全局表,再加上一个汇总表。数据量越大,InnoDB 存储引擎针对字符串的索引浪费的空间就越大。单个查询的 I/O 也自然大了起来。
所有应用对 DB 的响应要求 是 300 毫秒。但高并发写入的时候响应时间就糟糕起来。Flickr 的 Java 牛人实现了 Referral 队列,每 4000 条做批量处理。这样 IO 拥塞的就解决掉了。
总体的服务器规模过去 介绍过,对专业版用户的数据是永久保留的,而普通用户则只保留几周,为节省空间,采用 MyISAM 引擎,当用户转为专业版时,迁移数据。
补充一下,抓取 URL 是用的 curl 。最后,这篇 PPT 在线观看。
作者: Fenng
网址: http://www.dbanotes.net/arch/flickr_referral_design.html
[
点击查看详细]
分享到:
相关推荐
dataset_coco.json+dataset_flickr8k.json+dataset_flickr30k.json
python作业-基于Flickr30k数据集实现图像文本跨模态搜索python源码+数据集+测试界面+项目说明.zip 已获导师指导并通过的97分的高分期末大作业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保...
Flickr是用户分享图片和视屏的社交网络,在此数据集中,每一个节点都是Flickr中的用户,每一条边都是用户之间的好友关系。另外,每一个节点都有标签,用于标识用户的兴趣小组
Flickr API 的使用介绍与例程,.Net版本-Flickr API introduction and routine use,. Net version
flickr-uploader, 上传一个媒体目录到 Flickr,作为你本地存储的备份 flickr上传器上传一个媒体目录到 Flickr,作为你本地存储的备份。有兴趣帮助管理请求请求和...插件功能:在Flickr帐户( JPG,png ) 上上传图片。R
flickr是最好的相册网站,提供丰富的接口
flickr.mat数据集,可以用于网络表示学习的数据集,论文中常用
flicrk8k 数据集。 用于image caption等相关数据的处理
UICollectionView测试代码使用的Flickr类
图文并茂的说明了flickr系统的架构
将视频分享到youtube,vimeo,facebook和flickr功能ios源码.rar
flickr官方上传工具,支持mac,支持分组浏览,建立相册。
Laravel开发-flickr-laravel5 用于Flickr的Laravel 5包
使用深度学习和Flickr-8k数据集进行自动图像字幕。 还对Xception模型和Inception模型进行了比较。 这是使用卷积神经网络和一种递归神经网络(LSTM)为所有类型的图像生成标题和替代文本的最简单方法。 关于 图像特征...
flickr flag 论文 好东西当然自己用 我自己保存的资料你们不要下载了 我要自己写论文当参考呢
Flickr 系统结构简介 涉及PHP, 数据库, 分布系统等等
关于如何处理Flickr网站照片地理信息数据的论文
flickr 是一个上传照片的网站,并且提供各种语言的api供用户自己开发客户端来对flickr的网站上的照片进行操作。这是我自己写的一个客户端,以后可能还会写更完善的客户端出来。
Flickr SWC格式文件,包涵获取FlickrAPI的方法,类库等,官方
flickr8k验证集json文件 图像描述数据集