請問VisualSVN新建版本庫:FSFS和VDFS存儲方式的區別?

如題


VDFS是基於FSFS的,公司的官網有介紹:VisualSVN Server

It"s worth to notice that VDFS data store is built on top of the standard FSFS backend. The existing FSFS-based repositories can be instantly converted into a VDFS repository. Moreover, there is no data lock-in and you can instantly convert a VDFS repository back into a regular FSFS-based repository.

簡單來說這個是VisualSVN基於FSFS文件系統格式擴展的,根據wikipedia的說法:VisualSVN Server

VisualSVN Distributed File System (VDFS). Multisite Repository Replication is based on VDFS technology. VDFS enables automatic, transparent, bidirectional replication of Subversion repositories between multiple locations (each slave repository is writeable). VDFS follows the classic master / slave replication architecture and uses Microsoft RPC as its transport layer.

也就是說,分散式版本管理DVCS興起之後,大家發現多個倉庫的好處了,開始給SVN增加這個功能。

至於FSFS本身是SVN在2004年開始替換Berkeley DB的,是基於文件系統概念設計的,而不是基於資料庫的概念,根據 http://svnbook.red-bean.com/en/1.1/ch05.html 的說法,採用目錄樹的結構去做transaction,可以在目錄外創建完一次提交,然後把完成的提交一次性移動進版本歷史。另外,根據他們的數據結構,對Berkeley DB的append操作是O(N^2)的,而FSFS是O(N)的。當然更完整的介紹可以看:http://svn.apache.org/repos/asf/subversion/tags/1.8.4/notes/fsfs

如果你不是太在乎私有格式,也需要多倉庫同步,可以用VDFS,官方文檔說了VDFS默認的service是沒有啟動的,所以對你日常應該沒有影響。如果不喜歡私有格式,就用FSFS就好。


常規FSFS存儲庫

當前標準的Subversion存儲庫是基於FSFS數據的存儲後端。FSFS存儲庫功能齊全,幾乎適用於所有使用模式。

分散式VDFS存儲庫

VisualSVN分散式文件系統(VDFS)是專有的數據存儲後端,可實現跨不同伺服器的透明數據複製。由於Subversion的模塊化設計,分散式VDFS存儲庫在功能上等同於常規的Subversion FSFS存儲庫。最終用戶可以使用主和從屬VDFS存儲庫執行所有可能的Subversion操作 - 檢查和更新工作副本,提交更改,修改版本屬性,鎖定和解鎖文件等。

VisualSVN分散式文件系統遵循經典的主/從複製架構。每個VDFS存儲庫都可以被創建為主伺服器或從伺服器,而不是兩者。執行到主存儲庫的提交將自動複製到所有從屬存儲庫。

如上所述,從屬存儲庫也是可寫的。當對從屬存儲庫執行提交時,相應的事務將同時提交給主控和從屬存儲庫。然後數據將複製到其他從屬存儲庫。


推薦閱讀:

集中式版本控制系統和分散式版本控制系統有什麼區別呢?
一個項目在Linux和Windows上同時開發,如何進行版本控制?
VisualSVN-Server Subversion TortoiseSVN 之間的區別、聯繫有哪些?
Mac 上最好用的 SVN 客戶端是什麼?
SVN repository found,關於AWVS掃描出的SVN漏洞?

TAG:版本控制系統 | SVNSubversion |