3记笔计设统系法算章九

第5节 《爬虫系统与搜索建议系统 Web Crawler & Google Suggestion》

Crawler

20190301
A Single-threaded Web Crawler
URL Queue, 广度优先搜索 : 适合线程,HashSet去重

producer consumer pattern:
buffer

孤岛?非连通图
多线程比单线程快
共享资源的写操作:互斥
A Multi-threaded Web Crawler
sleep, condition variable, sophomore

线程切换:context switch限制
端口数限制
单台机器带宽限制

A Distributed-threaded Web Crawler
没法控制某些待抓取网页的优先级?
url queue 全部网页 内存40TB?
引入data table:
每一个url变成一个task,且标记状态 idle 或 working

task service : db table
storage service : mysql
slow select: 1 trillion rows?slow?sharding 拆表 speed up
Task Tables

dead cycle? sina.com 自己相关的url
sina < 10%
multi-region? 不同地区爬网页时间不同
crawler service, task service, storage service 架设并数据同步

Typehead

google suggestion
daily active user: 500m
6times * 4letters *500m = 12b
QPS = 12b/86400 = 138k
peak QPS = 276k

log data from dataCollectionService
keyword, hit_count
…, …
两周之内以a为开头的keyword: select 操作
where keyword like ‘abc%’
order by hit_count desc
limit 10

To reduce query time
磁盘读写速率基本上是内存的1000倍
磁盘前挡一缓存memcached

Trie Tree

O(26^N) slow?
直接存结果:
[{prefix to hot keyword , hit_count}, … ] 直接存到节点上

内存的数据结构转成字符串
serialize 序列化
deserialize 解序列化
内存到磁盘的转换关系

live(用户请求中)不能更新trie 不能边读边写?
offline更新

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值