Read-close-write creates redundant phase
When reading and closing an Answer in a write transaction, a redundant micro-commit occurs. This leads to unbounded growth when regularly reading in large transactions.
Updated by Paula Gearon over 11 years ago
- Status changed from New to In Progress
The problem is that micro-commits create a mark in a free list which marks the last point behind the head which from which allocation can happen.
The solution would involve letting a free list allocate data from behind this mark (back to the last fully-committed point). However, this is problematic, as there may be other locked resources after the mark.
It should be possible to work it out, but it may involve some moving of data whenever some of these resources get allocated. We already have a little of that now, so the expense should not be too big, but the code will definitely get more complex.