-
Notifications
You must be signed in to change notification settings - Fork 3.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] server, ui: return replica-level QPS and leaseholder info; render in replica matrix #26906
base: master
Are you sure you want to change the base?
Conversation
d8ddaef
to
7de7efd
Compare
Range descriptors are stored in memory, so no disk IO. The CPU and memory cost can be substantial, though. Reviewed 8 of 8 files at r2, 2 of 4 files at r3, 1 of 3 files at r5, 2 of 2 files at r6, 1 of 1 files at r7. pkg/server/status.go, line 1595 at r7 (raw file):
Leases have sequence numbers; this should use the one with the highest sequence. pkg/server/serverpb/status.proto, line 613 at r7 (raw file):
Writes per second is a range-scoped stat; reads per second is replica-scoped (for now it's zero on followers, so the leaseholder's replica stats tell you everything about the range, but this will change when we have follower reads). Comments from Reviewable |
7de7efd
to
3e396d2
Compare
3e396d2
to
86252e8
Compare
55e030c
to
cbf588b
Compare
Note to self: the UI should just hit each node independently to ask it for which replicas it has. That way, unhappy/slow nodes don't completely block the rendering of the page. |
cbf588b
to
40bb0cd
Compare
Calls the RaftDebug endpoint and filters out everything but basic information about a range: table id, leaseholder node id, and read and write stats. Release note: None
TODO: factor out into styl file Release note: None
Release note: None
Release note: None
i.e. map values to color scale Release note: None
Release note: None
Release note: None
Release note: None
Release note: None
featuring a very ugly sort state selector widget Release note: None
Release note: None
Release note: None
40bb0cd
to
8ef44f5
Compare
Pete Vilter seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account. You have signed the CLA already but the status is still pending? Let us recheck it. |
(Video)
Example:
bin/roachtest bench tpccbench/nodes=30/cpu=16
(30 node x 16 CPU cluster; ~58k ranges)This uses a lot of memory and CPU in the browser (and on the server, probably), so needs a fair amount of perf investigation& work before merging.
Current perf concerns:
LeaseholdersAndQPS
callsRaftDebug
range internally, and then copies only a few things from that response into its own response. How much is to be gained by removing that intermediate call, and havingLeaseholdersAndQPS
iterating through stores and ranges itself?RaftDebug
iterates through all stores and all ranges they have. How much memory and CPU does this take? How much disk IO? (I assume those range descriptors aren't all stored in memory at all times)TODO