面试题 | 设计twitter搜索功能
题目
- 现在你是twitter搜索负责人,设计搜索系统,提供图片、文字搜索
- 用户1.5 billion,日活800 million
- 每天新增400 million tweets (每个tweet大小300B)
- 每天搜索次数500M
- 搜索格式包含多个words以及 and/or
- 设计高效存储和查询tweets的系统
约束
- 日存储量120GB,月3.6TB,10年432TB
- tweet数量:日400M,月12B,年144B,5年740B
- 读qps 6K, 写qps 4.5K
- 读写均衡,高并发系统
服务
high level
- 索引服务 + 存储服务
- 存储数量很大,一台机器存不下,sharding要能加快搜索;
- 存储时需要做一些优化,加快搜索;生成索引信息,提取word和对应tweetId;可以快速找到某个word对应的tweetid列表;
- 用户只会关心她关注的好友的信息,如果一个人粉丝特别多,pull可能不行;
存储
存储规模
- 机器数量:5年220TB,按照80%利用率;需要300TB;75台机器;
- 1T数据条数,1000billion数据;需要一个发号器srv,7位62编码即可实现
索引规模
预估index的大小:
- 一个word平均5B,500K个word,5 * 500KB = 2.5MB
- tweetID:每个tweetID的大小为7B,5年,7B * 740B = 5TB;考虑每条tweet有50个word,有效word是20个;每个tweetID被重复使用20次;需要100TB
- 总大小 (100TB + 2.5MB) = 100TB
机器预估:
- 内存144GB,大概需要700台机器存储index
sharding on words 主要问题
- 访问热点word,导致机器负载过高
- 分布不均匀,有些word是高频词,引用的tweet过多
- 解法:??
sharding on tweetID
- 需要遍历所有的index server,聚合tweetid集合
扩展
索引服务down掉如何处理
- 重建索引
面试题 | 设计twitter搜索功能相关推荐
- python 搜索功能_怎么python检索Twitter搜索功能?
虽然这个提问过去好久了,但是这里面有一个重要问题我想弄清楚-- 好巧,我也在看这本书,不过大概版本和题主的不太一样,我没找到这个示例-- 我自己也在做twitter的data mining,不过我用的 ...
- 设计Twitter时间轴并进行搜索
设计 Facebook 的 feed 与设计 Facebook 搜索与此为同一类型问题. 第一步:简述用例与约束条件 搜集需求与问题的范围. 提出问题来明确用例与约束条件. 讨论假设. 我们将在没有面 ...
- phpsotrm怎么 搜索功能_Windows 10 网络搜索设计太反人类?教你如何彻底关闭它
来源:太平洋电脑网 我们知道微软在Windows 10中,特别加强了系统的搜索功能,但Windows 10的搜索的确很难称得上好用.抛开效率低下.呈现结果少.造成系统卡顿等老生常谈的问题不论,在功能设 ...
- 搜索功能这样设计,大家都说我有点东西
搜索功能作为最常用也是最不起眼的功能,很多人日常会比较容易忽略它的底层逻辑,设计的时候基本都是一个搜索框解决.先不说我们手机中常用的几个软件的搜索,就算稍微复杂一点的b端产品,这样的设计在迭代评审上只 ...
- HTML 上标题栏把右标题栏遮挡,浅析标题栏设计:搜索、筛选、设置等功能都该放在右上角吗?...
标题栏是我们最常见的功能模块了,这一次来解读一下标题栏为什么是标题栏 标题栏的功能,在当下的产品环境里是有原因的,我们来看看这几个产品的标题栏. 我知道产品经理很多时候会去思考一些有的没的问题,比如微 ...
- 整理推荐比较好用的具有书签搜索功能的chrome插件
平时在整理学习chrome插件的过程中,经常会去试用各种大家推荐的插件.在去年我们的一篇文章:推荐六款好用的书签收藏夹剪藏型管理插件.这里面介绍的是收藏书签的插件.而随着我们使用chrome越来越频繁 ...
- 从0开始设计Twitter系统架构
Twitter是全球最大的社交网络之一,如果让我们从0开始设计Twitter的系统架构,该怎么做呢?有哪些服务是必须的?有哪些点需要提前考虑?这篇文章简单介绍了设计类Twitter系统的思路并在最后给 ...
- 【Android】3.12 兴趣点( POI)搜索功能
分类:C#.Android.VS2015.百度地图应用: 创建日期:2016-02-04 一.简介 POI(Point of Interest),中文可以翻译为"兴趣点".在地理信 ...
- 搜索功能:洞悉产品的绝佳入口
提到搜索功能,想必所有人都不会感到陌生.有关搜索功能的文章有很多,它们大多谈论的是搜索的方式,搜索结果的优化等.不过今天我们将从全新的角度来看待搜索,将它作为洞悉产品的绝佳方式,充分利用该功能,能够迅 ...
最新文章
- R语言成功加载rJava方法
- lenovo L480 进入bios_重装系统重启后不引导,重装系统无法进入引导
- gateway集成sentinel实现网关限流
- Codeforces 173E Camping Groups 线段树
- java中链式调用_Java及Android中常用链式调用写法简单示例
- mysql更新索引不影响业务_mysql 索引是否能提高UPDATE,DELETE,INSERT 处理速度
- 使用C#将DataTable导出到文件
- java socket编程—单客户端与服务器通信
- 译文(Artistic Style Transfer with Internal-external Learning and Contrastive Learning)
- 百度网盘提取码_百度网盘提取码查询工具,老菜建议大家收藏备用!
- 服务器至强系列cpu排行,至强系列cpu天梯图2020 英特尔至强cpu天梯图排名
- matlab 画标准正态曲线,matlab中如何画标准正态分布的密度函数曲线?
- 线性代数可以速成吗_怎样速成线性代数?
- 2021字节秋招算法岗面经——抖音推荐
- Mstar 648 平台遥控器/按键包POWER键配置
- python 中在字符串前面加上b,u,r的含义
- 浮点数到整数的快速转换
- iOS第三方登录之Twitter(登录,获取用户信息)含demo
- 计算机思维游戏,思维数字 电脑版
- 日本那些最受欢迎的产品是如何设计的?
热门文章
- Proteus仿真时出现Cannot open‘***\LISA5476.SDF’的错误!
- 【调剂】黑龙江八一农垦大学电子信息(原计算机技术)
- 水果礼包拼手气(仿红包拼手气)含拼手气红包算法
- 为王菲写的第四首歌《织女星》
- 《Java黑皮书基础篇第10版》 第10章【习题】
- 五千年来,最触动心灵的十句诗词!
- 微信开发者工具 显示区域鼠标不显示的问题
- 基于L2,1范数的特征选择方法
- 实现家里电脑文件和公司电脑文件进行同步的?
- 用什么软件测试家里网络,几个简单小技巧,告诉大家如何知道家里的网速是多少!...