RE: Support for filesystem snapshots (?)
From: Vallon, Justin <Justin.Vallon_at_deshaw.com>
Date: Mon, 2 Aug 2010 15:25:48 -0400
> From: Stefan Sperling [mailto:stsp_at_elego.de]
I suppose that I am assuming that the repository operations would all be transactional. Without transactional guarantees, you can have database corruption if a modification is interrupted.
> E.g. Subversion's FSFS needs to create a revision file from the commit's
I see this is executed with a FS write lock. My concern would be focused on the interaction between the commit code and any rollback code. For example, if the commit dies (any any point during the commit), what will be required to insure that the repository behaves as if the commit never started? Will a repo cleanup be required; will the next committer cleanup the partial rev automatically (ie: overwrite stale files); will the repo be hopelessly inconsistent?
A partially committed transaction still leaves the repository in a consistent state, so long as subsequent writers (or a special cleanup process) can undo the internal "damage", if any, made the partial commit.
> The safest way is creating a hotcopy of the live repository, and taking
This solves the problem if you have control over both the hotcopy and the backup. In a large environment, this means that the filesystem backup needs to be synchronized with the hotcopy, or else, the hotcopy itself might run *during* the backup, and would yield an inconsistent hotcopy (hotcopy-in-progress).
> You may be lucky and always get a consistent repository state by taking
There will be two outcomes:
1) The in-progress transaction can always be rolled back (transparently or through the use of a recovery command), leaving an intact repository
2) The repository might be corrupted
If svn cannot guarantee outcome 1, then we are left with outcome 2, and that we can be left with a corrupt repository after a commit failure.
-- -JustinReceived on 2010-08-02 21:28:22 CEST |
This is an archived mail posted to the Subversion Users mailing list.
This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.