Title | Ramp use can break generation chain with bad performance consequences |
Status | closed |
Priority | optional |
Assigned user | Nick Barnes |
Organization | Ravenbrook |
Description | If 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. |
Analysis | See 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 found | inspection |
Evidence | http://info.ravenbrook.com/mail/2013/04/03/18-01-53/0.txt |
Observed in | 1.110.0 |
Created by | Nick Barnes |
Created on | 2013-04-03 19:06:58 |
Last modified by | Nick Barnes |
Last modified on | 2013-04-16 11:28:23 |
History | 2013-04-03 NB Created |
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. |