Commit 1b2785f2 authored by Lluis Gifre Renom's avatar Lluis Gifre Renom
Browse files

Context component:

- Added indexes recommended by Cockroach internal planner to boost performance
- Added extra foreign-key indexes to enhance constraint validation
parent 48d3068b
Loading
Loading
Loading
Loading
+15 −15
Original line number Original line Diff line number Diff line
@@ -65,7 +65,7 @@ def policyrule_set(db_engine : Engine, request : PolicyRule) -> Tuple[PolicyRule


    policyrule_kind  = PolicyRuleKindEnum._member_map_.get(policyrule_kind.upper()) # pylint: disable=no-member
    policyrule_kind  = PolicyRuleKindEnum._member_map_.get(policyrule_kind.upper()) # pylint: disable=no-member
    policyrule_state = grpc_to_enum__policyrule_state(policyrule_basic.policyRuleState.policyRuleState)
    policyrule_state = grpc_to_enum__policyrule_state(policyrule_basic.policyRuleState.policyRuleState)
    policyrule_state_message = policyrule_basic.policyRuleState.policyRuleStateMessage
    policyrule_state_msg = policyrule_basic.policyRuleState.policyRuleStateMessage


    json_policyrule_basic = grpc_message_to_json(policyrule_basic)
    json_policyrule_basic = grpc_message_to_json(policyrule_basic)
    policyrule_eca_data = json.dumps({
    policyrule_eca_data = json.dumps({
@@ -80,7 +80,7 @@ def policyrule_set(db_engine : Engine, request : PolicyRule) -> Tuple[PolicyRule
        'policyrule_uuid'     : policyrule_uuid,
        'policyrule_uuid'     : policyrule_uuid,
        'policyrule_kind'     : policyrule_kind,
        'policyrule_kind'     : policyrule_kind,
        'policyrule_state'    : policyrule_state,
        'policyrule_state'    : policyrule_state,
        'policyrule_state_message': policyrule_state_message,
        'policyrule_state_msg': policyrule_state_msg,
        'policyrule_priority' : policyrule_basic.priority,
        'policyrule_priority' : policyrule_basic.priority,
        'policyrule_eca_data' : policyrule_eca_data,
        'policyrule_eca_data' : policyrule_eca_data,
        'created_at'          : now,
        'created_at'          : now,
@@ -109,7 +109,7 @@ def policyrule_set(db_engine : Engine, request : PolicyRule) -> Tuple[PolicyRule
            index_elements=[PolicyRuleModel.policyrule_uuid],
            index_elements=[PolicyRuleModel.policyrule_uuid],
            set_=dict(
            set_=dict(
                policyrule_state     = stmt.excluded.policyrule_state,
                policyrule_state     = stmt.excluded.policyrule_state,
                policyrule_state_message = stmt.excluded.policyrule_state_message,
                policyrule_state_msg = stmt.excluded.policyrule_state_msg,
                policyrule_priority  = stmt.excluded.policyrule_priority,
                policyrule_priority  = stmt.excluded.policyrule_priority,
                policyrule_eca_data  = stmt.excluded.policyrule_eca_data,
                policyrule_eca_data  = stmt.excluded.policyrule_eca_data,
                updated_at           = stmt.excluded.updated_at,
                updated_at           = stmt.excluded.updated_at,
+3 −3
Original line number Original line Diff line number Diff line
@@ -28,9 +28,9 @@ class ConfigRuleModel(_Base):
    __tablename__ = 'configrule'
    __tablename__ = 'configrule'


    configrule_uuid = Column(UUID(as_uuid=False), primary_key=True)
    configrule_uuid = Column(UUID(as_uuid=False), primary_key=True)
    device_uuid     = Column(ForeignKey('device.device_uuid',   ondelete='CASCADE'), nullable=True)
    device_uuid     = Column(ForeignKey('device.device_uuid',   ondelete='CASCADE'), nullable=True, index=True)
    service_uuid    = Column(ForeignKey('service.service_uuid', ondelete='CASCADE'), nullable=True)
    service_uuid    = Column(ForeignKey('service.service_uuid', ondelete='CASCADE'), nullable=True, index=True)
    slice_uuid      = Column(ForeignKey('slice.slice_uuid',     ondelete='CASCADE'), nullable=True)
    slice_uuid      = Column(ForeignKey('slice.slice_uuid',     ondelete='CASCADE'), nullable=True, index=True)
    position        = Column(Integer, nullable=False)
    position        = Column(Integer, nullable=False)
    kind            = Column(Enum(ConfigRuleKindEnum), nullable=False)
    kind            = Column(Enum(ConfigRuleKindEnum), nullable=False)
    action          = Column(Enum(ORM_ConfigActionEnum), nullable=False)
    action          = Column(Enum(ORM_ConfigActionEnum), nullable=False)
+3 −3
Original line number Original line Diff line number Diff line
@@ -25,7 +25,7 @@ class ConnectionModel(_Base):
    __tablename__ = 'connection'
    __tablename__ = 'connection'


    connection_uuid = Column(UUID(as_uuid=False), primary_key=True)
    connection_uuid = Column(UUID(as_uuid=False), primary_key=True)
    service_uuid    = Column(ForeignKey('service.service_uuid', ondelete='RESTRICT'), nullable=False)
    service_uuid    = Column(ForeignKey('service.service_uuid', ondelete='RESTRICT'), nullable=False, index=True)
    settings        = Column(String, nullable=False)
    settings        = Column(String, nullable=False)
    created_at      = Column(DateTime, nullable=False)
    created_at      = Column(DateTime, nullable=False)
    updated_at      = Column(DateTime, nullable=False)
    updated_at      = Column(DateTime, nullable=False)
@@ -56,7 +56,7 @@ class ConnectionEndPointModel(_Base):
    __tablename__ = 'connection_endpoint'
    __tablename__ = 'connection_endpoint'


    connection_uuid = Column(ForeignKey('connection.connection_uuid', ondelete='CASCADE' ), primary_key=True)
    connection_uuid = Column(ForeignKey('connection.connection_uuid', ondelete='CASCADE' ), primary_key=True)
    endpoint_uuid   = Column(ForeignKey('endpoint.endpoint_uuid',     ondelete='RESTRICT'), primary_key=True)
    endpoint_uuid   = Column(ForeignKey('endpoint.endpoint_uuid', ondelete='RESTRICT'), primary_key=True, index=True)
    position        = Column(Integer, nullable=False)
    position        = Column(Integer, nullable=False)


    connection = relationship('ConnectionModel', back_populates='connection_endpoints', lazy='joined')
    connection = relationship('ConnectionModel', back_populates='connection_endpoints', lazy='joined')
@@ -70,7 +70,7 @@ class ConnectionSubServiceModel(_Base):
    __tablename__ = 'connection_subservice'
    __tablename__ = 'connection_subservice'


    connection_uuid = Column(ForeignKey('connection.connection_uuid', ondelete='CASCADE' ), primary_key=True)
    connection_uuid = Column(ForeignKey('connection.connection_uuid', ondelete='CASCADE' ), primary_key=True)
    subservice_uuid = Column(ForeignKey('service.service_uuid',       ondelete='RESTRICT'), primary_key=True)
    subservice_uuid = Column(ForeignKey('service.service_uuid', ondelete='RESTRICT'), primary_key=True, index=True)


    connection = relationship('ConnectionModel', back_populates='connection_subservices', lazy='joined')
    connection = relationship('ConnectionModel', back_populates='connection_subservices', lazy='joined')
    subservice = relationship('ServiceModel',    lazy='joined') # back_populates='connection_subservices'
    subservice = relationship('ServiceModel',    lazy='joined') # back_populates='connection_subservices'
+2 −2
Original line number Original line Diff line number Diff line
@@ -35,8 +35,8 @@ class ConstraintModel(_Base):
    __tablename__ = 'constraint'
    __tablename__ = 'constraint'


    constraint_uuid = Column(UUID(as_uuid=False), primary_key=True)
    constraint_uuid = Column(UUID(as_uuid=False), primary_key=True)
    service_uuid    = Column(ForeignKey('service.service_uuid', ondelete='CASCADE'), nullable=True)
    service_uuid    = Column(ForeignKey('service.service_uuid', ondelete='CASCADE'), nullable=True, index=True)
    slice_uuid      = Column(ForeignKey('slice.slice_uuid',     ondelete='CASCADE'), nullable=True)
    slice_uuid      = Column(ForeignKey('slice.slice_uuid',     ondelete='CASCADE'), nullable=True, index=True)
    position        = Column(Integer, nullable=False)
    position        = Column(Integer, nullable=False)
    kind            = Column(Enum(ConstraintKindEnum), nullable=False)
    kind            = Column(Enum(ConstraintKindEnum), nullable=False)
    data            = Column(String, nullable=False)
    data            = Column(String, nullable=False)
+2 −2
Original line number Original line Diff line number Diff line
@@ -23,8 +23,8 @@ class EndPointModel(_Base):
    __tablename__ = 'endpoint'
    __tablename__ = 'endpoint'


    endpoint_uuid    = Column(UUID(as_uuid=False), primary_key=True)
    endpoint_uuid    = Column(UUID(as_uuid=False), primary_key=True)
    device_uuid      = Column(ForeignKey('device.device_uuid',     ondelete='CASCADE' ), nullable=False)
    device_uuid      = Column(ForeignKey('device.device_uuid',     ondelete='CASCADE' ), nullable=False, index=True)
    topology_uuid    = Column(ForeignKey('topology.topology_uuid', ondelete='RESTRICT'), nullable=False)
    topology_uuid    = Column(ForeignKey('topology.topology_uuid', ondelete='RESTRICT'), nullable=False, index=True)
    name             = Column(String, nullable=False)
    name             = Column(String, nullable=False)
    endpoint_type    = Column(String, nullable=False)
    endpoint_type    = Column(String, nullable=False)
    kpi_sample_types = Column(ARRAY(Enum(ORM_KpiSampleTypeEnum), dimensions=1))
    kpi_sample_types = Column(ARRAY(Enum(ORM_KpiSampleTypeEnum), dimensions=1))
Loading