The random cursor implementation for tiered cursors is quite simple. It picks a tier at random and picks a random element from it. If that tier is empty it tries again. The problem (as the code below shows) is that if all the tiers are empty it will never stop trying.
for (;;) { __curtiered_random_tier(session, curtiered, &c); /* * This call to next_random on the tier can potentially end in WT_NOTFOUND if the tier we * picked is empty. We want to retry in that case. */ WT_ERR_NOTFOUND_OK(__wt_curfile_next_random(c), true); if (ret == WT_NOTFOUND) continue;
- is related to
-
WT-7405 Implement better random cursor operations for tiered cursors
- Backlog