题目

  • 现在你是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搜索功能相关推荐

  1. python 搜索功能_怎么python检索Twitter搜索功能?

    虽然这个提问过去好久了,但是这里面有一个重要问题我想弄清楚-- 好巧,我也在看这本书,不过大概版本和题主的不太一样,我没找到这个示例-- 我自己也在做twitter的data mining,不过我用的 ...

  2. 设计Twitter时间轴并进行搜索

    设计 Facebook 的 feed 与设计 Facebook 搜索与此为同一类型问题. 第一步:简述用例与约束条件 搜集需求与问题的范围. 提出问题来明确用例与约束条件. 讨论假设. 我们将在没有面 ...

  3. phpsotrm怎么 搜索功能_Windows 10 网络搜索设计太反人类?教你如何彻底关闭它

    来源:太平洋电脑网 我们知道微软在Windows 10中,特别加强了系统的搜索功能,但Windows 10的搜索的确很难称得上好用.抛开效率低下.呈现结果少.造成系统卡顿等老生常谈的问题不论,在功能设 ...

  4. 搜索功能这样设计,大家都说我有点东西

    搜索功能作为最常用也是最不起眼的功能,很多人日常会比较容易忽略它的底层逻辑,设计的时候基本都是一个搜索框解决.先不说我们手机中常用的几个软件的搜索,就算稍微复杂一点的b端产品,这样的设计在迭代评审上只 ...

  5. HTML 上标题栏把右标题栏遮挡,浅析标题栏设计:搜索、筛选、设置等功能都该放在右上角吗?...

    标题栏是我们最常见的功能模块了,这一次来解读一下标题栏为什么是标题栏 标题栏的功能,在当下的产品环境里是有原因的,我们来看看这几个产品的标题栏. 我知道产品经理很多时候会去思考一些有的没的问题,比如微 ...

  6. 整理推荐比较好用的具有书签搜索功能的chrome插件

    平时在整理学习chrome插件的过程中,经常会去试用各种大家推荐的插件.在去年我们的一篇文章:推荐六款好用的书签收藏夹剪藏型管理插件.这里面介绍的是收藏书签的插件.而随着我们使用chrome越来越频繁 ...

  7. 从0开始设计Twitter系统架构

    Twitter是全球最大的社交网络之一,如果让我们从0开始设计Twitter的系统架构,该怎么做呢?有哪些服务是必须的?有哪些点需要提前考虑?这篇文章简单介绍了设计类Twitter系统的思路并在最后给 ...

  8. 【Android】3.12 兴趣点( POI)搜索功能

    分类:C#.Android.VS2015.百度地图应用: 创建日期:2016-02-04 一.简介 POI(Point of Interest),中文可以翻译为"兴趣点".在地理信 ...

  9. 搜索功能:洞悉产品的绝佳入口

    提到搜索功能,想必所有人都不会感到陌生.有关搜索功能的文章有很多,它们大多谈论的是搜索的方式,搜索结果的优化等.不过今天我们将从全新的角度来看待搜索,将它作为洞悉产品的绝佳方式,充分利用该功能,能够迅 ...

最新文章

  1. R语言成功加载rJava方法
  2. lenovo L480 进入bios_重装系统重启后不引导,重装系统无法进入引导
  3. gateway集成sentinel实现网关限流
  4. Codeforces 173E Camping Groups 线段树
  5. java中链式调用_Java及Android中常用链式调用写法简单示例
  6. mysql更新索引不影响业务_mysql 索引是否能提高UPDATE,DELETE,INSERT 处理速度
  7. 使用C#将DataTable导出到文件
  8. java socket编程—单客户端与服务器通信
  9. 译文(Artistic Style Transfer with Internal-external Learning and Contrastive Learning)
  10. 百度网盘提取码_百度网盘提取码查询工具,老菜建议大家收藏备用!
  11. 服务器至强系列cpu排行,至强系列cpu天梯图2020 英特尔至强cpu天梯图排名
  12. matlab 画标准正态曲线,matlab中如何画标准正态分布的密度函数曲线?
  13. 线性代数可以速成吗_怎样速成线性代数?
  14. 2021字节秋招算法岗面经——抖音推荐
  15. Mstar 648 平台遥控器/按键包POWER键配置
  16. python 中在字符串前面加上b,u,r的含义
  17. 浮点数到整数的快速转换
  18. iOS第三方登录之Twitter(登录,获取用户信息)含demo
  19. 计算机思维游戏,思维数字 电脑版
  20. 日本那些最受欢迎的产品是如何设计的?

热门文章

  1. Proteus仿真时出现Cannot open‘***\LISA5476.SDF’的错误!
  2. 【调剂】黑龙江八一农垦大学电子信息(原计算机技术)
  3. 水果礼包拼手气(仿红包拼手气)含拼手气红包算法
  4. 为王菲写的第四首歌《织女星》
  5. 《Java黑皮书基础篇第10版》 第10章【习题】
  6. 五千年来,最触动心灵的十句诗词!
  7. 微信开发者工具 显示区域鼠标不显示的问题
  8. 基于L2,1范数的特征选择方法
  9. 实现家里电脑文件和公司电脑文件进行同步的?
  10. 用什么软件测试家里网络,几个简单小技巧,告诉大家如何知道家里的网速是多少!...