楼主: liuyang5832
跳转到指定楼层
上一主题 下一主题
收起左侧

[题目讨论] 最近一大厂SD题目design twitter search实战反馈讨论贴

 
🔗
khart 2020-11-29 08:05:44 | 只看该作者
全局:
话说回来,这是machine learning相关职位吗?关键字和tweet的relevancy是需要用NLP来建模分析的。
回复

使用道具 举报

🔗
everbelenger 2020-12-14 01:22:14 | 只看该作者
全局:
liuyang5832 发表于 2020-11-3 13:32
我是转专业的,可以说没有业界经验,就做过几个side project

楼主不是19年就拿了亚马逊offer了么 https://www.1point3acres.com/bbs/thread-509640-1-1.html 怎么就没有业界经验了?
回复

使用道具 举报

🔗
greatgrz 2020-12-14 07:03:08 | 只看该作者
全局:
本帖最后由 greatgrz 于 2020-12-14 07:10 编辑

感觉总体答得还算可以。。。
一点点我的想法:

多个词or的话,好像要用一个算法算score,具体不记得了,一般是越短content的score越高,hit的词越多的越高,还有就是几个词距离越近score越高。

还有memcache好像不能放在client和app server之间吧,一般是直接在app server里面用 in memory cache(guava这种)?

mq放在search path会不会增加search的latency?感觉这里加mq有点多此一举啊,加一个coordinator来按照hashing直接dispatch search request就行了吧? mq一般放在write path里

最后就是write的部分好像没有cover到,不知道是不是时间不够,感觉search service,写比较复杂,读真的还好,因为每次写都要update 各种 indexing table
回复

使用道具 举报

🔗
 楼主| liuyang5832 2020-12-17 06:31:00 | 只看该作者
全局:
bbbnnn777 发表于 2020-11-12 15:32
我也转专业 可以私信分享是哪家大厂嘛 已加米

可以啊,不会私信啊,不过就是四家中一家非血汗非情怀那家
回复

使用道具 举报

🔗
 楼主| liuyang5832 2020-12-17 06:33:21 | 只看该作者
全局:
everbelenger 发表于 2020-12-14 01:22
楼主不是19年就拿了亚马逊offer了么 https://www.1point3acres.com/bbs/thread-509640-1-1.html 怎么就没 ...

为了拿绿卡没去,今年卡到了总算自由了
回复

使用道具 举报

🔗
 楼主| liuyang5832 2020-12-17 06:38:08 | 只看该作者
全局:
greatgrz 发表于 2020-12-14 07:03
感觉总体答得还算可以。。。
一点点我的想法:

太对了,你说的这些点在我后来复习SD时候再回想也才慢慢意识到自己当时面的有多小白,那个match score的算法好像可以用BM25
回复

使用道具 举报

🔗
 楼主| liuyang5832 2020-12-17 06:40:39 | 只看该作者
全局:
khart 发表于 2020-11-29 08:05
话说回来,这是machine learning相关职位吗?关键字和tweet的relevancy是需要用NLP来建模分析的。

不是,就是一普通SWE的SD题目
回复

使用道具 举报

🔗
piglet404 2020-12-18 08:22:34 | 只看该作者
全局:
看完傻了。我连你说的里边的20%的内容都说不出来。你还是转专业的??!!
回复

使用道具 举报

🔗
紫英 2021-9-6 05:44:04 | 只看该作者
全局:
楼主说的大厂不会是google吧
回复

使用道具 举报

🔗
alexsunyx 2021-9-7 08:34:55 | 只看该作者
全局:
本帖最后由 alexsunyx 于 2021-9-6 18:08 编辑

Traffic问题
  • traffic会远比这个大,因为Twitter作为一个open api的平台,会有很多第三方的脚本或爬虫来访问search API。以及对于同一个geo location,search的traffic会相对比较集中,所以rps峰值也会很高。
  • 楼主所说的一台"application server"应该指的是用来承接search traffic的stateless的service,可以被称为search系统的front-end。我认为在楼主应该把系统框图画出来,来表明FE和storage的关系。

如何merge & 数据如何存放
按照楼主的描述,我理解是想做成倒排索引(inverted index),结构类似于{"cat" => [1000, 999, 300], "food" => [1001, 999, 200]},就是由关键词指向tweets id list。面试官应该期待能够讲出用什么方法去具体进行merge。一个常见merge的方法是倒排索引里的文档列表保持顺序的链表(最好是跳表),然后使用跳表合并。
consistent hash在这个场景下是可以接受的,肯定需要sharding,暂时没有从回答中看出什么问题。

Cache
  • client和application server中的cache指的是什么?如果我的本地网页版twitter是client的话,在到达application server前的cache我只能当做本地浏览器缓存利用或CDN来理解。但是CDN应该不太适合这个场景


没有看懂message queue在这里的意图,题主可以再elaborate一下。

my 2 cents, 楼主的主要问题是:
  • 沟通不通畅:楼主对于很多问题是理解的,但是并没有让面试官充分理解。楼主可以试着用一些办法来加强面试官的认知,比如画图、系统分层;
  • 某些地方的设计比较vague,不够具体。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表