Skip to content

Commit 2f2c788

Browse files
committed
setting num_writer_threads = disk_io_optimized for all durability tests by default
Change-Id: Ifb0a9629d106575b3418bdb186bc33df76228d84 Reviewed-on: http://review.couchbase.org/c/perfrunner/+/149068 Tested-by: Build Bot <[email protected]> Reviewed-by: <[email protected]>
1 parent d18ea7e commit 2f2c788

File tree

3 files changed

+28
-2
lines changed

3 files changed

+28
-2
lines changed

perfrunner/helpers/cluster.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -459,8 +459,10 @@ def restart_with_alternative_bucket_options(self):
459459
self.rest.run_diag_eval(master, diag_eval)
460460

461461
if self.test_config.bucket_extras:
462+
self.disable_auto_failover()
462463
self.remote.restart()
463464
self.wait_until_healthy()
465+
self.enable_auto_failover()
464466

465467
def tune_logging(self):
466468
if self.dynamic_infra:
@@ -486,6 +488,24 @@ def enable_auto_failover(self):
486488
for master in self.cluster_spec.masters:
487489
self.rest.set_auto_failover(master, enabled, failover_min, failover_max)
488490

491+
def disable_auto_failover(self):
492+
enabled = 'false'
493+
failover_min = self.test_config.bucket.failover_min
494+
failover_max = self.test_config.bucket.failover_max
495+
if self.dynamic_infra:
496+
cluster = self.remote.get_cluster()
497+
cluster['spec']['cluster']['autoFailoverMaxCount'] = 1
498+
cluster['spec']['cluster']['autoFailoverServerGroup'] = bool(enabled)
499+
cluster['spec']['cluster']['autoFailoverOnDataDiskIssues'] = bool(enabled)
500+
cluster['spec']['cluster']['autoFailoverOnDataDiskIssuesTimePeriod'] = \
501+
'{}s'.format(10)
502+
cluster['spec']['cluster']['autoFailoverTimeout'] = \
503+
'{}s'.format(failover_max)
504+
self.remote.update_cluster_config(cluster)
505+
else:
506+
for master in self.cluster_spec.masters:
507+
self.rest.set_auto_failover(master, enabled, failover_min, failover_max)
508+
489509
def wait_until_warmed_up(self):
490510
if self.test_config.bucket.bucket_type in ('ephemeral', 'memcached'):
491511
return

perfrunner/helpers/rest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -527,7 +527,7 @@ def run_diag_eval(self, host: str, cmd: str):
527527

528528
def set_auto_failover(self, host: str, enabled: str,
529529
failover_min: int, failover_max: int):
530-
logger.info('Enabling auto-failover with the minimum timeout')
530+
logger.info('Setting auto-failover to: {}'.format(enabled))
531531

532532
api = 'http://{}:8091/settings/autoFailover'.format(host)
533533

perfrunner/settings.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1684,7 +1684,13 @@ def users(self) -> UserSettings:
16841684

16851685
@property
16861686
def bucket_extras(self) -> dict:
1687-
return self._get_options_as_dict('bucket_extras')
1687+
bucket_extras = self._get_options_as_dict('bucket_extras')
1688+
options = self._get_options_as_dict('access')
1689+
access = AccessSettings(options)
1690+
if access.durability is not None:
1691+
if "num_writer_threads" not in bucket_extras:
1692+
bucket_extras["num_writer_threads"] = "disk_io_optimized"
1693+
return bucket_extras
16881694

16891695
@property
16901696
def buckets(self) -> List[str]:

0 commit comments

Comments
 (0)