|
|
10.19 – 百度基础平台部 - 耗子
% p/ \! {2 m. k) h$ E( K- Z9 |9 p: X* E3 c
" |7 A! I0 O/ f2 `
+ s' c. }' M* \5 p一面
0 Z& ?1 | b, B0 h6 @" H" ~) C$ ~5 w) i/ ~一面碰到高手L,高手L就出了一道题,条件:给几十台mysql服务器,和一张访问非常频繁的数据表; x# ]9 m. i! \" x
1 问如何设计,能够提高表的大规模并发访问性能?
6 K% }8 Q6 Q l% P+ z我说要切分表。
+ f6 Z6 y1 N% h' h; z& }2 问怎么切分?
2 F4 d; P- |. h' d" y, J; z3 a我说hash静态切分ID,把表切到各个服务器上。, S+ k7 Z$ v! B5 X4 B7 t
3 hash的话假如节点经常悲剧或者经常有新的节点假如怎么办?数据暴增怎么办?某部分数据过度频繁访问怎么办?
! X' B- g) R6 m6 s* @- {6 l7 Y* I我说 经常挂节点就用一致性hash,或者用动态切分的方式,增加索引服务器(MDS)记录映射关系,然后局部数据过热做迁移。% ]6 j4 G, w J5 @* T/ q
4 迁移怎么迁?迁移过程中怎么保证业务连续性?迁移的话如果源服务器挂掉怎么办,怎么保证可用性?
! i" v8 ?9 H! u+ c& \我说 迁移后不删除源信息,要更改MDS上的元数据信息,元数据设计是(一段ID范围,一组服务器),然后在读某个ID时就在这个ID对应的这组服务器内做round robin方式的负载均衡。; H' I" G: n# ~- J6 W) p
5 如果用这个方法运维怎么办?一致性如何保证?
$ n+ e8 |5 r( q我说 那就干脆做副本吧,弄一个专门的备份服务器pool,哪台悲剧就顶上哪台,读的话直接做副本,写的话就做迁移。在运维时或者做OLAP时,直接忽略备份服务器pool中的数据。; l' Q( B8 E& G# S! Q* V0 @; \% g
6 那这种数据切分方式在遇到比如select * order by或者group by之类的查询怎么办?
2 T, T% l2 p6 f8 Q) O3 s答 每台服务器内部做order by group by操作,然后再做归并
" K0 ]% k8 K0 ^6 V7 那怎么select top 100呢。+ N- v% l1 S" [1 t. I: g3 ^
每台top100,做胜者树归并。
1 ~7 F/ c- ?! n8 P6 ~/ m8 那要统计去重复之后的结构呢,比如select * count(distinct name),去除重名的数据行,统计系统中有多少个name
) \* c8 L2 x/ n6 r% s$ ^) r答 单个mysql内部做select distinct操作,多个mysql服务器做归并。归并方法我说bloom filter,被否决,认为不精确。字典树,被否决,认为如果字符串中有汉字之类的,分支太多。最后老老实实多路归并,问多路归并怎么归并。答胜者树,不满足。答堆,勉强接受。 S4 h. M& F+ ?( Z
最后讨论了下 两个有序数组在归并时,怎样将复杂度降低到O(logn); U1 S* l% ?. G. i5 x, z6 y
& _% M! G5 E9 g8 {. L
二面
+ _! {6 w9 S) i+ I. C4 J一面面完元气大伤。二面碰到熟人,已经说不出来话了。
. R/ W$ l! u4 P: o这个部猛男剧多的。( D c0 z0 A0 z2 Q$ E1 J
挂了吧。。。
p- c( d' z8 Y- p+ J3 g3 M" |# e- a+ C# |
3 A2 }& J2 s$ H
4 }$ B, ?2 k) Z) ^. s% p! f8 @8 X D+ N文章摘自2012阿凡提求职手册——IT行业篇 5 z* O/ |/ ]! e, w3 ]8 `1 h) N. k
http://bbs.aftjob.com/thread-607158-1-1.html" i7 z v. V+ a* c
——! I+ E: x5 t/ m1 t% p
阿凡提百度(Baidu)求职俱乐部
* f' a$ t( _$ o |" \http://bbs.aftjob.com/group-4-1.html
& r {" Q: x) q$ E; f p' T2 ]0 b& V' ?——
5 {$ u* r/ E! A0 N关于Web前端及百度web前端笔试面试题目
& U. x" i* d( Dhttp://bbs.aftjob.com/thread-31614-1-1.html" N; H! v. V6 V E: L1 Q
百度质量部测试一面面经" F) D" y( s% b! o# S6 p
http://bbs.aftjob.com/forum-viewthread-tid-31594-fromuid-35176.html7 W! c/ p: T5 E+ R4 G2 {
百度面经篇- N+ }4 m+ @( i* W6 Y6 O
http://bbs.aftjob.com/forum-viewthread-tid-469368-fromuid-35176.html
7 M& Z0 @, i$ E7 o& p" n——1 C% K/ S- ~3 t2 n5 R
阿凡提(aftjob.com)求职社区2 L8 @. ?, o% L! Y3 r; C$ G! d
阿凡提求职俱乐部-国内第一家网络求职俱乐部,提供企业求职俱乐部和高校求职俱乐部交流平台。, ^0 h( u4 o+ e+ | T( d2 l8 [4 l5 `+ q
—— |
|