偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

專(zhuān)訪豆瓣網(wǎng)首席架構(gòu)師洪強(qiáng)寧:BeansDB與NoSQL的應(yīng)用與發(fā)展

原創(chuàng)
數(shù)據(jù)庫(kù) 企業(yè)動(dòng)態(tài)
BeansDB采用Key-Value存儲(chǔ)架構(gòu),其最大的特點(diǎn)是具有高度的可伸縮性,在大數(shù)據(jù)量下,擴(kuò)展數(shù)據(jù)節(jié)點(diǎn)將輕而易舉;但NoSQL的流行并不意味著關(guān)系型數(shù)據(jù)庫(kù)的消亡,NoSQL與關(guān)系型數(shù)據(jù)庫(kù)并存將是對(duì)網(wǎng)站架構(gòu)師的挑戰(zhàn)。

【51CTO獨(dú)家報(bào)道】在2009年數(shù)據(jù)庫(kù)大事記中,我們?cè)攸c(diǎn)關(guān)注過(guò)NoSQL運(yùn)動(dòng)和Key-Value形式的數(shù)據(jù)庫(kù)產(chǎn)品;在《分布式可擴(kuò)展非關(guān)系數(shù)據(jù)庫(kù)聚焦》一文中也曾介紹過(guò)幾款非關(guān)系型數(shù)據(jù)庫(kù)。今天我們一起深入國(guó)內(nèi)采用Key-Value的數(shù)據(jù)庫(kù)——豆瓣網(wǎng)的BeansDB。

豆瓣網(wǎng)首席架構(gòu)師洪強(qiáng)寧 
豆瓣網(wǎng)首席架構(gòu)師洪強(qiáng)寧先生接受51CTO記者訪問(wèn)

BeansDB于去年12月31日發(fā)布,是國(guó)內(nèi)知名網(wǎng)站豆瓣網(wǎng)自主開(kāi)發(fā)的針對(duì)大數(shù)據(jù)量、高可用性的分布式鍵值存儲(chǔ)系統(tǒng),在伸縮性和高可用性方面有非常好的表現(xiàn)。在剛剛結(jié)束的Qcon 2010開(kāi)發(fā)者大會(huì)上,51CTO記者有幸采訪到豆瓣網(wǎng)的首席架構(gòu)師洪強(qiáng)寧先生,對(duì)BeansDB和Python編程語(yǔ)言等方面做了深入交流。

BeansDB在豆瓣的應(yīng)用

BeansDB主要由Server端和Client端兩個(gè)部分組成。Server端用C編寫(xiě),使用Memcached的通訊協(xié)議,任何支持Memcached的Client端都可以與BeansDB的Server端同步來(lái)獲取和存儲(chǔ)數(shù)據(jù)。在Client端方面的主要差別是分布式的邏輯實(shí)現(xiàn)方面。目前,BeansDB的Client端主要是豆瓣自己用Python語(yǔ)言的實(shí)現(xiàn)。Client端的運(yùn)作方式是寫(xiě)數(shù)據(jù)時(shí)寫(xiě)入多份,讀的時(shí)候只讀一份,用其他任何語(yǔ)言實(shí)現(xiàn)也和簡(jiǎn)單。

BeansDB開(kāi)放在Google Code上,在采訪中,洪強(qiáng)寧先生談到,豆瓣開(kāi)放BeansDB,希望能看到其他語(yǔ)言的Client端實(shí)現(xiàn),讓這個(gè)BeansDB的使用更加方便,能讓更多人用到這個(gè)產(chǎn)品。

目前,BeansDB在豆瓣主要部署了兩個(gè)集群:一個(gè)集群用于存儲(chǔ)數(shù)據(jù)庫(kù)中的大文本數(shù)據(jù),比如日記、帖子一類(lèi);另外一個(gè)豆瓣FS集群,主要用于存儲(chǔ)媒體文件,比如用戶上傳的圖片、豆瓣電臺(tái)上的音樂(lè)等。

BeansDB的可伸縮性和可用性

豆瓣網(wǎng)開(kāi)發(fā)BeansDB,采用Key-Value的存儲(chǔ)架構(gòu)主要有哪些優(yōu)點(diǎn)呢?在訪談中,洪強(qiáng)寧先生為我們講解了BeansDB在可伸縮性和高可用性方面的優(yōu)勢(shì)。

BeansDB采用Key-Value存儲(chǔ)架構(gòu),其最大的特點(diǎn)是具有高度的可伸縮性;在BeansDB的架構(gòu)下,在大數(shù)據(jù)量下,擴(kuò)展數(shù)據(jù)節(jié)點(diǎn)將輕而易舉,只需要添加硬件,安裝軟件,修改相應(yīng)的配置文件即可。

BeansDB在可用性方面也有很大的優(yōu)勢(shì),任何一個(gè)節(jié)點(diǎn)宕機(jī)都不會(huì)受到影響,數(shù)據(jù)是自動(dòng)伸縮冗余的。在運(yùn)維方面也很簡(jiǎn)單,基本上沒(méi)有什么用戶數(shù)據(jù)的冗余殘余,所有數(shù)據(jù)通過(guò)一個(gè)同步腳本可以快速同步。

NoSQL是對(duì)網(wǎng)站架構(gòu)師的一個(gè)挑戰(zhàn)

BeansDB是對(duì)亞馬遜Dynamo數(shù)據(jù)庫(kù)的一個(gè)簡(jiǎn)化,是對(duì)NoSQL的一個(gè)延伸。在談到去年蓬勃發(fā)展的NoSQL運(yùn)動(dòng)時(shí),洪強(qiáng)寧說(shuō):去年可以稱(chēng)之為NoSQL元年,大量的NoSQL數(shù)據(jù)庫(kù)發(fā)布并被人們注意到。這與互聯(lián)網(wǎng)的發(fā)展有很大關(guān)系,互聯(lián)網(wǎng)發(fā)展帶來(lái)一個(gè)問(wèn)題就是數(shù)據(jù)的海量增長(zhǎng),數(shù)據(jù)的可伸縮性是一個(gè)主要問(wèn)題。傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)在這方面有一定的局限性,NoSQL就是為解決這一問(wèn)題而誕生的。

隨著NoSQL數(shù)據(jù)庫(kù)的逐步成熟,會(huì)有越來(lái)越多的網(wǎng)站會(huì)把相適應(yīng)的邏輯放在NoSQL數(shù)據(jù)庫(kù)上來(lái),會(huì)看到越來(lái)越多的網(wǎng)站在應(yīng)用NoSQL數(shù)據(jù)庫(kù)。

洪強(qiáng)寧同時(shí)強(qiáng)調(diào),NoSQL的流行并不意味著關(guān)系型數(shù)據(jù)庫(kù)的消亡。NoSQL與關(guān)系型數(shù)據(jù)所關(guān)注和應(yīng)用的點(diǎn)并不相同:在一個(gè)網(wǎng)站里面,除了有伸縮性的需求之外,還有關(guān)系型數(shù)據(jù)庫(kù)更合適的需求,在某些應(yīng)用場(chǎng)景下,應(yīng)用關(guān)系型數(shù)據(jù)更加有效合理。

NoSQL與關(guān)系型數(shù)據(jù)庫(kù)并存是對(duì)網(wǎng)站架構(gòu)師的挑戰(zhàn)。以前架構(gòu)師只考慮如何應(yīng)用關(guān)系型數(shù)據(jù)庫(kù),現(xiàn)在我們要考慮的是如何更好的同時(shí)應(yīng)用好關(guān)系型和非關(guān)系數(shù)據(jù)庫(kù)的挑戰(zhàn)。這將是未來(lái)網(wǎng)站架構(gòu)師需要關(guān)注的一個(gè)方向。

關(guān)于NoSQL請(qǐng)參考51CTO之前的報(bào)道《對(duì)SQL說(shuō)不!NoSQL的數(shù)據(jù)庫(kù)技術(shù)革命》和《探尋關(guān)系數(shù)據(jù)庫(kù)和ORM的最佳替代者

關(guān)于BeansDB請(qǐng)參考《豆瓣網(wǎng)開(kāi)源數(shù)據(jù)庫(kù)BeansDB發(fā)布 采用分布式鍵值存儲(chǔ)》 ,BeansDB的一些特性列表:

◆高可用:通過(guò)多個(gè)可讀寫(xiě)的用于備份實(shí)現(xiàn)高可用

◆最終一致性:通過(guò)哈希樹(shù)實(shí)現(xiàn)快速完整數(shù)據(jù)同步(短時(shí)間內(nèi)數(shù)據(jù)可能不一致)

◆容易擴(kuò)展:可以在不中斷服務(wù)的情況下進(jìn)行容量擴(kuò)展

◆高性能:異步IO和高性能的KeyValue數(shù)據(jù)TokyoCabinet

◆可配置的可用性和一致性:通過(guò)N,W,R進(jìn)行配置

◆簡(jiǎn)單協(xié)議:Memcache兼容協(xié)議,大量可用客戶端

客戶端

目前只提供了Python版本的客戶端,在python目錄中,該目錄中各文件的左右如下:

◆dbclient.py BeansDB的客戶端,由memcached的客戶端簡(jiǎn)單封裝而成

◆status.py 查看BeansDB的狀態(tài),各個(gè)節(jié)點(diǎn)的數(shù)據(jù)分布,以及同步狀態(tài)

◆sync.py 同步各節(jié)點(diǎn)

◆httpd.py HTTP方式訪問(wèn)BeansDB的內(nèi)容(目前只有GET方式)

◆store.pyx, dbserver.py test.py setup.py

◆Python 版本的BeansDB,核心部分是C實(shí)現(xiàn)

51CTO專(zhuān)訪洪強(qiáng)寧視頻請(qǐng)見(jiàn)下一頁(yè)

#p#

視頻采訪實(shí)錄

責(zé)任編輯:佚名 來(lái)源: 51CTO.com
相關(guān)推薦

2010-04-24 22:15:21

Python豆瓣洪強(qiáng)寧

2012-04-26 10:22:27

豆瓣網(wǎng)洪強(qiáng)寧Python

2016-08-29 11:33:23

京東云云計(jì)算云安全

2012-03-26 20:10:58

去哪兒架構(gòu)師藝術(shù)家

2011-12-23 15:56:02

2009-06-30 16:34:44

微軟

2010-03-02 09:44:32

首席架構(gòu)師趙亮

2009-12-18 10:22:50

Ray Ozzie架構(gòu)師

2010-12-16 11:05:36

數(shù)學(xué)程序員Google首席Jav

2020-06-28 14:15:52

前端架構(gòu)師互聯(lián)網(wǎng)

2012-03-21 17:30:21

百度架構(gòu)師

2012-04-25 14:33:52

HTML5UniSDP混合應(yīng)用

2017-04-16 00:26:34

融云直播互動(dòng)系統(tǒng)

2011-03-11 15:38:08

Java

2012-05-09 08:59:59

百度云架構(gòu)師林仕鼎

2010-04-20 09:18:00

架構(gòu)師

2011-07-15 09:44:20

Ruby

2011-05-13 09:46:20

MySQLNoSQL

2009-12-31 09:51:59

BeansDB鍵值存儲(chǔ)

2014-04-09 18:01:42

京東
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)