VMware 開源數據庫 Affinity 介紹

fmms 12年前發布 | 30K 次閱讀 Affinity 數據庫服務器

VMware 開源數據庫 Affinity 介紹

Affinity是VMware公司在今年2月28日發布的 一種新型的開源數據庫系統,其設計思想借鑒了關系型數據庫、面向對象數據庫、文檔型數據庫、RDF/XML數據庫等多種數據庫系統的優點,具有靈活多樣、 方便易用、接口豐富等優點。從今天起,我會陸續在博客上發表一些文章,分享關于Affinity數據庫的一些知識,比如特性、查詢以及使用方法等。今天的 這篇文章,主要介紹Affinity數據庫的團隊、歷史以及特性。

VMware作為全球領先的虛擬化技術公司,一直非常重視和支持開源社區的發展,比如最近很火的開源PaaS平臺Cloud Foundry, 使得用戶不需要考慮基礎架構,就能快速有效地在云平臺部署和擴展應用程序。在Cloud Foundry平臺上集成Affinity數據庫之后,用戶除了能在Cloud Foundry平臺上使用常見的諸如 Spring、 Java、 Ruby 和 Node.js等開源框架和編程語言,以及數據庫服務(MySQL、MongoDB和 Redis) 和消息服務器 RabbitMQ之外,也可以選擇Affinity作為云應用的數據庫系統,而Affinity數據庫的特點為云平臺應用提供了更快捷、更靈活、更有效的 支持。

Affinity數據庫系統內核的作者是Mark Venguerov博士。Mark Venguerov博士1986年畢業于莫斯科大學并獲得理論物理碩士學位,2002年在都柏林三一學院獲得計算機科學博士學位(人工智能和模式識別方 向)。他在大規模計算機軟件系統設計和實現上有著二十多年的理論和實踐經驗,目前居住在加拿大蒙特利爾。除了Mark Venguerov博士之外,Affinity數據庫項目組還包括來自加拿大、美國、馬耳他、中國的幾名同事。

盡管Affinity數據庫系統剛剛發布,事實上,這個項目的前身——PiStore系統,早在2004年就已經在PI Corporation公司(一個存儲公司后來被EMC公司收購)開始開發,并且有著廣泛的應用,比如曾經作為Mozy公司在線備份服務系統的后端存儲軟 件系統。話說2004年還是關系型數據庫獨領風騷的時代,那時的PiStore數據庫就已經有了現在很多NoSQL數據庫的特點,比如靈活的數據模型,不 需要嚴格的數據模式(Schema),支持集合(Collection)和引用(Reference)等復雜數據類型。PiStore項目于2010年正 式由EMC公司交接到VMware公司,經過兩年多的持續開發和測試,終于在近期正式向開源社區發布(Apache License 2),并且有了一個響亮的新名字——Affinity。

Affinity數據庫系統的主要特點是(參考Affinity官網文檔):

1.    跨平臺C++內核,不依賴于任何虛擬機,內核footprint只有大約1M字節

2.    pathSQL查詢語言,支持protocol-buffer協議

3.    路徑表達式(path expressions)以及圖查詢

4.    能夠混合使用SQL和圖查詢

5.    ACID事務(支持跨多個對象的JOIN操作)

6.    對只讀事務的snapshot隔離級別

7.    嵌套事務

8.    日志和恢復

9.    存儲結構化數據以及半結構化、動態對象(在Affinity中,把一條記錄或者一個數據對象稱作PIN)

10.  用URI為properties(PIN的屬性)和class(分類)進行全局命名轉換

11.  全局唯一的對象ID,和隨機訪問物理地址(一個PIN的ID,稱作PID)

12.  自描述(self-describing)的對象(對象可以把自己表示為數據字典)

13.  優化的B-link 樹索引

14.  事務地、自動地、動態地對數據對象進行多種分類,并存儲于索引中(關于數據對象的自動分類,Mark Venguerov博士擁有兩項美國專利)

15.  復合索引

16.  異步查詢處理選項,用于高性能并發服務器

17.  事務的全文索引

18.  在結構化查詢同時使用全文搜索

19.  頁面級別的AES加密算法和日志加密

20.  可擴展的多用戶支持(比如可以由一個進程管理上千個不同的數據庫實例instance)

21.  對象粒度的訪問控制列表(Access Control List)

22.  豐富的數據類型,包括集合、引用和BLOB

23.  計算時支持不同測量單位的轉換(比如攝氏度與華氏度,或者米與公里)

24.  數據對象的軟刪除(soft deletion)

25.  對大結果集進行外部排序

26.  基本的replication框架

通過以上列出的特性可以得出,Affinity數據庫在秉承傳統數據庫的事務、日志、B-link樹索引、外部排序、數據頁加密等優點的同時,又擁 有支持靈活的數據模型、模式自由(schema-free)、自動分類、Path Expression和圖查詢等其他豐富的特點,為當前各種復雜的應用程序提供了極大的支持。對于那些不熟悉非關系型數據庫、傳統的SQL開發者,也可以 通過PathSQL寫出類似SQL的查詢。適合(并不僅限于)需求多變導致的數據模式(Schema)經常隨之變化、以及有靈活的數據模型并且需要進行復 雜查詢的應用。

在介紹完Affinity數據庫系統的團隊、歷史和特性之后,相信讀者對Affinity數據庫有了一定的了解,并想趕緊嘗試一下,請參見Affinty的項目主頁獲得更詳細的文檔。您可以先閱讀這篇文檔,通過運行一個腳本,在本機上自動下載、編譯、安裝Affinity數據庫。

在下一篇文章,我想講一下Affinity的數據模型,其中包括PIN、Property、Value、Collection、Class等主要概念,敬請關注 。

如果您有建議和想法,歡迎聯系本文作者linw at vmware.com 或者 在新浪微博與我交流 @傍槐閑士,當然最好的方式是在Affinity官方論壇上發布,會得到更專業的反饋。本文轉載自: http://blog.csdn.net/woody107/article/details/7348690

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