天冷了给孩子织一个帽子吧# Joke - 肚皮舞运动t*82012-12-19 08:121 楼除非已经离了的,要不然你就是玩火。尤其是有孩子的,你跟他那点新癣劲跟他多年的婚姻和对老婆孩子的亲情比其来,屁都不是,没几个男的能 deal with the guilt.
p*22012-12-19 08:122 楼1. System design 是一个很大的话题,大的System一般都是由Architect来设计的,因此就算工作过若干年的也未必有很丰富的system design的经验。如果想对systemdesign有一个初步了解,我发现这个文章不错,http://www.palantir.com/2011/10/how-to-rock-a-systems-design-interview/。2. 因为我们jobhunting的主要目标集中在了FLGT等互联网公司,因此在这个范畴里的system design也就集中在了分布式计算和分布式存储的design上了。想对这些设计理念有个大体的了解可以读读Google的三驾马车,GFS, MapReduce和BigTable。3. 有大牛建议读读各个公司的engineering blogs,我觉得是非常好的建议。不但能学习system design,面试的时候很有可能被问到相关的话题。如果你准备过,不但能更好的回答问题,还能带给面试官好感,从而产生所谓的化学反应。4. 如果想在system design上提高,则需要真正的实践。加入,或者研究一些opensource的project是比较有效的方法。因为我们找工作更多集中在了并行和分布式计算上,因此AKKA则当仁不让是一个非常理想的研究目标。我感觉如果按照上边几点准备的话,对付面试应该会更有把握很多。一家之言,欢迎讨论。
r*h2012-12-19 08:128 楼我前段时间刚好用过scala/akka搞一个分布式计算的东西不过信息传递全都是用各种case class,结果效率不是很高。不知道有没有更好的设计和实现方法。【在 p*****2 的大作中提到】: 1. System design 是一个很大的话题,大的System一般都是由Architect来设计的,因: 此就算工作过若干年的也未必有很丰富的system design的经验。如果想对system: design有一个初步了解,我发现这个文章不错,http://www.palantir.com/2011/10/how-to-rock-a-systems-design-interview/。: 2. 因为我们jobhunting的主要目标集中在了FLGT等互联网公司,因此在这个范畴里的: system design也就集中在了分布式计算和分布式存储的design上了。想对这些设计理: 念有个大体的了解可以读读Google的三驾马车,GFS, MapReduce和BigTable。: 3. 有大牛建议读读各个公司的engineering blogs,我觉得是非常好的建议。不但能学: 习system design,面试的时候很有可能被问到相关的话题。如果你准备过,不但能更: 好的回答问题,还能带给面试官好感,从而产生所谓的化学反应。: 4. 如果想在system design上提高,则需要真正的实践。加入,或者研究一些open
w*t2012-12-19 08:1210 楼这道理还需要说吗?【在 t****8 的大作中提到】: 除非已经离了的,要不然你就是玩火。: 尤其是有孩子的,你跟他那点新癣劲跟他多年的婚姻和对老婆孩子的亲情比其来,屁都: 不是,没几个男的能 deal with the guilt.
r*h2012-12-19 08:1213 楼我倒是有想用hadoop和ec2做一个小东西试试,正好上面有很多大数据。不过不知道会不会钱上面开销很大。。。或者跑个小数据集玩玩?【在 p*****2 的大作中提到】: 准备用AKKA实现MapReduce做为system design的练习如何?
m*12012-12-19 08:1214 楼你着理论好象和最近的事件不吻合啊?!【在 t****8 的大作中提到】: 除非已经离了的,要不然你就是玩火。: 尤其是有孩子的,你跟他那点新癣劲跟他多年的婚姻和对老婆孩子的亲情比其来,屁都: 不是,没几个男的能 deal with the guilt.
p*22012-12-19 08:1215 楼这个要具体看了。你能把你的design share一下吗?【在 r**h 的大作中提到】: 我前段时间刚好用过scala/akka搞一个分布式计算的东西: 不过信息传递全都是用各种case class,结果效率不是很高。: 不知道有没有更好的设计和实现方法。
p*22012-12-19 08:1216 楼昨天跟朋友讨论了一下,感觉hadoop code base太大了,不好involve。所以选择了AKKA。【在 r**h 的大作中提到】: 我倒是有想用hadoop和ec2做一个小东西试试,正好上面有很多大数据。不过不知道会: 不会钱上面开销很大。。。或者跑个小数据集玩玩?
r*h2012-12-19 08:1218 楼实现的是一个分布式svm的算法大概做法是,有一个master actor,以及几个其他的slave actormaster actor用来负责发配数据,以及收集各个slave actor返回的数据,做reduce,然后将reduce后的数据再发配到所有slave actor上。由于算法中需要几次reduce/发配数据的过程,因此需要好很多case class对应计算的不同阶段。不过现在想想低效的另一个可能是scala不大适合数值计算,应该把相关的计算部分丢给C来做?【在 p*****2 的大作中提到】: : 昨天跟朋友讨论了一下,感觉hadoop code base太大了,不好involve。所以选择了: AKKA。
p*22012-12-19 08:1219 楼这个以前讨论过,好像没有什么特别好的办法。关键还是看兴趣吧。【在 a******3 的大作中提到】: 赞总结。另外想问问那些open source的project该怎么找?有没有一些网站统一介绍的: ?
r*h2012-12-19 08:1220 楼不过hadoop的应用面会不会广很多呢?感觉actor这东西挺小众的啊我应该还没到直接看源码的阶段,想先拿来跑一跑感觉一下。【在 p*****2 的大作中提到】: : 这个以前讨论过,好像没有什么特别好的办法。关键还是看兴趣吧。
r*h2012-12-19 08:1221 楼github和sourceforge上的开源项目浩如烟海呀不过要找到一个自己感兴趣的又在自己能力范围内的开源项目倒是挺难的。【在 a******3 的大作中提到】: 赞总结。另外想问问那些open source的project该怎么找?有没有一些网站统一介绍的: ?
p*22012-12-19 08:1222 楼你是deploy在什么环境了?【在 r**h 的大作中提到】: 实现的是一个分布式svm的算法: 大概做法是,有一个master actor,以及几个其他的slave actor: master actor用来负责发配数据,以及收集各个slave actor返回的数据,做reduce,: 然后将reduce后的数据再发配到所有slave actor上。由于算法中需要几次reduce/发配: 数据的过程,因此需要好很多case class对应计算的不同阶段。: 不过现在想想低效的另一个可能是scala不大适合数值计算,应该把相关的计算部分丢: 给C来做?
p*22012-12-19 08:1223 楼主要是我喜欢底层一些的东西。这个还是看兴趣。不过一般来说越底层,可以学习的地方越多。【在 r**h 的大作中提到】: 不过hadoop的应用面会不会广很多呢?感觉actor这东西挺小众的啊: 我应该还没到直接看源码的阶段,想先拿来跑一跑感觉一下。
a*32012-12-19 08:1224 楼是的。。那些project太多了。。有些感兴趣但是太难。。有点大海捞针的感觉【在 r**h 的大作中提到】: github和sourceforge上的开源项目浩如烟海呀: 不过要找到一个自己感兴趣的又在自己能力范围内的开源项目倒是挺难的。
r*h2012-12-19 08:1225 楼呃,主要是单机和一个两三台电脑的小局域网了。。。可能在数据集很大以及node很多的时候会有优势吧【在 p*****2 的大作中提到】: : 主要是我喜欢底层一些的东西。这个还是看兴趣。不过一般来说越底层,可以学习的地: 方越多。
r*h2012-12-19 08:1226 楼我上次找了一个个人挺感兴趣的project,不过下下来一看,部分源码是asm写的。。晕菜了【在 a******3 的大作中提到】: : 是的。。那些project太多了。。有些感兴趣但是太难。。有点大海捞针的感觉
p*22012-12-19 08:1227 楼master actor用来负责发配数据,以及收集各个slave actor返回的数据,做reduce,//为什么master做reduce呢?会不会bottleneck?然后将reduce后的数据再发配到所有slave actor上。由于算法中需要几次reduce/发配数据的过程,因此需要好很多case class对应计算的不同阶段。【在 r**h 的大作中提到】: 呃,主要是单机和一个两三台电脑的小局域网了。。。: 可能在数据集很大以及node很多的时候会有优势吧
r*h2012-12-19 08:1228 楼这是算法本身的局限性了。training data分布在各个actor上,每个actor算出属于自己的data的minimum/maximum/sum之后,要汇总起来得到一个全局的minimum/maximum/sum,然后才能进行下一部计算。我把这部分的运算都整合到master里面了,不知道还有没有更好的设计思路?【在 p*****2 的大作中提到】: : master actor用来负责发配数据,以及收集各个slave actor返回的数据,做reduce,: //为什么master做reduce呢?会不会bottleneck?: 然后将reduce后的数据再发配到所有slave actor上。由于算法中需要几次reduce/发配: 数据的过程,因此需要好很多case class对应计算的不同阶段。
m*g2012-12-19 08:1229 楼我也想找些感兴趣的open source项目做做。大家可以开个话题分享一下,也许可以一起做做。不过,你们公司可以随便上mitbbs吗?怎么都是大白天的回复啊。
p*22012-12-19 08:1230 楼明白了。如果一台机,有没有可能把结果放在memory里不传来传去?把computationorder搞好。这样应该能节省数据copy的时间。因为各个actor之间数据没有conflict,所以不需要同步。多台机就不好搞了。不过先记住你这个scenario。一边学,一边想。【在 r**h 的大作中提到】: 这是算法本身的局限性了。training data分布在各个actor上,每个actor算出属于自: 己的data的minimum/maximum/sum之后,要汇总起来得到一个全局的minimum/maximum/: sum,然后才能进行下一部计算。我把这部分的运算都整合到master里面了,不知道还: 有没有更好的设计思路?
p*22012-12-19 08:1231 楼我们公司吗?我上班向来都自由呀。【在 m*********g 的大作中提到】: 我也想找些感兴趣的open source项目做做。大家可以开个话题分享一下,也许可以一: 起做做。: 不过,你们公司可以随便上mitbbs吗?怎么都是大白天的回复啊。
a*32012-12-19 08:1232 楼同求分享【在 m*********g 的大作中提到】: 我也想找些感兴趣的open source项目做做。大家可以开个话题分享一下,也许可以一: 起做做。: 不过,你们公司可以随便上mitbbs吗?怎么都是大白天的回复啊。
r*h2012-12-19 08:1233 楼我当时考虑过一种类似的。比如说搞一个全局变量外加计数器。每个slave actor有结果之后就去更新那个全局变量和计数器。当计数器的数量和actor的数量相等的时候,就说明所有更新已经完毕,每个actor再来读取一次这个变量的值。读取一次计数器减1,直到减成0,。最后一个actor负责将全局变量清零用于下一轮计算。不过这种做法的实现挺困难。首先actor之间应该不能用monitor之类的东西搞conditional block?(否则和actor自治系统设计思路就不符合了?)然后就变得每个actor要不断访问这个计数器检查是否已经reduce完毕,反而使得开销很大。其次第一个actor读取全局变量并更新计数器之前还要保证每个actor都已经发现计数器已经达到预定的值,这个又要额外的代码来实现这个功能。相比之下还是用一个master actor来维护这些所有工序更加直接。后来看别人的实现,发现MPI里面一个reduce函数就可以做到这些,不知道后台是怎么操作的。。。【在 p*****2 的大作中提到】: : 我们公司吗?我上班向来都自由呀。
p*22012-12-19 08:1235 楼减1我觉得不能有mutable的data to share。所以不应该用全局计数器。每个actor做完了给master发message,master自己有个计数器。受到message就-1。计算结果本身可以放到一个全局数据结构。【在 r**h 的大作中提到】: 我当时考虑过一种类似的。比如说搞一个全局变量外加计数器。每个slave actor有结: 果之后就去更新那个全局变量和计数器。当计数器的数量和actor的数量相等的时候,: 就说明所有更新已经完毕,每个actor再来读取一次这个变量的值。读取一次计数器减1: ,直到减成0,。最后一个actor负责将全局变量清零用于下一轮计算。: 不过这种做法的实现挺困难。首先actor之间应该不能用monitor之类的东西搞: conditional block?(否则和actor自治系统设计思路就不符合了?)然后就变得每个: actor要不断访问这个计数器检查是否已经reduce完毕,反而使得开销很大。其次第一: 个actor读取全局变量并更新计数器之前还要保证每个actor都已经发现计数器已经达到: 预定的值,这个又要额外的代码来实现这个功能。相比之下还是用一个master actor来: 维护这些所有工序更加直接。
j*x2012-12-19 08:1236 楼可以,不过以面试为目的的话实在有点浪费时间,建议你起头搞个open sourceproject,放到github上,咱们一起搞另外咱用node行不。。。【在 p*****2 的大作中提到】: 准备用AKKA实现MapReduce做为system design的练习如何?
p*22012-12-19 08:1238 楼不错的建议。回头看看去。【在 i**d 的大作中提到】: 除了三架马车,还可以看看Amazon的Key value store那篇。或者研究研究Cassandra.
p*22012-12-19 08:1239 楼这两天看了一下akka,感觉可以先用在工作中,这东西感觉还是挺实用的。【在 j********x 的大作中提到】: 可以,不过以面试为目的的话实在有点浪费时间,建议你起头搞个open source: project,放到github上,咱们一起搞: 另外咱用node行不。。。
M*52012-12-19 08:1240 楼不是说cassandra快被抛弃了吗。。。【在 i**d 的大作中提到】: 除了三架马车,还可以看看Amazon的Key value store那篇。或者研究研究Cassandra.
S*r2012-12-19 08:1242 楼啊?标题党啊。你这篇应该是“系统设计如何总结”更靠谱。。。算了,等我有空胡写一个大家凑合看看。【在 p*****2 的大作中提到】: 1. System design 是一个很大的话题,大的System一般都是由Architect来设计的,因: 此就算工作过若干年的也未必有很丰富的system design的经验。如果想对system: design有一个初步了解,我发现这个文章不错,http://www.palantir.com/2011/10/how-to-rock-a-systems-design-interview/。: 2. 因为我们jobhunting的主要目标集中在了FLGT等互联网公司,因此在这个范畴里的: system design也就集中在了分布式计算和分布式存储的design上了。想对这些设计理: 念有个大体的了解可以读读Google的三驾马车,GFS, MapReduce和BigTable。: 3. 有大牛建议读读各个公司的engineering blogs,我觉得是非常好的建议。不但能学: 习system design,面试的时候很有可能被问到相关的话题。如果你准备过,不但能更: 好的回答问题,还能带给面试官好感,从而产生所谓的化学反应。: 4. 如果想在system design上提高,则需要真正的实践。加入,或者研究一些open
i*d2012-12-19 08:1243 楼嗯,但是一些思想还是有用的,比如说eventual consistent。cassandra是amazon的dynamo的一个开源实现。【在 M********5 的大作中提到】: 不是说cassandra快被抛弃了吗。。。
b*l2012-12-19 08:1244 楼这个帖子含金量太高了!【在 p*****2 的大作中提到】: 1. System design 是一个很大的话题,大的System一般都是由Architect来设计的,因: 此就算工作过若干年的也未必有很丰富的system design的经验。如果想对system: design有一个初步了解,我发现这个文章不错,http://www.palantir.com/2011/10/how-to-rock-a-systems-design-interview/。: 2. 因为我们jobhunting的主要目标集中在了FLGT等互联网公司,因此在这个范畴里的: system design也就集中在了分布式计算和分布式存储的design上了。想对这些设计理: 念有个大体的了解可以读读Google的三驾马车,GFS, MapReduce和BigTable。: 3. 有大牛建议读读各个公司的engineering blogs,我觉得是非常好的建议。不但能学: 习system design,面试的时候很有可能被问到相关的话题。如果你准备过,不但能更: 好的回答问题,还能带给面试官好感,从而产生所谓的化学反应。: 4. 如果想在system design上提高,则需要真正的实践。加入,或者研究一些open
b*72012-12-19 08:1246 楼二爷真是好人啊。收藏了!【在 p*****2 的大作中提到】: 1. System design 是一个很大的话题,大的System一般都是由Architect来设计的,因: 此就算工作过若干年的也未必有很丰富的system design的经验。如果想对system: design有一个初步了解,我发现这个文章不错,http://www.palantir.com/2011/10/how-to-rock-a-systems-design-interview/。: 2. 因为我们jobhunting的主要目标集中在了FLGT等互联网公司,因此在这个范畴里的: system design也就集中在了分布式计算和分布式存储的design上了。想对这些设计理: 念有个大体的了解可以读读Google的三驾马车,GFS, MapReduce和BigTable。: 3. 有大牛建议读读各个公司的engineering blogs,我觉得是非常好的建议。不但能学: 习system design,面试的时候很有可能被问到相关的话题。如果你准备过,不但能更: 好的回答问题,还能带给面试官好感,从而产生所谓的化学反应。: 4. 如果想在system design上提高,则需要真正的实践。加入,或者研究一些open