avatar
k*e
1
google interview question from glassdoor
Design and describe a system/application that will most efficiently produce
a report of the top 1 million Google search requests. You are given:
You are given 12 servers to work with. They are all dual-processor machines
with 4Gb of RAM, 4x400GB hard drives and networked together.(Basically,
nothing more than high-end PC's)
The log data has already been cleaned for you. It consists of 100 Billion
log lines, broken down into 12 320 GB files of 40-byte sear
avatar
g*y
2
这个题目挺好的,顶上来大家讨论下。
我觉得用hash来count occurence应该是需要做的吧,有了hash file(may be
distributed across servers)之后就很简单了。
不过对于多servers的大系统如何高效的实现hash?单独的server算自己的hash,再跟
其他server通讯,merge hash file?
有个问题是,因为hash file太大,肯定是要写到disk上的文件,不可能在mem里面装下
,这样就涉及到一个disk write的问题,read时连续地址的item对应在hash表里的地址
都是不连续,而高效的disk write要求一次写入一个large chunk的data,如果你每次
只能disk write一个10Byte的数据,岂不是效率太低了?怎么解决这个问题?
avatar
M*a
3
这边cs的人很多啊...
怎么没有几个贴ee的题目呢?
avatar
p*7
4
disk write一个10Byte的数据,为啥是10Bytes。
对了 merge hash file需要排序再merge么?

【在 g*******y 的大作中提到】
: 这个题目挺好的,顶上来大家讨论下。
: 我觉得用hash来count occurence应该是需要做的吧,有了hash file(may be
: distributed across servers)之后就很简单了。
: 不过对于多servers的大系统如何高效的实现hash?单独的server算自己的hash,再跟
: 其他server通讯,merge hash file?
: 有个问题是,因为hash file太大,肯定是要写到disk上的文件,不可能在mem里面装下
: ,这样就涉及到一个disk write的问题,read时连续地址的item对应在hash表里的地址
: 都是不连续,而高效的disk write要求一次写入一个large chunk的data,如果你每次
: 只能disk write一个10Byte的数据,岂不是效率太低了?怎么解决这个问题?

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。