一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 1111|回复: 4
收起左侧

新鲜的Twitter挂经

[复制链接] |试试Instant~ |关注本帖
xiaomaogy 发表于 2016-2-23 10:55:58 | 显示全部楼层 |阅读模式

2016(1-3月) 码农类 硕士 全职@Twitter - 网上海投 - 技术电面 |Otherfresh grad应届毕业生

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
刚面了Twitter, 感觉是挂了。。。。悲催。。。
.鏈枃鍘熷垱鑷1point3acres璁哄潧
第一题写Three Sum, 题主装作没看过这题,一点一点地改出了结果。

第二题是系统设计一个可以快速生成全局Unique ID的系统。。。。。想了好几个办法,但是都有一些缺陷,到最后都没有想出结果。。。。

后来搜了一下,发现Twitter 的 snowflake系统就是做这个的,居然是用的TimeStamp来做的系统。。。。题主当时想到了用timestamp来做,但是烙印就说,what if two time stamps are equal? 题主就说把时间的粒度进一步变小变精确,但是烙印坚持说不管如何分小都会出现collision,没想到这个系统是当出现collision的时候就取当前sequence number  加一, 具体看这里。

http://darktea.github.io/notes/2013/12/08/Unique-ID

但是题主还是没有想通的是,由于id是在不同的worker上面生成的,这些worker怎么判断出现了collision了呢?然后出现了collision的话,还要得到别的collision的当前sequence id,这不就需要一台master来把所有生成的id统一起来,然后来做check,然后重复的打回去重新生成?

不懂。。。求大神指教,不过Twitter的这个电面估计是挂了。

评分

1

查看全部评分

Mark6 发表于 2016-3-6 08:26:13 | 显示全部楼层
楼主,请问你OA是什么题呀?
回复 支持 反对

使用道具 举报

intaglio 发表于 2016-3-8 17:05:39 | 显示全部楼层
给一毫秒内分配了一定量的ID,超过了就排到下一毫秒的分配量中,应该是这个意思吧?
回复 支持 反对

使用道具 举报

 楼主| xiaomaogy 发表于 2016-3-8 23:24:13 | 显示全部楼层
intaglio 发表于 2016-3-8 17:05
给一毫秒内分配了一定量的ID,超过了就排到下一毫秒的分配量中,应该是这个意思吧?

恩,是这个意思。当时我以为需要不同worker之间有一个协同,不然万一不同的worker用了同一个毫秒的同一个offset怎么办? 后来想到还要加上worker id,所以不存在协同的需要。
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-10 07:25

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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