58hvĎC¥8ãáŞ
58hv»Þ�¬ãáŮ#
ªÁV#
2012'04'07#
?îŃ
• C¥8ãá'įnĄĂ
• ŹŃŬ"xĕĒŋ
#######ÅƂřúFĈă,6Hĭ®¹#
#######Ĉ8ãáõŢ#
• /ʼnņC¥8Ďãá!
#######CâŹö�6Ł#
#######/6HRAS(eź�eĈ�e¹);#
#######FĈĖ*,CĬ8#
#######58ĎC¥8Ş(mysql,mongodb,file#
system,hadoop)#
#
#
'į�
• ůý#
#ãá#
• Ćň#
CAP#:##Consistency##Availability#ParHHon#tolerance#dĻûś=�#
#####################BASE##:Basically#Available
xÝeĈ�SoK#state
ä®Ă�#
#####################Eventually#consistent
×Į�ľ�####
#####################ACID##
\®##�ľ®##ŷę®###¿�®�#
#####################I/O!Cű÷E#
###################Amdahl©nGustafson©#,#È©#
#################
'įnĄĂ
ĄĂ�
Amazon##2011�Amazon#S3ÚNyM�5000&+8ŔnÎ*#
########»Þ:#SimpleDB#�#Dynamo#
!FacebookĐJ<ąīņİÙŚŦ1400&§ÿĀ_rFacebookĶĠ
��ôsÙŚŦ2.5&§ÿĀ�-ĽFacebook,FacebookĐJ8Ď
ÿĀnŅſÍÂŰŚŦ100PB(1PB=1024TB,HBaseôØ81350&à4
¯#
####»Þ:##FacebookqĀ8ĩij##HayStack,##cassandra�hbase#
Google###2008#œñĶżĪ¦ÍŰğĔ1�
#####»Þ:##Google#Megastore#,##GFS,#bigtable#
Zynga!!Draw#Somethingr_JAl�±�3S5č�Ď�šŰ�ôÑ
øŜĈ´ÖÔŤH1S5č�)��ôěŚŦ3000§ĎqĊ$ć#
######»Þ:#Couchbase###vs#EA#The#Simpsons##�ã#
#
'įnĄĂ
xĕĒŋ�
• ÍÂıá#
• ĶIJ#
• Ÿĸ#
• É0ĩij#
• 8žw#
• =žw#
xĕĒŋ
ĶIJ!
!
¦;!
!
C10Kųƀ,C500K�C**K�!
!
ÚNpïu!
#s:1#,#c:1#,#bio;#��Ŏö��ĭĝ#
#s:1#,#c:n#,#nio##;}�Ŏö���ĭĝC_##
#seda#:Staged#Event'Driven#Architecture#
#Select#(şō)#n#epoll#
�*ƁO#callback�#
#
Ýŗ!!
Ï÷:##I/Oïu##ĺŕDC#?ênWŇè,Q#
Đç#:ŰZĈCPU#�ÅƂřúFĈă,6Hĭ®¹#
##########DRMf(C¥8nņĥf)ĎĐç�ľ#
#
ĈĶIJ !
Neay#,#Mina�#libevent�libev,#ACE�ASIO#
#
xĕĒŋ
!!!!!!!!!!!!!!!!!!gĚIOïu!
C¥8ãá
ÍÂıá!
#
�Ń8ïu#
Consistent#hash,#(]�¬Q#)#
#
#
B+#tree#,#(Ó,Ŷß)#
#
#
LSM#tree,##(ºŰ#Ž)#
#
#
#
=#
Bitmap##(bloom#filter#Ĵm�)###Dynamo,hbase#
Merkle#Tree#(�ľ®)###Dynamo#
Skip#List##(#ŝł#lsma¨)#####leveldb#
prio_tree##(,:ÆĪé####mmap)##mognodb##
xĕĒŋ
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!consistent!hash!!
C¥8ãá
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!B+!!!tree!
C¥8ãá
!!!!!!!!!!!!!!!!!!!!!!!!!!cassandra!ÍÂ8Ŧĝ!
C¥8ãá
!!!!!!!!!!!!!!!!!!!!!!!!Lsm!!tree!!
C¥8ãá
###############################Merkle#Tree#
C¥8ãá
Ÿĸ!
1 �#�Master_slave#;#P2P(<�)#
#
É0ĩij!
ŨĝŐ¢#?ĦĆ###Î*ĦĆ
#
8žw!
8Ė*###
�NnŲ
#MVCC##�óÅ###�óÅ##,paxos�#
ĈÍ
#·R#512,#?ż4k#,#ėďt~#4k##mtu##1500#
!
=žw!
%ÕĻ#:#k_means#
xĕĒŋ
xĕĒŋ¡Ĉ�
• Dynamo#####ÍÂhò#,####BT�š#
########Merkle#Tree#
• memcached###
###############linux#?ĦĆ##+#libevent##+#(consisten#hash#)#
###########
xĕĒŋ
/ʼnņãá�
• CâŹö�6Ł#
• 2ĈKiss\E#,#6HRAS#
• ʼnņn9CFĈĖ*,CĬ8#
58ĎC¥8Ş
mysql,mongodb,file#system,hadoop�#
/ʼnņ
!!!!!!!!!!!!!!!CâŹö�6Ł!
1##CâŹö#
###########ÍÂıá##ıáQ#UıáQ##Î*##table#,#object##
###########ÍÂāý##Ű~#
###########Ŋųï¥###ŏ@õ3�Óŏ@�Žŏ@#
###########Ó®#
#
2#Ł#
#
######1#CAPĆň#,#BASEĆň/ACID#
######2#Ū¾8ïu##B+#or#LSM#
#########řúFĈănĦĆ#Ƃkjn.£ũ##Ŷß�Ž#ńï�Ó#B+#or#LSM#
#######
3#Ş#
########MongodbŪ¾#
#
/ʼnņ
!!!!!!!!!!!!!!!!!!\EnĐç!
\E
!kiss!
###############unix#ʼnņo#
#
Đç:!RAS!
RAS:#Reliability,#Availability,#Scalability#Ƃeź�ƂeĈ�Ƃ¹#
#
R:ŦšÄI###:#Qos,#(ŶßÒÜíù)#
A:#ü#◊}KÝ#
hßå�ßµ�ÍÂ�¬�#
S##¹#◊#CĀ#
##a#`ï#b#�ľ®hash##c#B+##tree#²aĚ#
#
/ʼnņ
!!!!!!!!!!!!!!!!FĈĖ*,CĬ8!
ÍÂ�¬!
Facebook¤úÚNp ÍÂ�¬,¤ú8Ïì,##
CĬ8!
######ĶIJ£ũ##Ů®\Ć#◊#cdn#
######ÀŔŊųþýŨŀťĜ
#
#############×þĎŨSSD��ģþ¢ĎÌSAS�Šþ¢ĎSATA#
#
Û!
Ė*Cę,###1ĎCPUr�fÚNp��Ĺ?rc|�fÚNp�Ķ[eĻr
Ģ�fÚNp�#
#
/ʼnņ
!!!!!!!!!!!!!!!!!!!!!!!!!!!facebookÍÂ�¬ĉL!
C¥8ãá
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!cdnCĬĘ3!
C¥8ãá
!!!!!!!!!!!!!!!!!!ÍÂC!
C¥8ãá
�
4¯ĩijãá�
• ãá:##
################search#engine(index)#+Mysql#(shard#+#M/S)+#memcached##
#######C #:#infoid#%#dbNum#
#################infoid#ć±:##local#Hmes#+##ip(mac)#+#pid#
################Memcached#½³#90%)�Ŏö#
ÍÂŰ:########
#######4¯(Ř):##~10&,##20K#qps#�256#dbs#
• ,ý#
##
• #####ãáĤX#Ƃeź®
@logfile,ŖůŌ�#
########Ƃ¹
2Ď5͹,#{''>���#�ĈĜOÍÂ;#
• #####¹Ó�Ĉ7ÚN#
#
#################
'įnĄĂ
�
Ġ?4nijņÍ�Ó�ãá�
• ãá
#mongos#+#auto#sharding
ļOCĀ�#
########ÓijņÍÚNãáať:#(mysql#+#memched)#→##mysql+#(¡Ĉ6Ĵ
)''>cassandra''>redis''>#mongodb(ĭ®¹)#
########TĬ�ūĈÚN:appid+appinforid##==#_id##
##Mongodb,P:#ƂeĈ�Ƃ®Ļ,ĭ®¹,Ðï¥�æōÊ¿#
ÍÂŰ#
message#:#~2
######################Steps#:#ijņÍ:##~10&,##10kqps,#10ktps,##
Ş!:####
###########1#shard#key#
Steps
inforid#,#message#:#userid#
##########2##range(sql)to#kv#
range#to#kv##(®Ļmsgcount);sql#to#kv(>®)#
• ####3##key#Ű#;#4##Œ°2ĈļOCĀ#5#2Ĉmongos(ƂeĈ)##
#################
'įnĄĂ
�
qz8�
ãá!:###cdn#(Squid)#+#(lvs)+#Ngix#((Ć,Óć±ĵČq#by#GraphicsMagick)#
+hapServer(Ã;#webdav,sso)#+##simple#GFS(master'slave)#
#######¹#:##restĎURIð¹;Î*iǶÙĎ4¯#
#######{+
�+#�#�#+##Ó{#+
£Ó{+#�hßµ�#
#######Ct
Block#Size#128M#(opHon)#,##>8M#¼Cchunk###
###########Resoul##:#hap://*..58control.cn/n_1817278286***.jpg#
ÍÂŰ:###total#10t##,##100G/add#;#500w#;##20:1#(r:w);#1000iops#
,ý!:##
########ƂeĈ#Ƃ¹;#
########Óć±##ĿđĞŴ#
�ś#:##
#######
#################
'įnĄĂ
�
C¥ņĥĎŞ�ŵM��
##x�HadoopĎijņCâf!
#######^ĎĈ´ċŻ;##HBASE��ŃÍÂú;#
#######ÍÂËŸ#js#,#udpÃb#,hap#Ãb;#log#file#;#
#######ÍÂCâ
d@ŮC�N(ē;ļOć±(ē�Ůķnŧŀ.#
#
#######Ĉ´ýBŀ�Câ#
ÀÓŴó,Rw�ĨGijņýBÍ�#
#######¸ŀŦĝ:Js(żŻ;)#→#hap#Server#''>udp#Server#''>\ţ;ÍÂ#→#
hadoop#''>ć±ijņÍÂ#
#######Drm f;!
#######ëÂJġŎöOyM²MËĠýnÚN.#
###ÓņĥGG>spark,S4,hamaģ;!
#####!!MpI(scala)!;ESB;C¥�Ŵ;!
#################
'įnĄĂ
Q&A!
!
«Y
hOp://weibo.com/zhuozhe!
ŭħ
xuzh@58.com!
!
!!!!!!!!!
!
!
ő!ő!
关注我们:t.baidu-tech.com
资料下载和详细介绍:infoq.com/cn/zones/baidu-salon
InfoQ 策划·组织·实施
关注我们:weibo.com/infoqchina
“畅想•交流•争鸣•聚会”是百度技术沙龙的宗旨。 百度技术沙龙是由百度与InfoQ中文站定期组织的线下技术交流活动。目
的是让中高端技术人员有一个相对自由的思想交流和交友沟通的的平台。主要分讲师分享和OpenSpace两个关键环节,每期
只关注一个焦点话题。
讲师分享和现场Q&A让大家了解百度和其他知名网站技术支持的先进实践经验,OpenSpace环节是百度技术沙龙主题的升华
和展开,提供一个自由交流的平台。针对当期主题,参与者人人都可以发起话题,展开讨论。
本文档为【分布式存储架构实践】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。