发布于 2015-09-19 07:54:10 | 365 次阅读 | 评论: 0 | 来源: 网友投递
百度(Baidu)中文搜索引擎
百度(Nasdaq简称:BIDU)是全球最大的中文搜索引擎,2000年1月由李彦宏、徐勇两人创立于北京中关村,致力于向人们提供“简单,可依赖”的信息获取方式。“百度”二字源于中国宋朝词人辛弃疾的《青玉案·元夕》词句“众里寻他千百度”,象征着百度对中文信息检索技术的执著追求。
本试题卷分第I卷(选择题、填空题)。第Ⅱ卷(简答题、编程题)、第Ⅲ卷(系统设计题)和第Ⅳ卷(数据库题)。运维开发工程师只须完成第Ⅰ 卷、第Ⅱ卷、第Ⅲ卷;数据库管理员只须完成第Ⅰ卷、第Ⅱ卷、第Ⅳ卷。注意,请将答案写在答题卡上,本试卷上答题无效。考试结束后,将本答题卡与试卷一并交 回,只交答题卡试卷无效。
(笔试时间120分钟)
第I卷(必做)
一、单选题(每题1分,共32分)
(略)
二、填空题(每题3分,共18分)
1.串行通信的传输制式分为 、半双工、单工。
2.信号量的取值范围为[-3,5]的时候,代表着 个进程在竞争着 个资源。
3.设栈S和队列Q的初始状态为空,元素E1、E2、E3、E4、E5和E6依次通过栈S,一个元素出栈后即进入队列若6个元素出队列的顺序是E2、E4、E3、E6、E5和E1,则栈S的容量至少应该是 。
4.为了保证连接的可靠建立,TCP使用了 次握手机制。
5.Linux中,增加一个用户的命令式 。
6.寄存器、 、 、外存、网络存储组成了常见的计算机存储系统。
第Ⅱ卷(必做)
三、简答题(10分)
简述操作系统中线程死锁产生的原理及其形成的必要条件,如何避免死锁。
四、编程题(10分)
以 下是数字相关的ASCII码表,请用C语言编写一个函数char* hexStr2DecStr(char* hexStr)。十进制值48576590977A 将类似’ 1B’,’ 1c’这样的字符串转化为对应十进制的字符串’ 26’,’ 27’,输入字符串的整数值范围[0,1000]。
注意,不要使用库函数。
第Ⅲ卷(运维开发工程师必做,数据库管理员选做)
五、系统设计题(30分)
A公司计划上线一个域名为www.xxxxxx.com的新服务,业务逻辑为:用户的每一次访问通过网络设备(IDCA、IDCB)均匀转发至前端集群前端集群并行访问数据集群1-3获取对应数据,然后将结果合并后返回给用户。服务运维的要求为:
a)数据集群1-3分别提供不同的数据,前端集群并行获取,不能缺少任何一个集群,即保证服务返回给用户合并后的数据都是完整的。
b)为保证服务器故障后,仍然能够提供对应服务,因此需要搭建集群并采取简单的负载均衡策略。即在有两台及以上的服务器集群中,任何一台服务器故障后,其上的流量可以平均分配到同集群剩余服务器,不会影响整体服务。
c)为保障机房故障后,用户仍然能够访问服务,因此使用A、B两地的数据中心(IDC A、IDC B)进行冗余备份。常态下流量各占50%,当机房故障后会将故障机房的流量全部切换至备份机房。
d)A、B两地相距一千公里,用光纤互联,已知光纤故障不可用后,需要排查和恢复的时间较长。
e)预估第一年用户访问流量每日高峰在中午12点,流量峰值为800q/s(每秒请求数)。
通过上面信息,A公司给出了服务架构及数据流向草稿,并计划按照下面表格采购11台服务器。
集群名 | 机器数 | 每台服务器流入的极限压力值(请求/s) |
前端集群-IDCA | 4 | 300q/s |
前端集群-IDCB | 2 | 300q/s |
数据集群1-IDCA | 2 | 450q/s |
数据集群2-IDCB | 1 | 900q/s |
数据集群3-IDCC | 2 | 350q/s |
表一 A公司计划采购服务器数据
请你利用上面给出的已知信息分析并解决下面的问题。
1.请从减少故障对系统稳定性的影响。合理安排服务容量的角度,找出并说明图一、表一中若干设计不合理的地方,说明原因并给出解决方案。(15分)
2.经过你的修正,业务部署完毕并开始对外服务。现在有个别用户报障,无法访问服务,请给出你排查故障的思路。(不能忘却确定故障一定是发生在服务端)(8分)
3.该网站在一个季度后流量将增加60%,需要对系统进行扩容保证服务稳定可用,请给出需要增加的最少机器数量。(请给出计算推理过程)(7分)
第Ⅳ卷(运维开发工程师选做,数据库管理员必做)
六、DBA单选题(每题2分,共10分)
1.以下哪种方式不可以用来删除一个表中的数据()
A.delete B. drop C. flush D. truncate
2.MySQL5.0默认支持以下哪种主从同步的方式()
A.语句同步 B. 行同步 C. 增量同步 D. 以上都是
3.以下那款数据库产品为知名的非关系型数据库()
A.Membase B. PostgreSQL C. MySQL D. Oracle
4.以下关于MySQL的视图相关的描述中,哪一种是错误的()
A.视图是一个虚拟的表,但其和真实的表一样,包含一系列 的带有名称的列
B.支持给视图添加索引
C.视图可以从一个已有的视图中导出
D.不支持物化视图
5.以下关于innodb存储引擎的说法,错误的是()
A.Innodb是MySQL中支持事务的存储引擎
B. Innodb当中的主键索引和数据时分开存放的
C. Innodb通过在Buffer Pool中缓存一部分热点数据来加速查询操作
D. Innodb同时支持表锁和行锁
七、DBA简答题(每题10分,共20分)
1.连接运算时数据支持的重要关系运算之一:
1)请简单说明数据库中两个表的关联方式有哪些?
2)哪种连接可以调整join顺序?
3)如果两个表没有关联条件会怎样?
4)请简单说明数据库中两个表的连接实现方式(实现算法)有哪些?
2.MySQL 中的索引采用B树组织,我们假设索引树中的中间节点和叶子节点都存于固定的block中,每个block大小为16K。同时我们假设该索引的key为 int类型(索引建立在int型的field上),长度为4个byte,而索引存储的相应row的指针或者block指针的长度也为4个byte。如下 图:
当这样一个表中数据行数为100万行,且block的使用率为2/3时,此时其索引树的高度是多少?请给出推到过程。