因為最近需要一些巨型網站的架構來參考,所以做了初步地調查。資料庫沒有意外的 MySQL 依舊是 Open Source 資料庫的第一名。
其中 YouTube 也是使用 MySQL 這讓我頗為驚訝與帶有些許的懷疑,在 Youtube 資料量龐大的規模情況下想必其架構一定並非如此簡單。首先,經過網路上的資料整理 ( 不少為早期的資料 ),大概可以分類為 MySQL 裡面放的為 Metadata ( 應該為影片的描述、標籤等資料 ),Google's BigTable 存放 Thumbnail。
針對 YouTube 使用 MySQL 部分,整理資料時在 Github ( 或 Google Project ) 上面發現 YouTube 團隊針對 MySQL 開發了優化 MySQL 效能的工具 Vitess ,GitHub 頁面上也描述 Vitess 為目前 YouTube MySQL 架構下使用中的基礎元件。可以確認的是 YouTube 仍然正在使用 MySQL,但也代表了 MySQL 應用於巨型網站下仍有不足之處。Vitess 介紹如下:
不過值得注意的是,在瀏覽 Vitess 的頁面時發現了一個重點,發現 Vitess 團隊目前正積極開發相容 MariaDB 的版本 !!! MariaDB 目前正逐漸地取代原本 MySQL 的地位,根據 YouTube 團隊開發 Vitess 相容 MariaDB 的動作,可以想像 YouTube 不久之後會轉為使用 MariaDB 取代 MySQL。以上為初步地調查結果給大家參考,喜愛 MySQL 的開發者或許可以開始使用 MariaDB。
熱門文章
-
之前分享了如何透過 Django 回傳 JSON 資料,接著要利用本篇來介紹如何處理 JSON Request。( 其他 Django 相關教學可以參考 本篇整理 。If you want to read this article in English, you can visi...
-
當專案想加入自訂的 Libraries 時可以透過 Eclipse 加入並群組化,過程非常方便跟簡單。而且若之前有建立過的 Libraries 也可以直接引入,不需要每新增專案就得重新一一加入 JAR 檔。
-
這篇文章要介紹如何使用 WhiteNoise 來處理 Django 的靜態文件,為什麼需要特別方式來處理呢?因為,在開發模式下 (Debug 模式開啟),Django 會有一套預設的機制來替你處理靜態文件。然而,在正式環境下 Django 則強烈建議使用其他的方式來 Serve...
-
先前文章都是討論比較單純架構下的情況,若我們需要遠端執行程式於其他的機器上時,我們也可以透過 RabbitMQ 來完成。本篇將討論如何透過 RabbitMQ 執行 Remote Procedure Call。( 其他 RabbitMQ 相關教學可以參考 本篇整理 )
-
RabbitMQ 提供了一組預設使用者 guest,但是想用 guest 使用某些功能必須經由 localhost,而自行新增的使用者則不受限制。因此,本篇將要介紹 RabbitMQ 使用者的管理,包含如何新增使用者與設定其權限。( 其他 RabbitMQ 相關教學可以參考 本篇...