1. 程式人生 > >CockroachDB —— 像小強一樣堅不可摧的資料庫

CockroachDB —— 像小強一樣堅不可摧的資料庫

97ZV

上圖為CockroachDB的老版LOGO,下圖為CockroachDB的新版LOGO

CockroachDB

蟑螂是地球上適應性最強的物種之一。它們能在無氧環境下存活45分鐘,在沒有食物的情況下存活超過一個月。甚至就算身首異處也無法讓小強當場斃命——他們的身體沒了頭都還能活好幾天。

在像 Google,Amazon 和 Facebook 這樣的科技巨頭內部,掌握領先技術的工程師們也在讓他們自己的網站像小強一樣頑強。如果一臺伺服器宕機,一個伺服器叢集宕機,或者整個資料中心電力中斷,那這些網站每一秒都在損失大量收入。

現在,一個開源開發者小組想讓每一家公司都能夠通過使用這種完全基於網路的雲端計算系統來搭建如小強般頑強的網站。他們為專案命名為“CockroachDB”(“小強DB”),在宣傳中稱該專案是“具有超強生命力的資料庫”。或許蟑螂被用在軟體命名中很違和,但聯合創始人 Spencer Kimball —— 一名前 Google 工程師 —— 則認為只有小強才能配得上他們的專案。

“這個名字代表了專案最重要的兩大特徵:首先不用說,是生存性,其次是一種近乎自主的散佈性”。

和很多其他同類型的開源專案一樣,CockroachDB 的靈感來自於一份 Google 的研究論文,這篇論文詳細地介紹了一種叫做“Spanner”的大型系統。Spanner 將允許 Google 將資料分佈到全球上百個資料中心的上百萬臺伺服器。系統的開發大約會耗時5年。

目前專案還處於 α 階段的開發,離實際應用還很遙遠。但 CockroachDB 小組也是現在唯一一個致力於實現 Spanner 系統的開發組。不少參與專案的開發者都曾就職於 Google,但沒有一個參與過 Spanner 專案。這其中,最出名的 Photoshop 開源替代產品 GIMP 的的聯合創始人 Spencer Kimball 和 Peter Mattis 曾幫助開發 Google 的大型檔案儲存系統,也就是 Colossus;Ben Darnell 曾參與過 Google Reader 開發,而 Andy Bonventre 則參與過 Chrome 和 Google Tasks 的開發。

CockroachDB 並沒有嘗試複製 Spanner 最不尋常的理念——用原子鐘來讓全球各地的資料中心時間同步。考慮到大多數線上應用都沒有達到 Google 的規模,他們或許不需要這樣的功能。Kimball 表示,這些公司真正需要的是是有一種穩定可靠的方式來讓資料自動複製和同步到各個資料中心的伺服器裡,這樣就算一個數據中心倒下了,應用還能正常執行,這也是 CockroachDB 的目標。