Skip to content

Allow for a dual final action - repair and delete#1814

Merged
martinsumner merged 4 commits into
develop-3.0from
mas-i1813-getfinalaction
May 12, 2022
Merged

Allow for a dual final action - repair and delete#1814
martinsumner merged 4 commits into
develop-3.0from
mas-i1813-getfinalaction

Conversation

@martinsumner

Copy link
Copy Markdown
Contributor

If there is repair only (as a priority over delete - which really means trigger reap if required), then there are scenarios where tombstones can perpetually re-appear, especially were there is key amnesia.

If there is repair only (as a priority over delete - which really means trigger reap if required), then thee are scenarios where tombstones can perpetually re-appear, especially were there is key amnesia.
@martinsumner

Copy link
Copy Markdown
Contributor Author

basho/riak_test#1363

@martinsumner

Copy link
Copy Markdown
Contributor Author

@martincox - you may want to check this. It is to fix a nextgenrepl issue, but will change functionality in other systems. It is a very subtle change in the GET_FSM behaviour following GET.

Previously after completing a GET, only one action (other than nop) could be performed: read_repair or delete (i.e. trigger tombstone reaping). If the GET revealed that both need to occur (i.e. there needs to be a repair, and also the winning object is a tombstone so tombstone trigger also required), only the repair would be done.

This indirectly led to a weird issue, which could cause some serious problems.

Now, as well as read_repair and delete, an additional delete_repair option can occur in this circumstance. If delete_repair is triggered, the FSM will first repair then delete. So a fetch will always trigger delete when required.

@martinsumner
martinsumner merged commit 04376ff into develop-3.0 May 12, 2022
@martinsumner
martinsumner deleted the mas-i1813-getfinalaction branch May 12, 2022 14:55
martinsumner added a commit that referenced this pull request May 31, 2022
Merge in changes from Riak 3.0.10.

Includes PRs:

- #1809
- #1812
- #1814
- #1816
- #1829
- #1830
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.

1 participant