Difference between latest 15.0 main files with 14.0-release#2
Difference between latest 15.0 main files with 14.0-release#2rohit-nayak-ps wants to merge 7 commits intoflags-14.0from
Conversation
Signed-off-by: Rohit Nayak <rohit@planetscale.com>
…7b61c5b Signed-off-by: Rohit Nayak <rohit@planetscale.com>
Signed-off-by: Rohit Nayak <rohit@planetscale.com>
dcb4169 to
9ee1b32
Compare
…min help was not generated for 14.0 as part of this PR :( Signed-off-by: Rohit Nayak <rohit@planetscale.com>
ajm188
left a comment
There was a problem hiding this comment.
we need one minor text change to the vtadmin help output (which i am making now) otherwise lgtm
Signed-off-by: Rohit Nayak <rohit@planetscale.com>
flags/14.0/vtgate.txt
Outdated
| @@ -1,48 +1,48 @@ | |||
| Usage of vtgate: | |||
| --allowed_tablet_types value Specifies the tablet types this vtgate is allowed to route queries to | |||
| --allowed_tablet_types []topodatapb.TabletType Specifies the tablet types this vtgate is allowed to route queries to. | |||
There was a problem hiding this comment.
Is there a way we can make this string? and it's supposed to be comma-separated, right?
There was a problem hiding this comment.
Not sure what your question is exactly, tbh. This is a list of tablet types, which can be both comma separated ("replica,primary") and by specifying the flag multiple times (edit: nope i read the code and it's just CSV)
There was a problem hiding this comment.
to clarify my question: when the users are seeing the help text, they should not need to know what topodatapb.TabletType is. They just need to know to provide a CSV. so it will be good if we can somehow make this print
--allowed_tablet_types string Specifies the tablet types this vtgate is allowed to route queries to. Should be provided as a comma-separated set of tablet types
or something like that.
There was a problem hiding this comment.
yeah, so this comes from the Type() method on a pflag.Value so you can make it say whatever you want (you shouldn't do that though - e.g. func (f *myFlag) Type() string { "crashes-your-program-and-steals-your-data" } :P
flags/14.0/mysqlctl.txt
Outdated
| --backup_storage_number_blocks int if backup_storage_compress is true, backup_storage_number_blocks sets the number of blocks that can be processed, at once, before the writer blocks, during compression (default is 2). It should be equal to the number of CPUs available for compression. (default 2) | ||
| --builtinbackup_mysqld_timeout duration how long to wait for mysqld to shutdown at the start of the backup. (default 10m0s) | ||
| --builtinbackup_progress duration how often to send progress updates when backing up large files. (default 5s) |
There was a problem hiding this comment.
I believe all backup flags can be removed from mysqlctl.
flags/14.0/mysqlctl.txt
Outdated
| --compression-engine-name string compressor engine used for compression. (default "pargzip") | ||
| --compression-level int what level to pass to the compressor. (default 1) |
There was a problem hiding this comment.
Backup flags can be removed.
flags/14.0/mysqlctl.txt
Outdated
| --db_tls_min_version string Configures the minimal TLS version negotiated when SSL is enabled. Defaults to TLSv1.2. Options: TLSv1.0, TLSv1.1, TLSv1.2, TLSv1.3. | ||
| --dba_idle_timeout duration Idle timeout for dba connections (default 1m0s) | ||
| --dba_pool_size int Size of the connection pool for dba connections (default 20) | ||
| --disable_active_reparents if set, do not allow active reparents. Use this to protect a cluster using external reparents. |
There was a problem hiding this comment.
disable_active_reparents can be removed from here
flags/14.0/mysqlctl.txt
Outdated
| --external-compressor string command with arguments to use when compressing a backup. | ||
| --external-compressor-extension string extension to use when using an external compressor. | ||
| --external-decompressor string command with arguments to use when decompressing a backup. |
flags/14.0/mysqlctl.txt
Outdated
| --xbstream_restore_flags string flags to pass to xbstream command during restore. These should be space separated and will be added to the end of the command. These need to match the ones used for backup e.g. --compress / --decompress, --encrypt / --decrypt | ||
| --xtrabackup_backup_flags string flags to pass to backup command. These should be space separated and will be added to the end of the command | ||
| --xtrabackup_prepare_flags string flags to pass to prepare command. These should be space separated and will be added to the end of the command | ||
| --xtrabackup_root_path string directory location of the xtrabackup and xbstream executables, e.g., /usr/bin | ||
| --xtrabackup_stream_mode string which mode to use if streaming, valid values are tar and xbstream (default tar) | ||
| --xtrabackup_stream_mode string which mode to use if streaming, valid values are tar and xbstream (default "tar") | ||
| --xtrabackup_stripe_block_size uint Size in bytes of each block that gets sent to a given stripe before rotating to the next stripe (default 102400) | ||
| --xtrabackup_stripes uint If greater than 0, use data striping across this many destination files to parallelize data transfer and decompression |
| --alsologtostderr log to standard error as well as files | ||
| --app_idle_timeout duration Idle timeout for app connections (default 1m0s) | ||
| --app_pool_size int Size of the connection pool for app connections (default 40) | ||
| --backup_engine_implementation string Specifies which implementation to use for creating new backups (builtin or xtrabackup). Restores will always be done with whichever engine created a given backup. (default builtin) |
There was a problem hiding this comment.
Should be pretty much identical to mysqlctl.txt
flags/14.0/vtctld.txt
Outdated
| Usage of vtctld: | ||
| --action_timeout duration time to wait for an action before resorting to force (default 2m0s) | ||
| --allowed_tablet_types value Specifies the tablet types this vtgate is allowed to route queries to | ||
| --allowed_tablet_types []topodatapb.TabletType Specifies the tablet types this vtgate is allowed to route queries to. |
There was a problem hiding this comment.
vtgate flag, remove from vtctld.
flags/14.0/vtctld.txt
Outdated
| --dba_idle_timeout duration Idle timeout for dba connections (default 1m0s) | ||
| --dba_pool_size int Size of the connection pool for dba connections (default 20) |
There was a problem hiding this comment.
I'm unsure if these two flags are actually relevant for vtctld. I don't think it actually creates a conn pool which means we should be able to remove these.
flags/14.0/vtctld.txt
Outdated
| --enable_lag_throttler If true, vttablet will run a throttler service, and will implicitly enable heartbeats | ||
| --enable_queries [DEPRECATED - query commands via vtctl are being deprecated] if set, allows vtgate and vttablet queries. May have security implications, as the queries will be run from this process. | ||
| --enable_query_plan_field_caching This option fetches & caches fields (columns) when storing query plans (default true) | ||
| --enable_realtime_stats Required for the Realtime Stats view. If set, vtctld will maintain a streaming RPC to each tablet (in all cells) to gather the realtime health stats. |
There was a problem hiding this comment.
we should probably deprecate this, because it is used by the old web UI that is already deprecated.
flags/14.0/vtctld.txt
Outdated
| --enable_transaction_limit If true, limit on number of transactions open at the same time will be enforced for all users. User trying to open a new transaction after exhausting their limit will receive an error immediately, regardless of whether there are available slots or not. | ||
| --enable_transaction_limit_dry_run If true, limit on number of transactions open at the same time will be tracked for all users, but not enforced. | ||
| --enable_tx_throttler If true replication-lag-based throttling on transactions will be enabled. | ||
| --enable_vtctld_ui If true, the vtctld web interface will be enabled. Default is true. (default true) |
There was a problem hiding this comment.
Deprecate enable_vtctld_ui but make sure to keep using it to control behavior.
flags/14.0/vtctld.txt
Outdated
| --keep_logs duration keep logs for this long (using ctime) (zero to keep forever) | ||
| --keep_logs_by_mtime duration keep logs for this long (using mtime) (zero to keep forever) | ||
| --keyspaces_to_watch value Specifies which keyspaces this vtgate should have access to while routing queries or accessing the vschema | ||
| --keyspaces_to_watch strings Specifies which keyspaces this vtgate should have access to while routing queries or accessing the vschema. |
There was a problem hiding this comment.
keyspaces_to_watch is only relevant to vtgate. delete.
There was a problem hiding this comment.
hmm I wonder if vtctld -> realtime_stats -> healthcheck -> keyspaces_to_watch
@frouioui do we need to keep this?
There was a problem hiding this comment.
we still use keyspaces_to_watch in the discovery.
There was a problem hiding this comment.
we actively use it to filter out keyspaces
There was a problem hiding this comment.
we create a healthcheck in vtcltd and i am assuming people should be able to filter out which keyspace they want to see in vtctld and vtgate
flags/14.0/vtctld.txt
Outdated
| --mysql_auth_static_reload_interval duration Ticker to reload credentials | ||
| --mysql_clientcert_auth_method string client-side authentication method to use. Supported values: mysql_clear_password, dialog. (default mysql_clear_password) | ||
| --mysql_server_flush_delay duration Delay after which buffered response will be flushed to the client. (default 100ms) | ||
| --mysql_server_version string MySQL server version to advertise. |
There was a problem hiding this comment.
mysql_server_version is only relevant to vtgate. delete.
flags/14.0/vtctld.txt
Outdated
| --mysqlctl_mycnf_template string template file to use for generating the my.cnf file during server init | ||
| --mysqlctl_socket string socket file to use for remote mysqlctl actions (empty for local actions) |
There was a problem hiding this comment.
these two can be deleted too.
| --srv_topo_cache_refresh duration how frequently to refresh the topology for cached entries (default 1s) | ||
| --srv_topo_cache_ttl duration how long to use cached entries for topology (default 1s) | ||
| --srv_topo_timeout duration topo server timeout (default 5s) |
There was a problem hiding this comment.
need to revisit whether it is safe to delete these. though I guess if tests are passing it is fine.
flags/14.0/vtctld.txt
Outdated
| --vtgate_grpc_crl string the server crl to use to validate server certificates when connecting | ||
| --vtgate_grpc_key string the key to use to connect | ||
| --vtgate_grpc_server_name string the server name to use to validate server certificate |
There was a problem hiding this comment.
I think we already deleted the VtGateExecute command. If yes, then we also don't need these vtgate_ flags.
flags/14.0/vtctld.txt
Outdated
| --web_dir string NOT USED, here for backward compatibility | ||
| --web_dir2 string NOT USED, here for backward compatibility |
flags/14.0/vtctld.txt
Outdated
| --xbstream_restore_flags string flags to pass to xbstream command during restore. These should be space separated and will be added to the end of the command. These need to match the ones used for backup e.g. --compress / --decompress, --encrypt / --decrypt | ||
| --xtrabackup_backup_flags string flags to pass to backup command. These should be space separated and will be added to the end of the command | ||
| --xtrabackup_prepare_flags string flags to pass to prepare command. These should be space separated and will be added to the end of the command | ||
| --xtrabackup_root_path string directory location of the xtrabackup and xbstream executables, e.g., /usr/bin | ||
| --xtrabackup_stream_mode string which mode to use if streaming, valid values are tar and xbstream (default tar) | ||
| --xtrabackup_stream_mode string which mode to use if streaming, valid values are tar and xbstream (default "tar") | ||
| --xtrabackup_stripe_block_size uint Size in bytes of each block that gets sent to a given stripe before rotating to the next stripe (default 102400) | ||
| --xtrabackup_stripes uint If greater than 0, use data striping across this many destination files to parallelize data transfer and decompression | ||
| --xtrabackup_user string User that xtrabackup will use to connect to the database server. This user must have all necessary privileges. For details, please refer to xtrabackup documentation. |
There was a problem hiding this comment.
I don't think vtctld needs any xtrabackup or xbstream flags. it only needs backup storage related flags.
flags/14.0/vtctld.txt
Outdated
| --workflow_manager_disable strings comma separated list of workflow types to disable | ||
| --workflow_manager_init Initialize the workflow manager in this vtctld instance. | ||
| --workflow_manager_use_election if specified, will use a topology server-based master election to ensure only one workflow manager is active at a time. |
There was a problem hiding this comment.
I wonder if we should deprecate these?
vtctld UI is going away, that had workflows.
We probably should also deprecate the vtctl Workflow commands.
| --tablet_grpc_crl string the server crl to use to validate server certificates when connecting | ||
| --tablet_grpc_key string the key to use to connect | ||
| --tablet_grpc_server_name string the server name to use to validate server certificate | ||
| --tablet_manager_protocol string the protocol to use to talk to vttablet (default grpc) |
There was a problem hiding this comment.
Why did this go away from the help? was this flag deprecated? or unused?
There was a problem hiding this comment.
Not sure about this. But i saw couple its being used in vtcombo and vtgr ...
flags/14.0/vtgate.txt
Outdated
| --tablet_protocol string Protocol to use to make queryservice RPCs to vttablets. (default "grpc") | ||
| --tablet_refresh_interval duration Tablet refresh interval. (default 1m0s) | ||
| --tablet_refresh_known_tablets Whether to reload the tablet's address/port map from topo in case they change. (default true) | ||
| --tablet_types_to_wait string wait till connected for specified tablet types during Gateway initialization |
There was a problem hiding this comment.
how come this is a string but allowed_tablet_types is a slice?
There was a problem hiding this comment.
I have made tablet_types_to_wait as string
There was a problem hiding this comment.
also i have added that is command separated string
flags/14.0/vttablet.txt
Outdated
| --enable_query_plan_field_caching This option fetches & caches fields (columns) when storing query plans (default true) | ||
| --enable_query_plan_field_caching (DEPRECATED) This option fetches & caches fields (columns) when storing query plans (default true) |
There was a problem hiding this comment.
we should MarkDeprecated for this flag.
flags/14.0/vttablet.txt
Outdated
| --queryserver-config-pool-prefill-parallelism int query server read pool prefill parallelism, a non-zero value will prefill the pool using the specified parallism. | ||
| --queryserver-config-pool-prefill-parallelism int (DEPRECATED) query server read pool prefill parallelism, a non-zero value will prefill the pool using the specified parallism. |
There was a problem hiding this comment.
Should use MarkDeprecated
flags/14.0/vttablet.txt
Outdated
| --queryserver-config-stream-pool-prefill-parallelism int query server stream pool prefill parallelism, a non-zero value will prefill the pool using the specified parallelism | ||
| --queryserver-config-stream-pool-prefill-parallelism int (DEPRECATED) query server stream pool prefill parallelism, a non-zero value will prefill the pool using the specified parallelism |
There was a problem hiding this comment.
should use MarkDeprecated
flags/14.0/vttablet.txt
Outdated
| --queryserver-config-transaction-prefill-parallelism int query server transaction prefill parallelism, a non-zero value will prefill the pool using the specified parallism. | ||
| --queryserver-config-transaction-prefill-parallelism int (DEPRECATED) query server transaction prefill parallelism, a non-zero value will prefill the pool using the specified parallism. |
There was a problem hiding this comment.
Should use MarkDeprecated.
flags/14.0/vttablet.txt
Outdated
| --xtrabackup_stream_mode string which mode to use if streaming, valid values are tar and xbstream (default tar) | ||
| --xtrabackup_stream_mode string which mode to use if streaming, valid values are tar and xbstream (default "tar") |
There was a problem hiding this comment.
should we document that tar is no longer supported in new versions of 8.0? I forget when it changed.
cc @mattlord
There was a problem hiding this comment.
Yeah, it's not supported in XtraBackup 8.0 (and XtraBackup 8.0.X does not support MySQL 8.0.X+1)
…8:32:08 2022 +0530) Signed-off-by: Rohit Nayak <rohit@planetscale.com>
| --log_dir string If non-empty, write log files in this directory | ||
| --log_rotate_max_size uint size in bytes at which logs are rotated (glog.MaxSize) (default 1887436800) | ||
| --logtostderr log to standard error instead of files | ||
| --mysql_server_version string MySQL server version to advertise. |
There was a problem hiding this comment.
how did this get into vtctldclient??!!!
There was a problem hiding this comment.
local client => ApplyVSchema => sqlparser.Parse => depends on mysql_server_version
…33 2022 -0700) Signed-off-by: Rohit Nayak <rohit@planetscale.com>
We did a major refactor of flags in 15.0. Flags are now registered for each binary, rather than being global. As a result it is possible that we might removed flags from binaries that should be there. Also, we may have enabled unnecessary flags for binaries.
This PR contains a diff of the current help output (used in
TestHelpOutput) with the one generated by 14.0 to be used to audit the flag changes. This is linked from the Vitess PR: vitessio/vitess#11434.