豆瓣的基礎架構

2022-08-02 15:06:07 字數 987 閱讀 8334

beansdb專案可以說是乙個簡化版的aws dynamodb,該專案在2023年啟動,2023年開源,第⼀版使⽤tokyo cabinet作為儲存引擎,2023年使⽤bitcask儲存格式重寫了儲存引擎,效能更好。beansdb對key做雜湊運算找到節點來實現分布和冗 餘, 乙個寫操作會寫好幾個節點,而現在的配置是寫三份讀乙份。beansdb主要的特點是支援海量kv資料庫——相比redis這種支援幾十個g到幾百個g的 記憶體kv資料庫,beansdb可以支援到上百t的資料。另外beansdb最大的好處就是運維很簡單,效能、可用性、擴容都很好,也實現了最終一致性。

beansdb中間的proxy是用go語言寫的,也是乙個開源的元件。整體來說beansdb的設計結構比較簡單,相比redis那種有多種value 型別的方式,beansdb的value比較簡單一些。

在豆瓣內部建立了兩個不同的beansdb集群,乙個是doubandb,乙個是doubanfs,分別針對不同的場景。doubandb主要儲存 小型文字資料,如影評、使用者個人介紹、帖子內容等,這樣的好處是可以大大降低我們對mysql的效能依賴,算是給mysql減負;doubanfs主要存 放和音訊等中型資料。

dae可以說是基於很多以前積累的、舊的元件做起來的。我們做的這種對內的paas,相比對外的paas而言做了很多簡化,尤其是安全方面如應用間 隔離、許可權管理方面,我們都不用像公有雲那樣花大量精力去做,所以工作量其實還好。dae現在在計畫開源,當然它現在只支援python應用。以後我們也 許會讓dae支援go語言。

dpark顧名思義是spark的python實現,不過現在已經跟spark越來越不一樣了。和 hadoop 相比,spark可以使用記憶體做為快取加速分布式計算,dpark繼承了這個優點,這對於大規模資料的迭代計算非常有用。在豆瓣的應用場景下,因為我們的 離線計算很多是推薦演算法計算,這種計算涉及大量的迭代演算法,如果每次計算的結果都入磁碟再在下一輪計算載入,那效能是很差的,所以dpark能夠大幅提公升 效能。另外,因為dpark的編寫使用了函式式語言的特點,所以可以寫的非常簡潔。

原文豆瓣的基礎架構

豆瓣的基礎架構

豆瓣的基礎架構 離線部分則包括資料探勘 資料分析等,技術元件分別是海量分布式檔案系統moosefs,這個文 件系統的結構類似hdfs,用c語言編寫,其好處在於fuse模組實現的比較好,用檔案系統就可以直接進行操作,而不需要專門的命令,可以支援的資料量也 很大。另外就是自己開發的分布式計算平台dpar...

豆瓣的基礎架構讀後感

beansdb主要的特點是支援海量kv資料庫 相比redis這種支援幾十個g到幾百個g的 記憶體kv資料庫,beansdb可以支援到上百t的資料。另外beansdb最大的好處就是運維很簡單,效能 可用性 擴容都很好,也實現了最終一致性。跟豆瓣其他工程團隊一樣,平台部也強制大家做code review...

mysql架構 MySQL的基礎架構

mysql是關聯式資料庫,關聯式資料庫,顧名思義,是建立在關係模型基礎上的資料庫,我們現實世界中的各種實體以及實體之間的各種聯絡一般可用關係模型來表示。經過數十年的發展,關聯式資料庫在理論和工業實踐中都已經發展到很成熟的地步,可以說,目前的絕大部分應用,使用mysql都有成熟的解決方案。資料庫的架構...