【生活质量系列】评测几款用过的咖啡机

一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货

最近看过此主题的会员

坐标湾区
DreamCraft创始团队
招聘游戏开发工程师
游戏初创公司招聘工程师、UIUX Designer和游戏策划
码农求职神器Triplebyte:
不用海投
内推多家公司面试
前Google华人高管创立
面试offer一键直通
Leap.ai助你进入热门独角兽
查看: 2673|回复: 36
收起左侧

林荫昂塞

[复制链接] |试试Instant~
我的人缘0
juritan 发表于 2018-2-24 13:06:02 | 显示全部楼层 |阅读模式
本楼: 【顶】   0% (0)
 
 
100% (1)   【踩】
全局: 顶  92% (13)
 
 
7% (1)  踩

2018(1-3月) 码农类General 博士 全职@Linkedin - 猎头 - Onsite  | Other | 在职跳槽

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

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

x

. 一亩-三分-地,独家发布

. From 1point 3acres bbs
游客,本帖隐藏的内容需要积分高于 66 才可浏览,您当前积分为 0。
查看如何攒积分 Click here for more info.


面完到今天还没有回信。感觉多半是凉了。还是发一下面经回报下地里顺便攒个RP。
心得体会:虽然他家系统设计就那么几道很容易撞上,但是就算准备了也不一定能答好。建议大家最好自己从头到尾所有细节写一遍,有条件的话找个朋友来mock一下比较好。


补充内容 (2018-2-27 09:52):
修正一下KV store设计那道题。只是说random写会很慢要避免,顺序写会很快,random读没问题。。. From 1point 3acres bbs

补充内容 (2018-2-28 07:17):
因为有其他offer在等,所以催了一下recruiter,今天通知说已经过了HC开始准备team match啦,谢谢各位的祝福。

评分

参与人数 2大米 +6 收起 理由
pwh + 3 很有用的信息!
weiliango + 3 给你点个赞!

查看全部评分


上一篇:BB近期电面总结
下一篇:为了我们全部 电面一

本帖被以下淘专辑推荐:

我的人缘0
xljob 发表于 2018-2-25 01:13:45 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  84% (11)
 
 
15% (2)  踩
感觉infra设计轮好长好难啊。。
回复

使用道具 举报

我的人缘0
hyliu0000 发表于 2018-2-25 03:52:29 来自手机 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  98% (78)
 
 
1% (1)  踩
回复

使用道具 举报

我的人缘0
hyliu0000 发表于 2018-2-25 04:05:06 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  98% (78)
 
 
1% (1)  踩
额 白打那么多字。都没打出来。好吧再发一遍。
楼主 几个问题探讨下。kv设计 能实现顺序读吗? 还有每个文件大小多少? 太大太小都会有影响。这里面trade off楼主是怎么考虑的? 第二个设计单机实现应该不难,难的是如何scale? 第三个设计不需要每个host每个指数一个queue吧;只需要每个message里面声明node和指数的信息就好。另外 load balancer是没法帮你找到需要的queue吧。
回复

使用道具 举报

我的人缘0
hyliu0000 发表于 2018-2-25 04:05:58 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  98% (78)
 
 
1% (1)  踩
另外 感谢楼主发这么详细的设计面经。点赞

21.000+ students read the Road to learn React. The course weaves all the opinionated roadmaps into one roadmap to master React. It gives you all the fundamentals in React. You will build a Hacker News App along the way.

回复

使用道具 举报

我的人缘0
hyliu0000 发表于 2018-2-26 07:13:08 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  98% (78)
 
 
1% (1)  踩
其实KV设计是最考验分布式系统设计的一种题。 比什么设计个tinyurl什么的要复杂的多。
回复

使用道具 举报

我的人缘0
starrymao 发表于 2018-2-26 22:55:38 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (44)
 
 
0% (0)  踩
楼主我积分不够,能不能麻烦把面经发到邮箱啊,太感谢了。
liuning82@gmail.com
回复

使用道具 举报

我的人缘0
 楼主| juritan 发表于 2018-2-27 09:50:57 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  92% (13)
 
 
7% (1)  踩
hyliu0000 发表于 2018-2-25 04:05
额 白打那么多字。都没打出来。好吧再发一遍。
楼主 几个问题探讨下。kv设计 能实现顺序读吗? 还有每个文 ...

“kv设计 能实现顺序读吗? ”这个我原题里没说清楚。。应该是random写会很慢要避免,读的话就还好。所以就根据内存中的hashtable找到某个key对应在disk上的文件是哪个,并且offset在哪里,就可以读到相应的value了。.1point3acres网

“还有每个文件大小多少? 太大太小都会有影响。这里面trade off楼主是怎么考虑的? ”
这里当时没有仔细讨论。。我只说了太大的话bakcup和recovery会比较难。所以要分成小文件,就假设大概4GB一个文件这样。面试官没有问什么。

“第二个设计单机实现应该不难,难的是如何scale? ”. visit 1point3acres for more.
我当时想说如果有多个consumer怎么办但是面试官就说假设只有一个consumer。。但是producer可以是多个的。主要还是在考多线程的理解和使用吧?

“第三个设计不需要每个host每个指数一个queue吧;只需要每个message里面声明node和指数的信息就好。另外 load balancer是没法帮你找到需要的queue吧。”


但是用户到时候是要求具体某个host的某个指数的。如果所有host的message放在一起,那query的时候还要再进行一轮filter呀。既然如此为什么不直接就分开。
software load balancer应该可以做这件事的。。以前看到某个系统设计题就是在software load balancer中保存一个hashtable之类的结构可以寻找某些message需要redicrect到哪个server。. 留学申请论坛-一亩三分地
所以我是想的用类似的用法。不过在这里用的对不对就不知道了。。。.本文原创自1point3acres论坛
回复

使用道具 举报

我的人缘0
 楼主| juritan 发表于 2018-2-27 09:55:45 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  92% (13)
 
 
7% (1)  踩
starrymao 发表于 2018-2-26 22:55. 牛人云集,一亩三分地
楼主我积分不够,能不能麻烦把面经发到邮箱啊,太感谢了。
liuning82@gmail.com

我这个分设的很低哒。你去新人报道贴里发个贴就基本够啦。
回复

使用道具 举报

我的人缘0
hyliu0000 发表于 2018-2-27 12:20:46 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  98% (78)
 
 
1% (1)  踩
juritan 发表于 2018-2-27 09:50
“kv设计 能实现顺序读吗? ”这个我原题里没说清楚。。应该是random写会很慢要避免,读的话就还好。所以 ...

. visit 1point3acres for more.KV设计确实比较难,你答得不错了。

c++写多线程确实蛮蛋疼的。。 java的话 你就可以直接调用blocking queue了。。。

至于第三个设计, 我觉得你想的还是有点问题的。 你的这些data point不管怎么样都是要存到数据库里面的。 你提前filter的话,又能有什么性能上的优势呢?到时query的时候是一样的, 要by host, by time, by指数。 另外你这么设计是有瓶颈的。 你的host越多,指数越多,你的kafka的topic就越多。 但是kafka得topic也不能无限增长啊。 主要是zookeeper也是有上限的。
回复

使用道具 举报

我的人缘0
ws775901 发表于 2018-2-27 13:31:33 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  44% (280)
 
 
55% (343)  踩
最后一轮那个题,我觉得可以用raft算法来处理在服务器不稳定的情况下数据一致性问题。比如一开始有5个server. 我们通过leader election 选出一个leader来作为master和用户交互,同时和其它server交互保持数据一致性。当客户端发送msg给leader, leader会先确保大多数servers都收到了这个msg才会commit这个msg到自己的state machine上。 当leader挂了, 其他server会因为超时而自动选择一个新leader, 所以即使msg没发出去,新leader没有收到这个msg,可以考虑让用户重发。而且这种情况,即使后来那个server恢复了,数据一致性依然维持,它挂之前处理的msg会由于太老了而被弃掉,同时它也会根据新leader发过来的数据来更新自己的state machine.

Learn React.js, Redux & Immutable.js while building a weather app

回复

使用道具 举报

头像被屏蔽
我的人缘0
wicwawa 发表于 2018-2-27 14:04:23 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

我的人缘0
hyliu0000 发表于 2018-2-27 22:59:25 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  98% (78)
 
 
1% (1)  踩
ws775901 发表于 2018-2-27 13:31
最后一轮那个题,我觉得可以用raft算法来处理在服务器不稳定的情况下数据一致性问题。比如一开始有5个serve ...

额。 最后有说让设计数据存储吗? 你这个放到第一个kv设计还靠谱点。
回复

使用道具 举报

我的人缘0
ice9123 发表于 2018-2-28 02:13:00 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  97% (82)
 
 
2% (2)  踩
我上周三面的,还没有消息,似乎他家特别慢。楼主加油,祝好运。
回复

使用道具 举报

我的人缘0
 楼主| juritan 发表于 2018-2-28 07:18:45 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  92% (13)
 
 
7% (1)  踩
wicwawa 发表于 2018-2-27 14:04
楼主有消息了吗?能分享下timeline吗?谢谢啦!

1月底电面的,然后上周二面试的,recruiter说本来应该星期三review,但是我因为手头有其他offer在等就催了一下提前到今天给review,通知说过了开始team match。
回复

使用道具 举报

我的人缘0
 楼主| juritan 发表于 2018-2-28 07:32:15 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  92% (13)
 
 
7% (1)  踩
hyliu0000 发表于 2018-2-27 12:20. Waral 博客有更多文章,
KV设计确实比较难,你答得不错了。

c++写多线程确实蛮蛋疼的。。 java的话 你就可以直接调用blocking ...

我当时的想法是使用不同的queue并不算是提前filter,而是利用LB直接在各个server把message传进来的时候就分配到各个queue里了;如果只用一个queue,当数据很多的时候还是需要把queue分成多个partition,还是需要LB来转发message。这样分成不同的queue并不会增加复杂度,还能节省query的overhead。
但是我觉得你说的也很有道理。主要是我没有实际用过kafka,就想当然的以为应该可以比较efficient的支持大量topic。。。这样的话需要确实需要考量多个topic的tradeoff。
不过当时面试官似乎没有太纠结scalability的问题,后面主要在问消息丢失后的处理,着重在问failure resilience了。
回复

使用道具 举报

我的人缘0
hyliu0000 发表于 2018-2-28 08:05:04 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  98% (78)
 
 
1% (1)  踩
juritan 发表于 2018-2-28 07:32. 1point3acres
我当时的想法是使用不同的queue并不算是提前filter,而是利用LB直接在各个server把message传进来的时候就 ...

kafka的partition本来就是需要的。 是一种支持水平扩展的表现。 如果不用partition就失去使用kafka的意义了。partition多了读写都会快。 就跟你在load balancer后面放server是一个道理。 都是为了并行处理。 不过貌似面试官不纠结这个。。 也就无所谓了。 有的时候,系统设计就是让对方满意。 顾客喜欢什么姿势,咱们就摆什么姿势 :)
回复

使用道具 举报

我的人缘0
freipan 发表于 2018-2-28 14:28:36 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  90% (10)
 
 
9% (1)  踩
恭喜啊,infra很难进的。
回复

使用道具 举报

我的人缘0
ice9123 发表于 2018-2-28 23:56:42 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  97% (82)
 
 
2% (2)  踩
恭喜楼主啊,来沾沾喜气,估计我这几天也要出结果了
回复

使用道具 举报

我的人缘0
 楼主| juritan 发表于 2018-3-1 03:08:14 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  92% (13)
 
 
7% (1)  踩
ice9123 发表于 2018-2-28 23:56
恭喜楼主啊,来沾沾喜气,估计我这几天也要出结果了

加油加油!估计你也是这两天吧。祝好运!
回复

使用道具 举报

游客
请先登录

本版积分规则

提醒:发帖可以选择内容隐藏,部分板块支持匿名发帖。请认真读完以下全部说明:

■隐藏内容方法: [hide=200]你想要隐藏的内容比如面经[/hide]
■意思是:用户积分低于200则看不到被隐藏的内容
■可以自行设置积分值,不建议太高(200以上太多人看不到),也不建议太低(那就没必要隐藏了)
■建议只隐藏关键内容,比如具体的面试题目、涉及隐私的信息,大部分内容没必要隐藏。
■微信/QQ/电子邮件等,为防止将来被骚扰甚至人肉,以论坛私信方式发给对方最安全。
■匿名发帖的板块和方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

手机版|小黑屋|一亩三分地论坛声明

GMT+8, 2018-9-23 23:45

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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