Skip to content

add Iterator.RefreshBatchSnapshot()#1655

Closed
erikgrinaker wants to merge 2 commits intocockroachdb:masterfrom
erikgrinaker:batch-iter-consistency
Closed

add Iterator.RefreshBatchSnapshot()#1655
erikgrinaker wants to merge 2 commits intocockroachdb:masterfrom
erikgrinaker:batch-iter-consistency

Conversation

@erikgrinaker
Copy link
Copy Markdown
Contributor

Prototype Iterator.RefreshBatchSnapshot() based on #1640.

jbowens and others added 2 commits April 12, 2022 10:41
Previously the visibility of indexed batch mutations to open Iterators was
undocumented within the API. In practice range deletion and range key mutations
added after Iterator construction were never visible. Point operations were
immediately visible but could induce odd behavior like repeat keys when
switching directions (cockroachdb#943).

This commit defines and adopts new behavior for iteration over mutated indexed
batches. Seeking an iterator now refreshes the iterator's view of the batch,
ensuring the effects of all keys are visible. All mutations applied between
seeks are hidden from open iterators.

This interface allows iterator reuse in CockroachDB, which always seeks the
iterator after mutation. It avoids the unusual repeat-key behavior.

Fix cockroachdb#943.
Fix cockroachdb#1638.
@erikgrinaker erikgrinaker requested a review from jbowens April 16, 2022 10:38
@erikgrinaker erikgrinaker self-assigned this Apr 16, 2022
@cockroach-teamcity
Copy link
Copy Markdown
Member

This change is Reviewable

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants