in perfkitbenchmarker/linux_benchmarks/unmanaged_postgresql_sysbench_benchmark.py [0:0]
def GetConfig(user_config):
"""Get the benchmark config, applying user overrides.
Args:
user_config:
Returns:
Benchmark config.
"""
config = configs.LoadConfig(BENCHMARK_CONFIG, user_config, BENCHMARK_NAME)
# Instead of changing the default data dir of database in (multiple) configs,
# Force the scratch disk as database default dir (simpler code).
disk_spec = config['vm_groups']['server']['disk_spec']
for cloud in disk_spec:
disk_spec[cloud]['mount_point'] = postgresql16.GetOSDependentDefaults(
FLAGS.os_type
)['disk_mount_point']
# Update machine type for server/client.
if FLAGS.db_machine_type or FLAGS.db_zone:
vm_spec = config['vm_groups']['server']['vm_spec']
for cloud in vm_spec:
if FLAGS.db_zone:
vm_spec[cloud]['zone'] = FLAGS.db_zone[0]
if FLAGS.db_machine_type:
vm_spec[cloud]['machine_type'] = FLAGS.db_machine_type
if FLAGS.client_vm_machine_type or FLAGS.client_vm_zone:
vm_spec = config['vm_groups']['client']['vm_spec']
for cloud in vm_spec:
if FLAGS.client_vm_zone:
vm_spec[cloud]['zone'] = FLAGS.client_vm_zone
if FLAGS.client_vm_machine_type:
vm_spec[cloud]['machine_type'] = FLAGS.client_vm_machine_type
# Add replica servers if configured.
if FLAGS.db_high_availability:
for index, zone in enumerate(FLAGS.db_replica_zones):
replica = copy.deepcopy(config['vm_groups']['server'])
for cloud in replica['vm_spec']:
replica['vm_spec'][cloud]['zone'] = zone
config['vm_groups'][f'replica_{index}'] = replica
return config