diff options
author | unknown <tomas@whalegate.ndb.mysql.com> | 2007-04-25 15:25:23 +0200 |
---|---|---|
committer | unknown <tomas@whalegate.ndb.mysql.com> | 2007-04-25 15:25:23 +0200 |
commit | 8eb42d72bf7451d3fc1845487f3366cd45b34a9e (patch) | |
tree | 744d25bd997ec807a7a074444ca4ce6f774f95c9 /sql/ha_ndbcluster_binlog.cc | |
parent | 75a52bfbe3619640a49d1e3e99916ec40522a719 (diff) | |
download | mariadb-git-8eb42d72bf7451d3fc1845487f3366cd45b34a9e.tar.gz |
ndb: added some retry sleep to not get busy loops
Diffstat (limited to 'sql/ha_ndbcluster_binlog.cc')
-rw-r--r-- | sql/ha_ndbcluster_binlog.cc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/sql/ha_ndbcluster_binlog.cc b/sql/ha_ndbcluster_binlog.cc index 3a5dd21df2c..6b21d492f89 100644 --- a/sql/ha_ndbcluster_binlog.cc +++ b/sql/ha_ndbcluster_binlog.cc @@ -1024,6 +1024,7 @@ ndbcluster_update_slock(THD *thd, const NDBTAB *ndbtab= ndbtab_g.get_table(); NdbTransaction *trans= 0; int retries= 100; + int retry_sleep= 10; /* 10 milliseconds, transaction */ const NDBCOL *col[SCHEMA_SIZE]; unsigned sz[SCHEMA_SIZE]; @@ -1125,6 +1126,7 @@ ndbcluster_update_slock(THD *thd, { if (trans) ndb->closeTransaction(trans); + my_sleep(retry_sleep); continue; // retry } } @@ -1323,6 +1325,7 @@ int ndbcluster_log_schema_op(THD *thd, NDB_SHARE *share, const NDBTAB *ndbtab= ndbtab_g.get_table(); NdbTransaction *trans= 0; int retries= 100; + int retry_sleep= 10; /* 10 milliseconds, transaction */ const NDBCOL *col[SCHEMA_SIZE]; unsigned sz[SCHEMA_SIZE]; @@ -1427,6 +1430,7 @@ err: { if (trans) ndb->closeTransaction(trans); + my_sleep(retry_sleep); continue; // retry } } @@ -2715,6 +2719,11 @@ ndbcluster_create_event_ops(NDB_SHARE *share, const NDBTAB *ndbtab, TABLE *table= share->table; int retries= 100; + /* + 100 milliseconds, temporary error on schema operation can + take some time to be resolved + */ + int retry_sleep= 100; while (1) { pthread_mutex_lock(&injector_mutex); @@ -2843,7 +2852,10 @@ ndbcluster_create_event_ops(NDB_SHARE *share, const NDBTAB *ndbtab, ndb->dropEventOperation(op); pthread_mutex_unlock(&injector_mutex); if (retries) + { + my_sleep(retry_sleep); continue; + } DBUG_RETURN(-1); } pthread_mutex_unlock(&injector_mutex); |