基本介紹
- 外文名:VoltDB
- 實質:記憶體資料庫
- 所屬:NewSQL 資料庫
- 構建於:VoltDB 之上的鍵值存儲
簡介,特點,特徵,版本,競爭,要求,
簡介
VoltDB是一個記憶體中的開源OLTP SQL資料庫,能夠保證事務的完整性(ACID)。它是Postgres和Ingres聯合創始人Mike Stonebraker領導開發的下一代開源資料庫管理系統。它能在現有的廉價伺服器集群上實現每秒數百萬次數據處理。
特點
VoltDB大幅降低了伺服器資源 開銷,單節點每秒數據處理遠遠高於其它資料庫管理系統。不同於NoSQL的key-value儲存,VoltDB能使用SQL存取,支持傳統資料庫的 ACID模型。VoltDB代碼採用GPLv3授權,支持訂閱費用從15,000美元起步。
特徵
為了獲得最大化吞吐量,數據保存在記憶體中(而不是在硬碟),這樣可以有效消除緩衝區管理。VoltDB通過SQL引擎把數據分發給集群伺服器的每個CPU進行處理。 每個單執行緒分區自主執行,消除鎖定和閂鎖的需求。 VoltDB可以通過簡單的在集群中增加附加節點的方式實現性能的線性增加。
版本
VoltDB 有兩個版本:一個開源社區版本和一個付費企業版本。
付費企業版本除包含了所有開源社區版的功能,還有些其他特點:
競爭
與NoSQL有力競爭
1.VoltDB在單節點上可以每秒處理53000個事務請求(TPS),其他DBMS在相同的硬體環境下只能處理1155個。VoltDB的擴展是近似線性的──在12個節點的VoltDB集群上進行同樣測試,可以處理560,000 TPS。
2.基準案例:某個客戶的線上遊戲在12個節點的VoltDB集群上處理了130萬 TPS。 3.VoltDB還針對NoSQL的鍵-值存儲方式作了基準測試,VoltDB在處理各種鍵-值存儲負載的情況下獲得了相同或更好的性能。 4.除了它的性能,VoltDB的主要優勢是可以與SQL用戶進行交流,這些SQL用戶是很好的資源。
要求
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)。
- 原始碼,例如:存儲過程和客戶端。
本文將更詳細地介紹每個檔案。
要將項目導入 Eclipse 中,請打開 Eclipse,然後執行以下操作:
- 選擇File>New>Project。
- 選擇Java Project from Existing Ant Buildfile,然後單擊Next。
- 勾選複選框Link to the build file in the file system。
- 從您剛安裝示例應用程式的目錄選擇build.xml作為 Ant 生成檔案,然後選擇Finish。
如果希望創建您自己的應用程式,VoltDB 提供了一個工具來為您生成框架項目;該項目用於生成本文中附帶的應用程式的資料夾結構。
Operating System | VoltDB requires a 64-bit Linux-based operating system. Kits are built and qualified on the following platforms: CentOS version 6.6 or 7.0 or later Ubuntu versions 12.04 and 14.04 Development builds are also available for Macintosh OSX 10.9 and later. |
CPU | Dual corex86_64 processor 64 bit 1.6 GHz |
Memory | 4 Gbytes |
Java | Sun JDK 6 update 21 or later |
Required Software | NTP Python 2.4 or later release of 2.x |
Recommended Software | Eclipse 3.x (or other Java IDE) |