On Mon, Nov 11, 2013 at 8:54 PM, Klaus Aehlig <[email protected]> wrote: > Now that mandatory opcode fields are mandatory also on disk, > document that, once we use soft drains during upgrades, the disk > representation of the job queue needs to be updated by cfgupgrade > as well. > > Signed-off-by: Klaus Aehlig <[email protected]> > --- > doc/design-upgrade.rst | 23 +++++++++++++---------- > 1 file changed, 13 insertions(+), 10 deletions(-) > > diff --git a/doc/design-upgrade.rst b/doc/design-upgrade.rst > index 15a88ef..2d29d7f 100644 > --- a/doc/design-upgrade.rst > +++ b/doc/design-upgrade.rst > @@ -279,16 +279,19 @@ disappear, once :doc:`design-optables` is implemented, > as then the > undrain will then be restricted to filters by gnt-upgrade. > > > -Requirement of opcode backwards compatibility > -============================================== > +Requirement of job queue update > +=============================== > > Since for upgrades we only pause jobs and do not fully drain the > queue, we need to be able to transform the job queue into a queue for > -the new version. The way this is achieved is by keeping the > -serialization format backwards compatible. This is in line with > -current practice that opcodes do not change between versions, and at > -most new fields are added. Whenever we add a new field to an opcode, > -we will make sure that the deserialization function will provide a > -default value if the field is not present. > - > - > +the new version. The preferred way to obtain this is, is to keep the
s/is, is/is/ > +serialization format backwards compatible, i.e., only adding new > +opcodes and new optional fields. > + > +However, even with soft drain, no job is running at the moment `cfgupgrade` > +is running. So, if we change the queue representation, including the > +representation of individual opcodes in any way, `cfgupgrade` will also > +modify the queue accordingly. In a jobs-as-processes world, pausing a job > +will be implemented in such a way that the corresponding process stops after > +finishing the current opcode, and a new process is created if and when the > +job is unpaused again. > -- > 1.8.4.1 > Rest LGTM, thanks. Michele -- Google Germany GmbH Dienerstr. 12 80331 München Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg Geschäftsführer: Graham Law, Christine Elizabeth Flores
