自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

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

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

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

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

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

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

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

BeansDB的可伸縮性和可用性

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

客戶端

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

◆dbclient.py BeansDB的客戶端,由memcached的客戶端簡單封裝而成

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

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

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

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

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

51CTO專訪洪強(qiáng)寧視頻請見下一頁

#p#

視頻采訪實(shí)錄

責(zé)任編輯:佚名 來源: 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ù)家

2009-06-30 16:34:44

微軟

2011-12-23 15:56:02

2010-03-02 09:44:32

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

2010-12-16 11:05:36

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

2009-12-18 10:22:50

Ray Ozzie架構(gòu)師

2012-03-21 17:30:21

百度架構(gòu)師

2017-04-16 00:26:34

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

2012-04-25 14:33:52

HTML5UniSDP混合應(yīng)用

2020-06-28 14:15:52

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

2011-03-11 15:38:08

Java

2012-05-09 08:59:59

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

2010-04-20 09:18:00

架構(gòu)師

2014-04-09 18:01:42

京東

2011-07-15 09:44:20

Ruby

2009-12-31 09:51:59

BeansDB鍵值存儲

2011-05-13 09:46:20

MySQLNoSQL
點(diǎn)贊
收藏

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