@michaelcahill, based on reviewing c514aefa3f77eb9d060064c790754c64f4463d25 and b0e30498baa8684e04f03c5cb6925181b9fc7972, I'd like to consider pulling out the initialization of the insert and update arrays and headers out of the serialization function and into the modify functions. Basically, col/row-modify could allocate and atomically swap them into place, and then the serialization functions could assume they exist.
The only thing that worries me, of course, is the comment:
* NOTE: it is important to do this after publishing that the update is * set. Code can assume that if the array is set, it is non-empty.
which appears twice in *wt_insert_serial_func and once in *wt_update_serial_func.
But, I think we could check for that problem pretty quickly (there aren't that many places the lists are read, and, if we miss one, I would expect to get a core dump, not some subtle error.
Thoughts?
- related to
-
WT-638 Modify update atomic
- Closed