RethinkDB:為實時應用而生的開源數據庫

mgwd 9年前發布 | 21K 次閱讀 RethinkDB

RethinkDB:為實時應用而生的開源數據庫

英文原文:An open source database for realtime applications

RethinkDB 是風險投資項目,一個開源數據庫,團隊里有 15 個全職工作隊員。除了核心團隊,RethinkDB 擁有來自世界各地的一百余名貢獻者。也正是這樣一個強大的后繼貢獻團隊,使得 Rethink 能夠完成開源大計。

數據庫并不是開源世界里的陌生人。事實上,許多世界頂級企業、項目和網站在后臺運行著各種開源數據庫。由于數據庫的選擇在擴展、執行、以及數據本身被如何查詢的方面有著巨大的影響,因此,在數據庫的選擇上就有許多選項來滿足各種潛在需求。

RethinkDB 是一個具有特定目的的開源數據庫:為實時的應用程序提供數據,無論這些應用程序是視頻游戲的后端,金融工具還是分析套件。

為了了解更多關于 RethinkDB 的信息,我們聯系到了 RethinkDB 公司的創始人 Slava Akhmechet。RethinkDB 是一個與開源項目具有相同名稱的公司。在成立 RethinkDB 之前,他是一個金融業的系統工程師,致力于擴大自定義數據庫系統。目前,他是 Stony Brook 大學神經科學程序項目博士生。

RethinkDB 是什么?它和其他開源數據庫系統相比有什么不同?

RethinkDB 是自底向上為實時網頁設計的第一個開源的、可擴展的數據庫。傳統數據庫使用的是一種查詢——響應數據庫訪問模式。RethinkDB 在網絡上工作的很好主要是因為它直接映射到 HTTP 的請求響應上面。

然而,現代市場中流分析應用程序、多人游戲、協作網絡和移動應用程序需要實時的直接將數據發送到客戶端。例如,當用戶改變一個協同設計的應用程 序的按鈕的位置,服務器需要通知工作在同一個項目的其他用戶。Web 瀏覽器通過 WebSockets 和長期 HTTP 連接來支持這些用例,但適應數據庫系統的實時需求仍存在巨大的工程挑戰。

RethinkDB 是第一個數據庫使用了一種令人激動的新的數據庫的訪問模型,而不是輪詢數據庫更改,開發者可以命令 RethinkDB 實時的向應用連續推送更新查詢結果。這使得搭建現代、實時的應用程序十分方便:開發者可以得到一個可擴展的實時 Web 應用程序的 App,并在用一小部分時間運行的同時使用更少的工程資源。

為什么這個項目使用開源許可證十分重要?

Slava Akhmechet 認為世界正朝著更加實時的應用和實時的體驗方向前進,所以第一個數據庫產品來獲得這一權利將是技術堆棧里非常重要的一部分。“我們認 為對像這樣的核心技術來說十分重要的是每個人都可以訪問,這樣沒有人會落下——學生、愛好者、創業者和發展中國家的公司,可以不必支付大筆的產品和服務費 用。而開源是實現這一目標的最佳工具。

每個人都可以接觸到技術,并且 RethinkDB 可以通過向對價格不敏感的大型企業銷售增值服務發展起來。

什么是用戶或開發人員用來解決數據庫技術的標準?

其實這是一個相當復雜的過程,最近就有很多這樣的問題擺在那里,并且在很多不同的使用情況下需要在不同數據庫產品之間權衡利弊。”在開發 RethinkDB 之前,我為工作內容選擇數據庫,我會關注三方面的因素:使用情況、可擴展性和成熟度。“Akhmechet 解釋說。

許多案例仍然需要 ACID 事務。該技術僅在傳統的 RDBMS 中可用,所以對于那些方向我會選擇 MySQL 或 Postgres。其他的案例是受分析的影響,所以我會選擇像 Vertica 的一個列狀數據庫。

然而,更多的情況下,例如現代 Web 應用、移動應用程序和游戲等等,都需要靈活的數據模型,所以選擇了 NoSQL 系統,如 MongoDB 的和 Redis。對于要求很高的大型項目,研發團隊會選擇 HBase、Cassandra 和 MongoDB。

最后,對于管制行業,如 HIPAA 合規性,財務審計等等,Oracle 仍然居于主導地位,因為它擁有最成熟的監管功能。在過去的兩年中,我們看到了實時應用案例的出現,那是 RethinkDB 適用的地方。對于開發人員構建實時應用程序,我們希望 RethinkDB 是成為目前市場上最好的產品。

開發團隊未來會在 RethinkDB 上添加哪些功能?

RethinkDB 已經開發了五年多,所以它們相當成熟。我們將會在未來幾周發布 RethinkDB 2.0,這將是一個很穩定的版本,伴隨著商業服務以幫助我們的客戶盡可能獲得產品之外的東西。

RethinkDB 2.0 后還有很多令人興奮的工作需要去做。即將發布的 2.0 版本將支持更為復雜的實時推送功能,更好的可用性和自動故障轉移支持(通過一個我們正在測試中的新的 Raft 實現),以及更多的部署選項(例如隊 Windows 的支持)。

RethinkDB 是風險投資項目,有一個 15 人的團隊對項目進行全職工作。除了核心團隊,RethinkDB 擁有來自世界各地的一百余名貢獻者。貢獻來自業余愛好者、學生和平時的客戶。人們向文檔和軟件生態系統的集成項目做出貢獻,使 RethinkDB 在一些軟件,許多不同的編程語言的客戶端驅動程序,甚至核心數據庫內部改進之間進行無縫工作。

大多數案例都圍繞現代市場、流分析應用程序、多人游戲、協作網絡和移動應用程序。從根本上講,任何人在任何時候搭建網站上的任何東西,并希望實現實時功能,RethinkDB 都是一個非常好的數據庫選擇。

來自:http://news.cnblogs.com/n/517708/

 本文由用戶 mgwd 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!