SVN-两种存储方式的比较(BDB vs. FSFS)
Subversion 的版本库(repository),就是位于服务器端,统一管理和储存数据的地方。本文中,我们以 Linux 为例,介绍在服务器端配置和管理 Subversion 版本库的基本方法。
要创建一个版本库,首先要确定采用哪种数据存储方式。在 Subversion 中,版本库的数据存储有两种方式,一种是在 Berkeley DB 数据库中存放数据;另一种是使用普通文件,采用自定义的格式来储存,称为 FSFS。
两种存放方式各有优缺点,读者可以参考 http://svnbook.org/ 上面的文档来了解两者详细的比较和区别,这里,我们仅引用上述文档当中的简单对照表,给出一个简明的比较。
| 特性 | Berkeley DB | FSFS |
|---|---|---|
| 对操作中断的敏感 | 很敏感;系统崩溃或者权限问题会导致数据库“塞住”,需要定期进行恢复。 | 不 敏感 |
| 可只读加载 | 不能 | 可 以 |
| 存储平台无关 | 不能 | 可 以 |
| 可从网络文件系统访问 | 不能 | 可 以 |
| 版本库大小 | 稍大 | 稍 小 |
| 扩展性:修订版本树数量 | 无限 制 | 某些本地文件系统在处理单一目录包含上千个条目时会出现问题。 |
| 扩展性:文件较多的目录 | 较慢 | 较慢 |
| 检出最新代码的速度 | 较快 | 可以 |
| 大量提交的速度 | 较慢,但时间被分配在整个提交操作中 | 较 快,但最后较长的延时可能会导致客户端操作超时 |
| 组 访问权处理 | 对于用户的 umask 设置十分敏感,最好只由一个用户访问。 | 对 umask 设置不敏感 |
| 功能成熟时间 | 2001 年 | 2004 年 |
确定了具体的数据存储类型,只要在命令行当中执行 svnadmin 命令就可以创建一个 Subversion 版本库,命令如下:
# 创建文件夹
$ mkdir /etc/svn/
$ mkdir /etc/svn/repos
# 运行创建版本库的命令,指定数据存储为 FSFS,如果要指定为 Berkeley DB,则将 fsfs 替换为 bdb
$ svnadmin create --fs-type fsfs /etc/svn/repos
via:http://www.ibm.com/developerworks/cn/java/j-lo-apache-subversion/
SVN-两种存储方式的比较(BDB vs. FSFS)的更多相关文章
- SVN的两种存储方式FSFS和BDB比较【转】
版本库数据存储 在Subversion1.2中,版本库中存储数据有两种方式.一种是在Berkeley DB数据库中存储数据:另一种是使用普通的文件,使用自定义格式.因为Subversion的开发者称版 ...
- MySQL 的两种存储引擎
MyISAM 是MySQL的默认数据库引擎(5.5以后默认是InnoDB)性能极佳,但不支持事务处理. InnoDB 是MySQL的数据库常用的数据引擎. MyISAM 和 InnoDB 两者之间有明 ...
- Ajax中的get和post两种请求方式的异同
Ajax中我们经常用到get和post请求.那么什么时候用get请求,什么时候用post方式请求呢? 在做回答前我们首先要了解get和post的区别. 1. get是把参数数据队列加到提交表单的A ...
- Android数据的四种存储方式
作为一个完成的应用程序,数据存储操作是必不可少的.因此,Android系统一共提供了四种数据存储方式.分别是:SharePreference.SQLite.Content Provider和File. ...
- HashMap的两种遍历方式
HashMap的两种遍历方式 HashMap存储的是键值对:key-value . java将HashMap的键值对作为一个整体对象(java.util.Map.Entry)进行处理,这优化了Hash ...
- Android开发_Android数据的四种存储方式
Android系统一共提供了四种数据存储方式.分别是:SharePreference.SQLite.Content Provider和File.由于Android系统中,数据基本都是私有的的,都是存放 ...
- ARM的两种启动方式 (NAND FLASH. NOR FLASH)
为什么会有两种启动方式? 这就是有两种FLASH 的不同特点决定的. NAND FLASH 容量大,存储的单位比特数据的成本要低很多,但是要按照特定的时序对NAND FLASH 进行读写,因此CP ...
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (四) —— ContentProvider
ContentProvider是安卓平台中,在不同应用程序之间实现数据共享的一种机制.一个应用程序如果需要让别的程序可以操作自己的数据,即可采用这种机制.并且此种方式忽略了底层的数据存储实现,Cont ...
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (二) —— SQLite
SQLite是一种转为嵌入式设备设计的轻型数据库,其只有五种数据类型,分别是: NULL: 空值 INTEGER: 整数 REAL: 浮点数 TEXT: 字符串 BLOB: 大数据 在SQLite中, ...
随机推荐
- Qt笔记——QSqlLite
静态数据库,简单方便 在.pro文件里添加 +sql #ifndef WIDGET_H #define WIDGET_H #include <QWidget> namespace Ui { ...
- Oracle SQL中实现indexOf和lastIndexOf功能
Oracle SQL中实现indexOf和lastIndexOf功能 https://www.2cto.com/database/201305/210470.html
- Djangp2.x版本报错找不到模版目录下的文件
1.报错内容:django.template.exceptions.TemplateDoesNotExist: index.html 2.解决办法,在settings.py文件中,找到TEMPLATE ...
- Java中多线程问题
线程调度中的方法: sleep() 顾名思义线程休眠可传递连个参数-@毫秒 @纳秒 yield() 暂时挂起 这里的线程会释放资源,但是有一个坑是虽然是释放资源但是是公平竞争资源 如:a线程释放资源后 ...
- Codeforces 1099 A. Snowball-暴力(Codeforces Round #530 (Div. 2))
A. Snowball time limit per test 1 second memory limit per test 256 megabytes input standard input ou ...
- 转:攻击JavaWeb应用[9]-Server篇[2]
转:http://static.hx99.net/static/drops/papers-869.html 攻击JavaWeb应用[9]-Server篇[2] 园长 · 2014/01/22 12:5 ...
- HDU 1829 A Bug's Life 【带权并查集/补集法/向量法】
Background Professor Hopper is researching the sexual behavior of a rare species of bugs. He assumes ...
- 中国石油大学(华东)暑期集训--二进制(BZOJ5294)【线段树】
问题 C: 二进制 时间限制: 1 Sec 内存限制: 128 MB提交: 8 解决: 2[提交] [状态] [讨论版] [命题人:] 题目描述 pupil发现对于一个十进制数,无论怎么将其的数字 ...
- shell 执行结果赋给变量
#将pwd的执行结果放到变量value中保存, value=$(pwd) 另一种方法: value=`pwd`
- poj 3464(Trie)Approximations
Approximations Time Limit: 2000MS Memory Limit: 131072K Total Submissions: 419 Accepted: 23 Desc ...