|
|
10.19 – 百度基础平台部 - 耗子
" g N8 Q! h' K: \ x# z9 V; Y+ N9 r+ N& \; o2 t
# V! W* \. P- X% o* N7 t9 J
4 R: [% ~, T5 F' V一面8 C6 a/ @6 j3 R; c+ y% |+ F4 h9 B
一面碰到高手L,高手L就出了一道题,条件:给几十台mysql服务器,和一张访问非常频繁的数据表: }2 R) t% u) o
1 问如何设计,能够提高表的大规模并发访问性能?
' d& l$ {- i- g; _4 |9 |. t5 n我说要切分表。
" ?7 c, L J9 U) D/ T; B* M8 g2 问怎么切分?
/ }4 X4 u/ O2 j% w% _我说hash静态切分ID,把表切到各个服务器上。
& ~! {) e, V; F4 y/ Q; ]1 ^1 K3 hash的话假如节点经常悲剧或者经常有新的节点假如怎么办?数据暴增怎么办?某部分数据过度频繁访问怎么办? i& f2 i+ K5 {* x0 w
我说 经常挂节点就用一致性hash,或者用动态切分的方式,增加索引服务器(MDS)记录映射关系,然后局部数据过热做迁移。
% _7 q( @7 x6 l9 w4 迁移怎么迁?迁移过程中怎么保证业务连续性?迁移的话如果源服务器挂掉怎么办,怎么保证可用性?
, b9 s& ?$ M6 B7 S0 E2 ^我说 迁移后不删除源信息,要更改MDS上的元数据信息,元数据设计是(一段ID范围,一组服务器),然后在读某个ID时就在这个ID对应的这组服务器内做round robin方式的负载均衡。/ i/ Y+ _) T# N/ O
5 如果用这个方法运维怎么办?一致性如何保证?; f) H* i' n; G! m8 b- k' I
我说 那就干脆做副本吧,弄一个专门的备份服务器pool,哪台悲剧就顶上哪台,读的话直接做副本,写的话就做迁移。在运维时或者做OLAP时,直接忽略备份服务器pool中的数据。
; Z& }& V1 t- c, a' ?6 那这种数据切分方式在遇到比如select * order by或者group by之类的查询怎么办?
& m7 b0 }% u3 F) ~. L答 每台服务器内部做order by group by操作,然后再做归并& p# r# G `: z1 Y% \% S% p
7 那怎么select top 100呢。
8 V6 U+ ^' k+ {( u9 m4 }& \0 \每台top100,做胜者树归并。& q' r$ X: v7 l8 x/ R
8 那要统计去重复之后的结构呢,比如select * count(distinct name),去除重名的数据行,统计系统中有多少个name
/ I" e i6 t+ U, j" ?( s R" u h答 单个mysql内部做select distinct操作,多个mysql服务器做归并。归并方法我说bloom filter,被否决,认为不精确。字典树,被否决,认为如果字符串中有汉字之类的,分支太多。最后老老实实多路归并,问多路归并怎么归并。答胜者树,不满足。答堆,勉强接受。. b+ O% G& l! C; p+ s
最后讨论了下 两个有序数组在归并时,怎样将复杂度降低到O(logn) n) C0 f, Y- y) V7 U
) t3 l9 @! l1 v# b! Z
二面
1 i0 X5 ^4 @" R! G; ]3 z5 e U一面面完元气大伤。二面碰到熟人,已经说不出来话了。
( e+ [& ~0 V8 o$ Q" }% I$ E. r这个部猛男剧多的。
1 T. @; [$ Z! D# `) k8 i! ]/ |挂了吧。。。
2 a% k; _/ ?) P& p8 |& m7 j. \6 K$ L" L" m+ w" d
' P* Q; C3 v, j
) E9 b% K. l( ~9 S3 x- L; x文章摘自2012阿凡提求职手册——IT行业篇 $ `. p+ p! W& X& K
http://bbs.aftjob.com/thread-607158-1-1.html- }8 t0 |! ?9 C8 m' f/ c; T
——
% U: O. z% m7 y阿凡提百度(Baidu)求职俱乐部5 {) A: q& l+ c1 s- {
http://bbs.aftjob.com/group-4-1.html- }2 {" }) [# Z1 k" [& G4 N6 @
——
, U& |* \% g0 E6 G. b& `+ E u关于Web前端及百度web前端笔试面试题目& h8 _% V9 e' @6 n) f
http://bbs.aftjob.com/thread-31614-1-1.html5 L7 r* F$ Y4 t
百度质量部测试一面面经& z6 K. Q& _7 @2 F
http://bbs.aftjob.com/forum-viewthread-tid-31594-fromuid-35176.html. d9 o# x& A3 Q8 V
百度面经篇
7 q# {! C7 j/ {http://bbs.aftjob.com/forum-viewthread-tid-469368-fromuid-35176.html4 t9 O% l9 G' d& {9 s$ g( F- z
——. K% F0 ~3 O# Q6 n# o6 T
阿凡提(aftjob.com)求职社区5 P a8 R7 u5 i( K: P- y* f; s' f
阿凡提求职俱乐部-国内第一家网络求职俱乐部,提供企业求职俱乐部和高校求职俱乐部交流平台。( U9 Y9 h( i* @. y3 a0 f
—— |
|