-
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
clusterviz: assign lat / long to nodes in the map view #19532
Comments
We could also include hard-coded location maps for certain popular naming conventions (names like |
Spencer also mentioned adding command line parameters to |
Ugh, this UX doesn't sound very nice. Our command-line flags are inscrutable as is, just including things that actually impact the operation of the database. Asking the user to stop nodes so they can add lat/long flags, documenting these flags, dealing with conflicts, etc. all just seems like creating problems for ourselves. Until there's a GUI flow, I'm inclined to go with Ben's suggestion, pick a few standard lists to leverage, and if a user's localities don't match, they just don't see the map. |
I agree, the UX is going to be terrible. The concern I have around standard lists is what if people use slightly different syntax to define those lists? What if us-east is actually us-east virginia not us-east (the other one)? |
cc @spencerkimball could you provide some more detail here? |
+1 to @bdarnell's suggestion for the immediate release. Unless the UX to set up lat/long is seamless, it's going to be much harder for people to see and utilize the map. We can perhaps include some obvious syntax pattern in the list to start, and go from there. |
Either 1) command line flag, which is now we set other node-specific items right now. Benefit to this is simplicity. Problem with it is excess redundancy. 2) settings table fields which map locality prefix to latitude longitude pair. 3) an internal system table mapping locality prefix to latitude and longitude. I think 3) is over engineered and 1) probably redundant and burdensome. So 2) seems like the best option. |
@mberhault could you weigh in on the preferred option here? |
I don't know if i'd put the locality -> geo mapping in cluster settings: it doesn't really need to be preemptively gossiped to all nodes and kept in memory at all times. My initial inclination would be |
I would tend to say definitely not for 1), too unwieldy. If 2) means the existing cluster settings then probably not, those are meant to be simple single-value variables and managed completely differently.
|
Sounds like a system table is preferred. I don’t think we should prepopulate the table. That’s too prescriptive and it’s confusing. We should maintain a table of common values in the documentation however. I also don’t think the ease of setting requires any extra work until we find out from customers that they are for some reason unable look up coordinates on their own. |
@dt did mention that it wouldn't "really" be the end of the world to let users click a point on a map that updates the system table, since it doesn't really compromise anything, but I have very little context on this |
Adds a new table, `system.locations`, which maps a string locality (i.e. "city=New York City") to geographic coordinates, specified as a latitude, longitude decimal pair. A new admin API call returns the contents of the table, for use from the admin UI. Fixes cockroachdb#19532
Adds a new table, `system.locations`, which maps a string locality (i.e. "city=New York City") to geographic coordinates, specified as a latitude, longitude decimal pair, specified in degrees. A new admin API call returns the contents of the table, for use from the admin UI. Fixes cockroachdb#19532 Release note (ui): A system table to allow operators to designate geographic coordinates for any locality. For use with frontend cluster visualization.
We have to do some digging to figure out the different options where we can assign a lat / long to a node or locality in the map.
Take for example something that looks like the following:
----------------- [ Country 1 ] ------------ [ Country 2 ] ------------------
-----------------/-----------|--------------/-------------|----------------
---------- [ Region 1 ] --- [ Region 2 ] -- [ Region 3] -- [Region 4] --------
----------/------|--------/-------|-------/-------|------/--------|--------
-----[ DC1 ] - [ DC2] - [DC3] - [DC4] - [DC5] - [DC6] - [DC7] - [DC8]----
First off, I think we don't have to support the state when not all localities within a locality tier have lat / long set. We need to come up with an error message here. We also don't need to support the state when for example, locality level 1 is not set, but locality 2 is set. We should require that at the very least, the parent must have a locality set. If the child does not have a locality set in this tree, we can default to a non-map view.
For now, although the usability will leave much to be desired, let's figure out how to do this with flags. This means we need to attribute a lat/long to a locality, as well as a lat/long potentially to a store attribute.
Eventually, we might consider allowing users to set this in the admin UI, but let's see what this looks like first?
cc @kuanluo @cuongdo @couchand @vilterp @mrtracy for comments
The text was updated successfully, but these errors were encountered: