MPS issue job003454

TitleRamp use can break generation chain with bad performance consequences
Statusclosed
Priorityoptional
Assigned userNick Barnes
OrganizationRavenbrook
DescriptionIf we enter and leave ramps at the wrong moment, we can end up in "ramping" mode (that is, with the ramp generation forwarding to itself) even when outside a ramp. This may lead to over-frequent collection of the ramp generation, or possibly to other bad performance behaviour depending on how it interacts with the collection strategy.
AnalysisSee http://info.ravenbrook.com/mail/2013/04/03/18-01-53/0.txt of which the key part is reproduced here:
   The ramp generation is not always reset (to forward to the
   after-ramp generation). If we get into FINISH and then see
   another ramp before the next condemnation of the ramp generation,
   we will Enter followed by Leave. The Enter will keep us in
   FINISH, and the Leave will take us back to OUTSIDE, skipping the
   transition to the COLLECTING state which is what resets the ramp
   generation forwarding buffer.

   The simplest change to fix this is to change the behaviour of the Leave
   transition, which should only take us OUTSIDE if we are in BEGIN or
   COLLECTING. We should also update design/poolamc to tell the truth, and
   check the invariants, which will be these:

         OUTSIDE => zero
         BEGIN => non-zero
         RAMPING => non-zero

   A cleverer change might radically rearrange the state machine
   (e.g. reduce the number of states to three) but that would require
   closer design thought and should probably be postponed until we have a
   clearer overall strategy plan.
How foundinspection
Evidencehttp://info.ravenbrook.com/mail/2013/04/03/18-01-53/0.txt
Observed in1.110.0
Created byNick Barnes
Created on2013-04-03 19:06:58
Last modified byNick Barnes
Last modified on2013-04-16 11:28:23
History2013-04-03 NB Created

Fixes

Change Effect Date User Description
181325 closed 2013-04-04 16:22:39 Nick Barnes Fix job003454: when an AMC pool is in the FINISH ramp mode, it should stay there until it can transition to COLLECTING. Also update the ramp part of design/poolamc.