1 |
On Tue, Oct 16, 2012 at 08:42:40PM +0200, Michael Haggerty wrote: |
2 |
> 1. It seems like you are doing an awful lot of work and using a lot of |
3 |
> movable parts to reduce the switchover time. Just how much traffic does |
4 |
> your repo get? Is it really worth the effort to reduce the downtime by |
5 |
> a couple of hours? |
6 |
gentoo-x86 CVS gets ~500 commits/day. ~250/day if you consider the |
7 |
second pass of the Manifest commit as part of the same logical commit as |
8 |
the first pass of the Manifest. |
9 |
|
10 |
> 2. It seem to me to be overkill to insist on a repository validation |
11 |
> between the conversion and switching the repository live. I would suggest |
12 |
> |
13 |
> do { |
14 |
> Adjust conversion scripts |
15 |
> Copy CVS repo |
16 |
> Do test conversion |
17 |
> Validate converted repository |
18 |
> } until (validation perfect); |
19 |
> |
20 |
> Switch CVS repo to read-only |
21 |
> Do final conversion |
22 |
> Switch git repo live |
23 |
> Validate converted repository at leisure for your peace of mind |
24 |
This is already the path we're taking, with the additional steps: |
25 |
- Ensure that the conversion output is exactly reproducible, and record |
26 |
the commits that have already been validated as correct (because you |
27 |
can skip them on the next iteration of the loop). |
28 |
- Validate the commits between the last validation success and the |
29 |
readonly point. |
30 |
|
31 |
Realistically, we're going to iterate that loop until we're happy with |
32 |
it, then lock read-only, take a final pass of the loop (with the |
33 |
recording of already validated commits and reproducible output, it |
34 |
shouldn't take long to validate the delta at all). |
35 |
|
36 |
> > Once I have both I can start working on validation rules and perhaps |
37 |
> > get feedback to the conversion team. We'll need to work out what does |
38 |
> > and doesn't count as OK. We're doing transformation of data during |
39 |
> > migration, so I need to take that into account. Either the logic goes |
40 |
> > into the compare function, or the logic goes into the dump side so |
41 |
> > that the compares work out the same. Timestamps might force us to do |
42 |
> > logic during compare anyway. |
43 |
> What kind of data transformations are you doing during the migration? |
44 |
1. $Header$ expansion is needed to confirm that our Manifest files have |
45 |
entries matching the checksums of the files in a given commit. |
46 |
1.1. Caveat: Make a list of CVS commits w/ known non-matches. |
47 |
2. Potentially: validation of GPG signatures of Manifests. |
48 |
3. Ongoing discussion about converting some non-signed Manifests to |
49 |
thin-Manifest format. |
50 |
|
51 |
-- |
52 |
Robin Hugh Johnson |
53 |
Gentoo Linux: Developer, Trustee & Infrastructure Lead |
54 |
E-Mail : robbat2@g.o |
55 |
GnuPG FP : 11ACBA4F 4778E3F6 E4EDF38E B27B944E 34884E85 |