VoltDB簡介:對 Java 代碼使用一個記憶體型的、高效能的資料庫

來源:互聯網
上載者:User

簡介

過去幾年來,出現了一種稱為 NoSQL 的新型資料庫管理系統。設計這些資料存放區是為了克服在擴充傳統關 係數據庫來處理一些應用程式時必須處理的資料負載類型的難題,比如說 Amazon。這種延展性的實現需要 一定的代價:NoSQL 系統通常不符合 ACID(原子性、一致性、隔離和耐久性);它們最終一致地表明,只要 給定一定量的時間,所有資料更新最終都會通過該系統傳播。這不符合某些類型的應用程式的要求。

過去用於線上交易處理 (OLTP) 的關聯式資料庫管理系統確實提供了一致性保證(它們符合 ACID),但其擴充 難度更大,且成本更高。研究還表明,它們的效率也不是特別高:CPU 花費了大約 10% 的時間來檢索和更新 記錄,剩餘 90% 用於處理緩衝區管理、鎖定、閂鎖 (Latch) 和日誌記錄等任務。

傳統的關聯式資料庫 (比如 MySQL)和大多數 NoSQL 系統將其資料存放區在磁碟上。VoltDB 將所有內容儲存在主要記憶體中。如果可 以避免進入磁碟,就可以獲得顯著的效能提升,訪問記憶體比訪問磁碟快一個數量級。如今的 RAM 成本比過去 廉價得多,再結合 64 位元計算的出現,您可配備一個具有數百 GB 主要記憶體的、標準的、即買即用的伺服器。

VoltDB 資料庫由大量分散在多個網站(伺服器)上的分區組成。一個網站上啟動並執行每個分區是單線程 的,這消除了與典型多線程環境中的鎖定和閂鎖有關的開銷,事務請求會按順序執行。

NoSQL 資料庫 (顧名思義)沒有使用 SQL 作為查詢語言。例如,MongoDB 查詢使用 JSON 表達。Riak 和 CouchDB 都支援 使用 map/reduce 功能進行查詢。VoltDB 使用 SQL 作為其查詢語言,大多數使用過資料庫的開發人員都熟悉 SQL,從這個意義上講,這是一種優勢。但一些 NoSQL 資料庫所提供的查詢介面並非如此。

對 VoltDB 中儲存的資料的訪問是通過使用 Java 語言編寫的預存程序來完成的;SQL 陳述式嵌入在一個預存程序中。相對 於 JDBC 等協議,從預存程序內執行 SQL 查詢的一個優勢是:每個事務只需在用戶端與伺服器之間往返一次 。這消除了與通過網路在應用程式與資料庫之間進行多次調用相關聯的延遲。

VoltDB 有兩個版本:一 個開源社區版本和一個付費企業版本。本文將重點介紹社區版本。一些特性只有企業版中才有,這裡不會介紹 這些特性。

入門

要嘗試使用本文中的一些樣本,您需要下載並安裝 VoltDB。本文中使用的版本是 2.5 版的社區版本。

VoltDB 需要一個基於 64 位元 Linux 的作業系統;此要求也適用於 Mac OSX 10.6。您還需要安裝 Java 開發套件 (JDK 6)。可以使用 Eclipse 來編輯原始碼。

Amazon EC2 和 VMware 映像也可供下 載,下載它們之後就可以立即正常使用它們。

VoltDB 以 tar 壓縮檔的形式分發,所以在下載它之 後,可以使用以下命令解壓:$ tar -zxvf voltdb-2.5.tar.gz -C ~/。

在此執行個體中,我選擇將它安裝 在我的主目錄中,這非常適用於開發用途,您還可以將它解壓到您選擇的目錄中。

解壓之後,將 bin 目錄添加到您的路徑中:$ export PATH=$PATH:~/voltdb-2.5/bin。

bin 目錄包含一些命令,這些命 令在您部署應用程式範例時會很有用。

接下來,下載本文配套的原始碼。將它解壓到您選擇的目錄中 。應用程式範例主要處理一家虛構公司 Acme Inc 的員工。

一個典型的 VoltDB 應用程式由以下檔案組成:

一個項目定義檔案 (project.xml),其中包含哪些預存程序可用、資料庫模式檔案的位置、分區資訊等信 息。

一個部署檔案 (deployment.xml),其中包含每個主機的網站數等資訊。

資料庫模式 (ddl.sql)。

原始碼,例如:預存程序和用戶端。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.