-
Notifications
You must be signed in to change notification settings - Fork 11
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
[DB-14479] In assess-migration payload, send sizing and estimation information #2282
Changes from all commits
6322ed5
8797e85
141710a
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -101,6 +101,7 @@ var ASSESS_MIGRATION_CALLHOME_PAYLOAD_VERSION = "1.0" | |
type AssessMigrationPhasePayload struct { | ||
PayloadVersion string `json:"payload_version"` | ||
TargetDBVersion *ybversion.YBVersion `json:"target_db_version"` | ||
Sizing *SizingCallhome `json:"sizing"` | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. As you have added a new field to this structure, tests in FYI, please check the table in the PR template whenever you raise a PR it has the check box for the same to update if there is any change to any struct of the voyager state. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. In the PR template I would have to set CallhomeJSON to Yes right? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes you can, but mention that this is just an additional field so shouldn't affect anything. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ok thank you for the review. |
||
MigrationComplexity string `json:"migration_complexity"` | ||
MigrationComplexityExplanation string `json:"migration_complexity_explanation"` | ||
SchemaSummary string `json:"schema_summary"` | ||
|
@@ -121,6 +122,19 @@ type AssessmentIssueCallhome struct { | |
ObjectType string `json:"object_type"` | ||
} | ||
|
||
type SizingCallhome struct { | ||
NumColocatedTables int `json:"num_colocated_tables"` | ||
ColocatedReasoning string `json:"colocated_reasoning"` | ||
NumShardedTables int `json:"num_sharded_tables"` | ||
NumNodes float64 `json:"num_nodes"` | ||
VCPUsPerInstance int `json:"vcpus_per_instance"` | ||
MemoryPerInstance int `json:"memory_per_instance"` | ||
OptimalSelectConnectionsPerNode int64 `json:"optimial_select_connections_per_node"` | ||
OptimalInsertConnectionsPerNode int64 `json:"optimial_insert_connections_per_node"` | ||
EstimatedTimeInMinForImport float64 `json:"estimated_time_in_min_for_import"` | ||
ParallelVoyagerJobs float64 `json:"parallel_voyager_jobs"` | ||
} | ||
|
||
type ObjectSizingStats struct { | ||
SchemaName string `json:"schema_name,omitempty"` | ||
ObjectName string `json:"object_name"` | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pls verify that
ColocatedReasoning
andFailureReasoning
do not include any sensitive information.You can look at the code to get an idea of how these fields are set.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ColocatedReasoning does not include sensitive information as it mostly deals with number of colocated and sharded objects and their size and throughput requirements
Example : Recommended instance type with 4 vCPU and 16 GiB memory could fit 1 objects (1 tables/materialized views and 0 explicit/implicit indexes) with 0.00 MB size and throughput requirement of 0 reads/sec and 0 writes/sec as colocated. Non leaf partition tables/indexes and unsupported tables/indexes were not considered.
But Failure Reasoning might contain sensitive information as it catches all the errors that are thrown during sizing assessment.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's also bring this up in the standup that we won't be sending the failure reasoning with this change as it includes error msgs. Please also file a task for this, we have to do it at some point after redacting the error msgs.