diff options
| author | Michael Cahill <michael.cahill@mongodb.com> | 2017-03-16 16:26:49 +1100 |
|---|---|---|
| committer | Michael Cahill <michael.cahill@mongodb.com> | 2017-03-16 17:20:45 +1100 |
| commit | cc2f15f595b16479affd73791c207da334453bcc (patch) | |
| tree | 8d24d5a1be36d80ed968f5ccc165fd11bb11fdfa /api | |
| parent | 92327e8fd19c92ca5687f6e093553fb96c742688 (diff) | |
WT-3206 Fix a race allocating split generations. (#3332)mongodb-3.5.5mongodb-3.4.3
We use split generations to detect when readers may be looking at
structures that are replaced by a split. For correctness, we should
only increment the global split generation *after* a split becomes
public. Only then can we safely check that no thread is still reading
with the old generation.
Previously, a split could increment the global split generation, then a
thread could start reading with the new split generation but see the old
index structure.
This issue was introduced by WT 3088, where we wanted a way to ensure
that newly-allocated pages don't split until it is safe. That is solved
here by having the split code pin a split generation in the ordinary way
(without allocating a new one) for the duration that splits of new
pages need to be prevented.
(cherry picked from commit 51d22616094e0a0d34997d26aec925adf949fbdf)
Diffstat (limited to 'api')
0 files changed, 0 insertions, 0 deletions
