-
Notifications
You must be signed in to change notification settings - Fork 0
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
vtgateproxy: sticky random balancer and remote zone backup connections #593
base: vtgateproxy-15
Are you sure you want to change the base?
Changes from all commits
f18ad9a
eae6b55
072efba
952fc33
1b6038a
def45d7
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 |
---|---|---|
@@ -0,0 +1,101 @@ | ||
package main | ||
|
||
import ( | ||
"flag" | ||
"fmt" | ||
"math/rand" | ||
"sort" | ||
"time" | ||
|
||
"github.com/guptarohit/asciigraph" | ||
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_revertible)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_revertible)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_revertible)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / End-to-End Test
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / End-to-End Test (Race)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / End-to-End Test (Race)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / End-to-End Test (Race)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_queries)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_queries)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_queries)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vreplication_migrate_vdiff2_convert_tz)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vreplication_migrate_vdiff2_convert_tz)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vreplication_migrate_vdiff2_convert_tz)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (22)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (22)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (22)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_vrepl)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_vrepl)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_vrepl)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_scheduler)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_scheduler)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_scheduler)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (schemadiff_vrepl)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (schemadiff_vrepl)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (schemadiff_vrepl)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtctlbackup_sharded_clustertest_heavy)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtctlbackup_sharded_clustertest_heavy)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtctlbackup_sharded_clustertest_heavy)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_readafterwrite)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_readafterwrite)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_readafterwrite)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vstream_stoponreshard_true)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vstream_stoponreshard_true)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vstream_stoponreshard_true)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (tabletmanager_throttler_custom_config)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (tabletmanager_throttler_custom_config)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (tabletmanager_throttler_custom_config)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vreplication_basic)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vreplication_basic)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vreplication_basic)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_ghost)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_ghost)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_ghost)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_vindex_heavy)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_vindex_heavy)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_vindex_heavy)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_schema)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_schema)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_schema)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_vrepl_stress)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_vrepl_stress)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_vrepl_stress)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_schema_tracker)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_schema_tracker)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_schema_tracker)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (topo_connection_cache)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (topo_connection_cache)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (topo_connection_cache)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_revert)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_revert)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_revert)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vreplication_across_db_versions)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vreplication_across_db_versions)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vreplication_across_db_versions)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_godriver)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_godriver)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_godriver)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_vrepl_suite)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_vrepl_suite)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_vrepl_suite)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (tabletmanager_tablegc)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (tabletmanager_tablegc)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (tabletmanager_tablegc)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (ers_prs_newfeatures_heavy)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (ers_prs_newfeatures_heavy)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (ers_prs_newfeatures_heavy)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vreplication_v2)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vreplication_v2)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vreplication_v2)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (18)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (18)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (18)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (mysql_server_vault)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (mysql_server_vault)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (mysql_server_vault)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vttablet_prscomplex)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vttablet_prscomplex)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vttablet_prscomplex)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vreplication_multicell)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vreplication_multicell)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vreplication_multicell)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_vschema)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_vschema)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_vschema)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (xb_backup)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (xb_backup)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (xb_backup)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_concurrentdml)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_concurrentdml)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_concurrentdml)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Docker Test Cluster 10
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Docker Test Cluster 10
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Docker Test Cluster 10
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Docker Test Cluster 10
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Docker Test Cluster 10
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vstream_with_keyspaces_to_watch)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vstream_with_keyspaces_to_watch)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vstream_with_keyspaces_to_watch)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (tabletmanager_throttler)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (tabletmanager_throttler)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (tabletmanager_throttler)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_unsharded)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_unsharded)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_unsharded)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_partial_keyspace)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_partial_keyspace)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_partial_keyspace)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (12)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (12)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (12)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vstream_stoponreshard_false)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vstream_stoponreshard_false)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vstream_stoponreshard_false)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_gen4)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_gen4)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_gen4)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vreplication_cellalias)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vreplication_cellalias)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vreplication_cellalias)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtorc)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtorc)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtorc)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_reservedconn)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_reservedconn)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_reservedconn)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (21)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (21)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (21)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (13)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (13)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (13)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_tablet_healthcheck_cache)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_tablet_healthcheck_cache)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_tablet_healthcheck_cache)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_declarative)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_declarative)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_declarative)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (15)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (15)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (15)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_transaction)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_transaction)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_transaction)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_topo_consul)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_topo_consul)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_topo_consul)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_singleton)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_singleton)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_singleton)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_topo)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_topo)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_topo)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtbackup_transform)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtbackup_transform)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtbackup_transform)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_vrepl_stress_suite)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_vrepl_stress_suite)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_vrepl_stress_suite)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_topo_etcd)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_topo_etcd)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_topo_etcd)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (mysql80)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (mysql80)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (mysql80)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vstream_failover)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vstream_failover)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vstream_failover)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_general_heavy)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_general_heavy)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_general_heavy)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (xb_recovery)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (xb_recovery)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (xb_recovery)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (tabletmanager_consul)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (tabletmanager_consul)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (tabletmanager_consul)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Unit Test (Race)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Unit Test (Race)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Unit Test (Race)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Docker Test Cluster 25
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Docker Test Cluster 25
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Docker Test Cluster 25
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Docker Test Cluster 25
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Docker Test Cluster 25
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run Upgrade Downgrade Test - Backups - E2E
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run Upgrade Downgrade Test - Query Serving (Queries)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run Upgrade Downgrade Test - Reparent Old Vtctl
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run Upgrade Downgrade Test - Query Serving (Schema)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / test
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / test
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / test
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run Upgrade Downgrade Test - Reparent Old VTTablet
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run Upgrade Downgrade Test - Backups - Manual
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / End-to-End Test (Race)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / End-to-End Test (Race)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / End-to-End Test (Race)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / End-to-End Test
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vreplication_multicell)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vreplication_multicell)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vreplication_multicell)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_vrepl_stress)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_vrepl_stress)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_vrepl_stress)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_vindex_heavy)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_vindex_heavy)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_vindex_heavy)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vstream_failover)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vstream_failover)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vstream_failover)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_gen4)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_gen4)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_gen4)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_topo)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_topo)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_topo)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (tabletmanager_throttler_custom_config)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (tabletmanager_throttler_custom_config)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (tabletmanager_throttler_custom_config)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_tablet_healthcheck_cache)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_tablet_healthcheck_cache)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_tablet_healthcheck_cache)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_unsharded)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_unsharded)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_unsharded)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vstream_with_keyspaces_to_watch)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vstream_with_keyspaces_to_watch)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vstream_with_keyspaces_to_watch)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_schema)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_schema)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_schema)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_partial_keyspace)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_partial_keyspace)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_partial_keyspace)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (ers_prs_newfeatures_heavy)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (ers_prs_newfeatures_heavy)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (ers_prs_newfeatures_heavy)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (tabletmanager_tablegc)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (tabletmanager_tablegc)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (tabletmanager_tablegc)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vstream_stoponreshard_true)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vstream_stoponreshard_true)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vstream_stoponreshard_true)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_topo_etcd)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_topo_etcd)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_topo_etcd)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_schema_tracker)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_schema_tracker)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_schema_tracker)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtorc)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtorc)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtorc)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vreplication_v2)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vreplication_v2)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vreplication_v2)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_transaction)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_transaction)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_transaction)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_general_heavy)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_general_heavy)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_general_heavy)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_godriver)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_godriver)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vtgate_godriver)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_ghost)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_ghost)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_ghost)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vreplication_migrate_vdiff2_convert_tz)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vreplication_migrate_vdiff2_convert_tz)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (vreplication_migrate_vdiff2_convert_tz)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_vrepl_stress_suite)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_vrepl_stress_suite)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_vrepl_stress_suite)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (18)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (18)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (18)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_revertible)
Check failure on line 10 in go/vt/vtgateproxy/sim/vtgateproxysim.go GitHub Actions / Run endtoend tests on Cluster (onlineddl_revertible)
|
||
) | ||
|
||
var ( | ||
numClients = flag.Int("c", 9761, "Number of clients") | ||
numVtgates = flag.Int("v", 1068, "Number of vtgates") | ||
numConnections = flag.Int("n", 4, "number of connections per client host") | ||
numZones = flag.Int("z", 4, "number of zones") | ||
) | ||
|
||
func main() { | ||
rnd := rand.New(rand.NewSource(time.Now().UnixNano())) | ||
|
||
flag.Parse() | ||
|
||
fmt.Printf("Simulating %d clients => %d vtgates with %d zones %d conns per client\n\n", | ||
*numClients, *numVtgates, *numZones, *numConnections) | ||
|
||
var clients []string | ||
for i := 0; i < *numClients; i++ { | ||
clients = append(clients, fmt.Sprintf("client-%03d", i)) | ||
} | ||
|
||
var vtgates []string | ||
for i := 0; i < *numVtgates; i++ { | ||
vtgates = append(vtgates, fmt.Sprintf("vtgate-%03d", i)) | ||
} | ||
|
||
// for now just consider 1/N of the s "local" | ||
localClients := clients[:*numClients / *numZones] | ||
localVtgates := vtgates[:*numVtgates / *numZones] | ||
|
||
conns := map[string][]string{} | ||
|
||
// Simulate "discovery" | ||
for _, client := range localClients { | ||
var clientConns []string | ||
|
||
for i := 0; i < *numConnections; i++ { | ||
vtgate := localVtgates[rnd.Intn(len(localVtgates))] | ||
clientConns = append(clientConns, vtgate) | ||
} | ||
|
||
conns[client] = clientConns | ||
} | ||
|
||
counts := map[string]int{} | ||
for _, conns := range conns { | ||
for _, vtgate := range conns { | ||
counts[vtgate]++ | ||
} | ||
} | ||
|
||
histogram := map[int]int{} | ||
max := 0 | ||
min := -1 | ||
for _, count := range counts { | ||
histogram[count]++ | ||
if count > max { | ||
max = count | ||
} | ||
if min == -1 || count < min { | ||
min = count | ||
} | ||
} | ||
|
||
fmt.Printf("Conns per vtgate\n%v\n\n", counts) | ||
fmt.Printf("Histogram of conn counts\n%v\n\n", histogram) | ||
|
||
plot := []float64{} | ||
for i := 0; i < len(localVtgates); i++ { | ||
plot = append(plot, float64(counts[localVtgates[i]])) | ||
} | ||
sort.Float64s(plot) | ||
graph := asciigraph.Plot(plot) | ||
fmt.Println("Number of conns per vtgate host") | ||
fmt.Println(graph) | ||
fmt.Println("") | ||
fmt.Println("") | ||
|
||
fmt.Printf("Conn count per vtgate distribution [%d - %d] (%d clients => %d vtgates with %d zones %d conns\n\n", | ||
min, max, *numClients, *numVtgates, *numZones, *numConnections) | ||
plot = []float64{} | ||
for i := min; i < max; i++ { | ||
plot = append(plot, float64(histogram[i])) | ||
} | ||
graph = asciigraph.Plot(plot) | ||
fmt.Println(graph) | ||
|
||
fmt.Printf("\nConn stats: min %d max %d spread %d spread/min %f spread/avg %f\n", | ||
min, max, max-min, float64(max-min)/float64(min), float64(max-min)/float64((max+min)/2)) | ||
} |
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.
I wonder if it's cleaner to have the sorter return two separate slices, one for local, one for not. (Or to call shuffleSort twice on two slices).
If
allTargets
has more local connections thannumConnections
, but fewer non-local thannumBackupConns
, we'll put some local connections in the non-local bucket I think. And vice-versa.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.
I spent a bit of time thinking about this when writing the PR and then again after your comment. While I agree that splitting into two lists would make some stuff clearer, I actually think the way it's written produces the better outcome in all the ways we'd actually want in practice.
So to elaborate a bit, it's clear that we're fine in either the "happy path" when there are enough conns of each flavor, and also in the very degenerate case when there are fewer conns total than numConnections + numBackup and you have to take all of what you got.
This means we're in a case where there more than enough conns total, but not enough of either local or remote type. However I think the better outcome in that case is to still establish
numConnections + numBackupConns
total connections, even if you end up with the "wrong" mix of local / remote because there aren't enough to satisfy the ask.If we all agree, then I think the current code does exactly that.
If not, then we're saying we'd rather make sure to only connect to
<= numConnections
local and<= numBackupConns
remote, then I agree with you sorting into two lists would be a clearer way to achieve that.