Kai Hendry wrote:
> I migrated from bdd to fsfs a week ago and I was shocked to see the
> difference in size:
>
>
> puti$ du -h -c repo.fsfs | grep total
> 110M total
> puti$ du -h -c repo.bdd | grep total
> 890M total
>
> svnadmin dump repo.fsfs > /tmp/1
> svnadmin dump repo.bdd > /tmp/2
>
> puti$ du -h -c /tmp/1 | grep total
> 321M total
> puti$ du -h -c /tmp/2 | grep total
> 319M total
>
>
>
> Have I missed something?
The big difference that makes fsfs more compact is that bdb keeps fulltext
for HEAD and deltas going backwards, and fsfs keeps skip-deltas going
forwards. So if you have lots of branches that have recieved small but
widespread modifications (such that many files on the branch are modified,
but the actual diffs are relatively small) than bdb would need fulltext for
the new HEAD of each branch, and fsfs wouldn't (it would store the diffs
going forward from the branch point). The downside is for checkout/update
@HEAD (by far the most common operation), BDB has the fulltext ready to go
and FSFS has to reconstruct it, which takes more CPU. But it's still pretty
fast, and the fact that the files storing old history in FSFS are
completely immutable has benefits.
The other possibility I can think of is that your bdb repository is old
enough that it predates svnadmin making
set_flags DB_LOG_AUTOREMOVE
the default in db/DB_CONFIG. In that case you may have a bunch of stale
transaction journals. You could check with
svnadmin list-unused-dblogs <repo>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Mon Apr 25 15:06:40 2005