You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by "Kahn, Peter" <Pe...@ironmountain.com> on 2006/02/23 17:35:36 UTC

Bdb to FSFS - Any gotchas to watch out for

Hi, I ran into a problem with my repository that has finally convinced
me to convert from BDB to FSFS for my repository backend.  I'd like to
thank you all for all the help you have given me over the past 18 months
as it has been essential in keeping my environment up and my blood
pressure down.

My latest problem was that users got "bdb: Lock table is out of
available locker entries" upon commit.  I ran out of lockers and my fix
was to recover followed by changing the lk_max_ settings from 2000 to
8000.  The choice of value was arbitrary as I wasn't sure how determine
just how many database trees I had as recommending in the Sleepykat
tuning page.

I have a Linux based 7 GB repository with about 25000 revisions that is
accessed through svnserve and apache.  It seems like a large environment
to me and I am pretty sure that I will hit more tuning issues with BDB
as I go forward.  I don't have the time to become a BDB tuning expert
(although it is interesting). 

I am using the conversion method I saw on this list and I should be down
for about 3 hours:
	svnadmin create --fs-type FSFS ./repos_fsfs >> log 2>&1
	svnadmin dump ./repos | svnadmin load ./repos_fsfs >> log 2>&1

I looked in the FSFS repository for tuning options, didn't really find
any and I really want to proactive on tuning/monitoring (I have some
cron jobs now dumping the output of db_stat into a file).  So, with that
in mind here are my questions:

Q1. What tuning options are there for FSFS repositories?
	is there a good guide somewhere?

Q2. What is the best way to monitor a FSFS repository?

Q3. What are the gotchas for converting to a FSFS repository?
	- all local developer workspaces will need to be checked-out
anew
	  as switch will not work due to the fact that the old repos and
	  the new will be two different repositories

Q4. What are the gotchas for running a FSFS repository?

Q5. What are the best practices for FSFS repository health?
	- Is there some thing I should do on a regular basis 
	  to handle skip-deltas and delta combination to improve 
	  performance? [deltify?]

Q6. What kinds of corruption do people see with FSFS and how have they
dealt with it?
	The red bean book say "FSFS's inability to be 'wedged'
	when something goes wrong" but I'm wondering if anyone 
	has seen problems?

	- should a rev file go missing due to file system error or 
	  operator error what would my options be?

	|| could I extract the file off of a backup and insert 
	|| in into the right location to recover it?


Again thanks for all the help....


Related Docs:
http://blog.parthenoncomputing.com/dbxml/archives/2005/03/index.html
http://www.sleepycat.com/xmldocs/ref/lock/max.html

http://svnbook.red-bean.com/nightly/en/svn.reposadmin.html#svn.reposadmi
n.basics.backends

http://svn.collab.net/repos/svn/trunk/subversion/libsvn_fs_fs/structure

 



-- 
Peter Kahn 
peter.kahn@ironmountain.com
Mobile: 508-958-2996
IM: pkahn@imserver, citizenkahn@jabber80.com,
citizenkahn@googletalk.com, citizen_kahn@yahoo.com
Iron Mountain Digital 

-----------------------------------------
The information contained in this email message and its attachments
is intended only for the private and confidential use of the
recipient(s) named above, unless the sender expressly agrees
otherwise.
Transmission of email over the Internet is not a secure
communications medium. If you are requesting or have requested the
transmittal of personal data, as defined in applicable privacy laws
by means of email or in an attachment to email, you must select a
more secure alternate means of transmittal that supports your
obligations to protect such personal data.
If the reader of this message is not the intended recipient and/or
you have received this email in error, you must take no action
based on the information in this email and you are hereby notified
that any dissemination, misuse or copying or disclosure of this
communication is strictly prohibited. If you have received this
communication in error, please notify us immediately by email and
delete the original message.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org


Re: Bdb to FSFS - Any gotchas to watch out for

Posted by Ryan Schmidt <su...@ryandesign.com>.
On Feb 23, 2006, at 18:35, Kahn, Peter wrote:

> Q1. What tuning options are there for FSFS repositories?
> 	is there a good guide somewhere?

I'm not aware of any tuning options.


> Q2. What is the best way to monitor a FSFS repository?

I'm not aware of any FSFS-specific things that would need to be  
monitored. You can of course write a post-commit hook which sends an  
email to your team with the diff of the changes in that revision, so  
that your developers can monitor each other's changes, but that has  
nothing to do with your choice of BDB or FSFS.


> Q3. What are the gotchas for converting to a FSFS repository?
> 	- all local developer workspaces will need to be checked-out
> anew
> 	  as switch will not work due to the fact that the old repos and
> 	  the new will be two different repositories

All working copies should continue to function as they did before.  
You do not need to check them out again. The new repository will have  
the same repository ID as the one from which it was dumped so clients  
will see it as exactly the same repository.


> Q4. What are the gotchas for running a FSFS repository?
>
> Q5. What are the best practices for FSFS repository health?
> 	- Is there some thing I should do on a regular basis
> 	  to handle skip-deltas and delta combination to improve
> 	  performance? [deltify?]

I'm not aware of any routine maintenance that would be necessary. We  
haven't done any on our FSFS repo in its 1-year life, except dump and  
reload it when moving from Subversion 1.1 to 1.2 to get the faster  
delta algorithm. Keeping regular backups is of course a very good  
idea, and occasionally testing that those backups are functional is  
worth it too.


> Q6. What kinds of corruption do people see with FSFS and how have they
> dealt with it?
> 	The red bean book say "FSFS's inability to be 'wedged'
> 	when something goes wrong" but I'm wondering if anyone
> 	has seen problems?

There is one issue I've heard reported on the list a couple times,  
where with the repository on a Linux server, a commit that's larger  
than 2GB will get truncated to 2GB, even though the client is  
informed that the commit was successful:

http://subversion.tigris.org/issues/show_bug.cgi?id=2453

Looks like this was a problem in APR and was fixed just a few weeks  
ago in their repository, and will be in the next version of APR 1.2.


This bug has also come up on the list a few times and sounds pretty bad:

http://subversion.tigris.org/issues/show_bug.cgi?id=2467


Here's the list of open FSFS issues in the bug tracker; may want to  
look at them too:

http://subversion.tigris.org/issues/buglist.cgi? 
short_desc=fsfs&component=subversion&issue_status=NEW&issue_status=START 
ED&issue_status=REOPENED&short_desc_type=substring&cmdtype=doit


> 	- should a rev file go missing due to file system error or
> 	  operator error what would my options be?
>
> 	|| could I extract the file off of a backup and insert
> 	|| in into the right location to recover it?

Keeping a hot-backup of the repository is probably a good idea, in  
addition to dumps of either the whole thing and/or individual  
revisions or ranges of revisions incrementally.



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org