机械工程师英语面试

机械工程师英语面试

ID:19180506

大小:19.86 KB

页数:9页

时间:2018-09-29

机械工程师英语面试_第1页
机械工程师英语面试_第2页
机械工程师英语面试_第3页
机械工程师英语面试_第4页
机械工程师英语面试_第5页
资源描述:

《机械工程师英语面试》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、机械工程师英语面试  应届生在面试的时候,大公司偶尔也会遇到一些系统设计题,而这些题目往往只是考一下你的知识面,或者对系统架构方面的了解,不会涉及编码。很多人感觉难以应对这样的题目,也不知道从何说起,在本文中,总结了回答这类题目需要哪些基础知识,以及怎样使用这些知识回答这些问题。  在正式介绍基础知识之前,先罗列几个常见的系统设计相关的笔试面试题:  (1)(百度)要求设计一个DNS的Cache结构,要求能够满足每秒5000以上的查询,满足IP数据的快速插入,查询的速度要快。(题目还给出了一系列的数据,比如:站点数总共为5000万,IP地址有1000万,等等

2、)  解决方案:DNS服务器实现域名到IP地址的转换。  每个域名的平均长度为25个字节(在域名的命名标准中,对于域名长度是有明显限制的。其中,中国国家域名不得超过20个字符,国际通用域名不得超过26个字符),每个IP为4个字节,所以Cache的每个条目需要大概30个字节。  总共50M个条目,所以需要个字节的空间。可以放置在内存中。(考虑到每秒5000次操作的限制,也只能放在内存中。)  可以考虑的数据结构包括hash_map,字典树,红黑树等等。  我觉得比较好的解决方法是,将每一个URL字符串转化为MD5值,作为key,建立最大或最小堆,这样插入和查找

3、的效率都是O(log(n))。  MD5是128bit的大整数也就是16byte,比直接存放URL要节省的多。  具体可应用方法:每秒5000的查询不算高啊,最土的方法使用MySQL+Memcached架构应该都能满足吧?  数据结构建议以域名的md5值为主键来存储,值可以只存储目标IP就行。Memcached用户支撑前端查询,MySQL用户存储数据,还要看总数量会有多大,如果不是特别大,直接使用MyISAM引擎来存储就行,更新插入都非常快,如果超千万,可以使用InnoDB来存储,每次有新数据插入时直接使用replaceintotable就行,Memcach

4、ed数据的更新直接使用set。  Memcached随便用得好些,每秒上万次的get是容易达到的,MySQL你别小看,在有的测试里,以主键查询的测试,一台普通的服务器上,MySQL/InnoDB服务器上获得了750000+QPS的成绩。  总结:关于高并发系统设计。主要有以下几个关键技术点:缓存,索引,数据分片,锁粒度尽可能小。。  (2)有N台机器,M个文件,文件可以以任意方式存放到任意机器上,文件可任意分割成若干块。假设这N台机器的宕机率小于1/3,想在宕机时可以从其他未宕机的机器中完整导出这M个文件,求最好的存放与分割策略。  解决方案:涉及到现在通用

5、的分布式文件系统的副本存放策略。一般是将大文件切分成小的block(如64MB)后,以block为单位存放三份到不同的节点上,这三份数据的位置需根据网络拓扑结构配置,一般而言,如果不考虑跨数据中心,可以这样存放:两个副本存放在同一个机架的不同节点上,而另外一个副本存放在另一个机架上,这样从效率和可靠性上,都是最优的(这个google公布的文档中有专门的证明,有兴趣的可参阅一下。)。如果考虑跨数据中心,可将两份存在一个数据中心的不同机架上,另一份放到另一个数据中心。  (3)假设有三十台服务器,每个上面都存有上百亿条数据(有可能重复),如何找出这三十台机器中,

6、根据某关键字,重复出现次数最多的前100条?要求用Hadoop来做。  方案:针对每一台机器有100亿,类似100万时的处理方法,对数据进行切片,可以都切为100万的记录,对100万、取最前100,不同在于这前100也存入hash,如果key相同则合并value,显然100亿的数据分割完后的处理结果也要再进行类似的处理,hash表不能过长,原理其实也就是map和reduce。然后合并这30台机器的结果。  (4)设计一个系统,要求写速度尽可能高,说明设计原理。  解决方案:涉及到BigTable的模型。主要思想是将随机写转化为顺序写,进而大大提高写速度。具体

7、是:由于磁盘物理结构的独特设计,其并发的随机写(主要是因为磁盘寻道时间长)非常慢,考虑到这一点,在BigTable模型中,首先会将并发写的大批数据放到一个内存表(称为“memtable”)中,当该表大到一定程度后,会顺序写到一个磁盘表(称为“SSTable”)中,这种写是顺序写,效率极高。说到这,可能有读者问,随机读可不可以这样优化?答案是:看情况。通常而言,如果读并发度不高,则不可以这么做,因为如果将多个读重新排列组合后再执行,系统的响应时间太慢,用户可能接受不了,而如果读并发度极高,也许可以采用类似机制。  (5)设计一个高并发系统,说明架构和关键技术要

8、点。  方案:分布式系统中的核心的服务器的实现。可以

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。