From 816bed79bfc835805731076d17707ef5d17a2dfc Mon Sep 17 00:00:00 2001 From: liusheng Date: Thu, 2 Jun 2016 19:47:36 +0800 Subject: [PATCH] Add indexs of alarm.enabled and alarm.type When evaluating alarms, the evaluation service need query alarms filtered by enabled=True every evaluation cycle. For the event alarms, the type='event' is also a required filter. So Add indexs of "enabled" and "type" of Alarm model can make a bit of improvement. Change-Id: I676763a58eae24dced80aeb92e0100d3aa71e85a --- ...1b1ffe11_add_index_for_enabled_and_type.py | 37 +++++++++++++++++++ aodh/storage/sqlalchemy/models.py | 2 + 2 files changed, 39 insertions(+) create mode 100644 aodh/storage/sqlalchemy/alembic/versions/f8c31b1ffe11_add_index_for_enabled_and_type.py diff --git a/aodh/storage/sqlalchemy/alembic/versions/f8c31b1ffe11_add_index_for_enabled_and_type.py b/aodh/storage/sqlalchemy/alembic/versions/f8c31b1ffe11_add_index_for_enabled_and_type.py new file mode 100644 index 000000000..793e029e8 --- /dev/null +++ b/aodh/storage/sqlalchemy/alembic/versions/f8c31b1ffe11_add_index_for_enabled_and_type.py @@ -0,0 +1,37 @@ +# Copyright 2016 OpenStack Foundation +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# + +"""add index for enabled and type + +Revision ID: f8c31b1ffe11 +Revises: bb07adac380 +Create Date: 2016-06-02 19:39:42.495020 + +""" + +# revision identifiers, used by Alembic. +revision = 'f8c31b1ffe11' +down_revision = 'bb07adac380' +branch_labels = None +depends_on = None + +from alembic import op + + +def upgrade(): + op.create_index( + 'ix_alarm_enabled', 'alarm', ['enabled'], unique=False) + op.create_index( + 'ix_alarm_type', 'alarm', ['type'], unique=False) diff --git a/aodh/storage/sqlalchemy/models.py b/aodh/storage/sqlalchemy/models.py index 524d3f6d6..5ba314c2c 100644 --- a/aodh/storage/sqlalchemy/models.py +++ b/aodh/storage/sqlalchemy/models.py @@ -116,6 +116,8 @@ class Alarm(Base): __table_args__ = ( Index('ix_alarm_user_id', 'user_id'), Index('ix_alarm_project_id', 'project_id'), + Index('ix_alarm_enabled', 'enabled'), + Index('ix_alarm_type', 'type'), ) alarm_id = Column(String(128), primary_key=True) enabled = Column(Boolean)