Change ETS queue table permissions to protected#781
Closed
binarytemple wants to merge 4 commits into
Closed
Conversation
Sometimes realtime replication stops working, the reason why it has stopped is unclear, diagnosis is further complicated by the fact that the ETS queue table (buffer of objects due to be replicated to the sink) is private (can only be seen by the `riak_repl2_rtq` `gen_server` instance). If it were possible to examine the contents of that table the support engineer could examine the queued objects and perhaps discover that there is a large object causing head of line blocking. At the moment the only option is to kill the process and let the supervisor restart it, destroying all useful information in the process. The diagnostic information is opaque and needlessly so. The table doesn't need to be changed to public as it's probably undesirable to modify state outside the public API for this gen_server. I propose that the permissions be changed to 'protected' in order to improve visibility.
Contributor
|
Not too late, was gonna yell "FREEZE!" on Monday. I'll double check it this afternoon, but it looks good to me, and makes good sense. |
|
This would be good, I think we've had the same frustration when trying to diagnose why the queue is blocking but haven't been able to do anything because the table is private |
Contributor
|
Just realised, this should be against 2.2, and 2.2.5 should have been deleted. It was just a temporary branch while I got the build working. Sorry @binarytemple, can you re-open against develop-2.2? |
Contributor
|
Closing in favour of #782 (branch target mess up, and @binarytemple is AFK for a few days so this is quicker) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Sometimes realtime replication stops working, the reason why it has stopped is unclear, diagnosis is further complicated by the fact that the ETS queue table (buffer of objects due to be replicated to the sink) is private (can only be seen by the
riak_repl2_rtqgen_serverinstance).If it were possible to examine the contents of that table the support engineer could examine the queued objects and perhaps identify a large object causing head of line blocking. At the moment the only option is to kill the process and let the supervisor restart it, destroying all useful information in the process. The diagnostic information is opaque and needlessly so.
The table doesn't need to be changed to public as it's probably undesirable to modify state outside the public API for this gen_server.
I propose that the permissions be changed to 'protected' in order to improve visibility.