From 4814dcb1404958d4ce92ecf9fef5eaf1660227a7 Mon Sep 17 00:00:00 2001 From: Damian Dabrowski Date: Thu, 2 Dec 2021 19:21:09 +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: I1745cd91c26bb873a5eac0fa42f651d2ebe7e974 --- defaults/main.yml | 4 ++++ templates/sahara.conf.j2 | 7 +++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/defaults/main.yml b/defaults/main.yml index 559ba1e..3b87615 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -97,6 +97,10 @@ sahara_galera_user: sahara sahara_galera_use_ssl: "{{ galera_use_ssl | default(False) }}" sahara_galera_ssl_ca_cert: "{{ galera_ssl_ca_cert | default('') }}" sahara_galera_port: "{{ galera_port | default('3306') }}" +sahara_db_max_overflow: "{{ openstack_db_max_overflow | default('50') }}" +sahara_db_max_pool_size: "{{ openstack_db_max_pool_size | default('5') }}" +sahara_db_pool_timeout: "{{ openstack_db_pool_timeout | default('30') }}" +sahara_db_connection_recycle_time: "{{ openstack_db_connection_recycle_time | default('600') }}" sahara_role_name: admin sahara_api_bind_address: "{{ openstack_service_bind_address | default('0.0.0.0') }}" diff --git a/templates/sahara.conf.j2 b/templates/sahara.conf.j2 index 3649196..f95bba3 100644 --- a/templates/sahara.conf.j2 +++ b/templates/sahara.conf.j2 @@ -27,8 +27,11 @@ proxy_user_role_names = {{ sahara_proxy_user_role_names }} transport_url = {{ sahara_oslomsg_rpc_transport }}://{% for host in sahara_oslomsg_rpc_servers.split(',') %}{{ sahara_oslomsg_rpc_userid }}:{{ sahara_oslomsg_rpc_password }}@{{ host }}:{{ sahara_oslomsg_rpc_port }}{% if not loop.last %},{% else %}/{{ sahara_oslomsg_rpc_vhost }}{% if sahara_oslomsg_rpc_use_ssl | bool %}?ssl=1&ssl_version={{ sahara_oslomsg_rpc_ssl_version }}&ssl_ca_file={{ sahara_oslomsg_rpc_ssl_ca_file }}{% else %}?ssl=0{% endif %}{% endif %}{% endfor %} [database] -connection = mysql+pymysql://{{ sahara_galera_user }}:{{ sahara_container_mysql_password }}@{{ sahara_galera_address }}/{{ sahara_galera_database }}?charset=utf8{% if sahara_galera_use_ssl | bool %}&ssl_verify_cert=true{% if sahara_galera_ssl_ca_cert | length > 0 %}&ssl_ca={{ sahara_galera_ssl_ca_cert }}{% endif %}{% endif %} - +connection = mysql+pymysql://{{ sahara_galera_user }}:{{ sahara_container_mysql_password }}@{{ sahara_galera_address }}/{{ sahara_galera_database }}?charset=utf8{% if sahara_galera_use_ssl | bool %}&ssl_verify_cert=true{% if sahara_galera_ssl_ca_cert | length > 0 %}&ssl_ca={{ sahara_galera_ssl_ca_cert }}{% endif %}{% endif +%} +max_overflow = {{ sahara_db_max_overflow }} +max_pool_size = {{ sahara_db_max_pool_size }} +pool_timeout = {{ sahara_db_pool_timeout }} +connection_recycle_time = {{ sahara_db_connection_recycle_time }} [keystone_authtoken] insecure = {{ keystone_service_internaluri_insecure | bool }}