From ebc07a44e739a4d52429f27c336f6b014d3cb685 Mon Sep 17 00:00:00 2001 From: Damian Dabrowski Date: Thu, 2 Dec 2021 19:21:41 +0100 Subject: [PATCH] Database connection pooling improvements - Implemented new variable ``connection_recycle_time`` responsible for SQLAlchemy's connection recycling - Set new default values for db pooling variables which are inherited from the global ones. Depends-On: https://review.opendev.org/c/openstack/openstack-ansible/+/819424 Change-Id: Ie9591c96d1e5c8f4dcf04524c04056934ceb00db --- defaults/main.yml | 4 ++++ templates/trove.conf.j2 | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/defaults/main.yml b/defaults/main.yml index c96b858..351dc7a 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -98,6 +98,10 @@ trove_galera_use_ssl: "{{ galera_use_ssl | default(False) }}" trove_galera_ssl_ca_cert: "{{ galera_ssl_ca_cert | default('') }}" trove_galera_port: "{{ galera_port | default('3306') }}" trove_galera_connection_string: "mysql+pymysql://{{ trove_galera_user}}:{{ trove_galera_password }}@{{ trove_galera_address }}:{{ trove_galera_port }}/{{ trove_galera_database_name }}?charset=utf8{% if trove_galera_use_ssl | bool %}&ssl_verify_cert=true{% if trove_galera_ssl_ca_cert | length > 0 %}&ssl_ca={{ trove_galera_ssl_ca_cert }}{% endif %}{% endif %}" +trove_db_max_overflow: "{{ openstack_db_max_overflow | default('50') }}" +trove_db_max_pool_size: "{{ openstack_db_max_pool_size | default('5') }}" +trove_db_pool_timeout: "{{ openstack_db_pool_timeout | default('30') }}" +trove_db_connection_recycle_time: "{{ openstack_db_connection_recycle_time | default('600') }}" ## Oslo Messaging vars # RPC diff --git a/templates/trove.conf.j2 b/templates/trove.conf.j2 index 0c1379f..6ca48f1 100644 --- a/templates/trove.conf.j2 +++ b/templates/trove.conf.j2 @@ -105,7 +105,10 @@ user_domain_name = {{ trove_service_user_domain_name }} [database] connection = "{{ trove_galera_connection_string }}" -idle_timeout = 3600 +max_overflow = {{ trove_db_max_overflow }} +max_pool_size = {{ trove_db_max_pool_size }} +pool_timeout = {{ trove_db_pool_timeout }} +connection_recycle_time = {{ trove_db_connection_recycle_time }} [profiler] enabled = {{ trove_profiler_enabled }}