Skip to content

Netdoc: P_Ports einer BCD anzeigen Performance

Die Performance ist aktuell eine Katastrophe; der Aufwand in der API wird viel zu groß, wenn man größere BCDs anschaut (Die Query braucht bei ~8 Ports schon zwischen 3.5 und 7 Sekunden). Schuld daran ist api_func_nd_p_port_is_intersect_of_conn_node_set. Das ist für das Anfragebedürfnis allerdings Overkill; mMn sollte in diesem Fall immer api_fkey_nd_p_port_conn_dest ausreichen, da man durch den Join BCD-Vlan->l_port->p_port immer am Switch ist und der Port in die richtige Richtung schaut, sodass dest_connected_gfk immer in die richtige Richtung zeigen sollte.

Der Constraint ist aktuell leider wieder rausgeflogen; würde das aber gerne mal testen.

Das notwendige Statement könnte dann in etwa so aussehen; man muss nochmal schauen, was man da genau möchte.

[
    {
        "name": "nd.bcd.list",
        "idx": "bcd_list",
        "old": {
            "name": "fsmi-sec"
        }
    },
    {
        "name": "nd.vlan.list",
        "idx": "vlan_list",
        "inner_join_ref": {
            "bcd_list": "default"
        }
    },
    {
        "name": "nd.vlan_egress.list",
        "idx": "egress_list",
        "inner_join_ref": {
            "vlan_list": "default"
        }
    },
    {
        "name": "nd.vlan_egress.list",
        "idx": "tagged_egress_list",
        "inner_join_ref": {
            "egress_list": "self"
        },
        "old": {
            "is_tagged": true
        }
    },
    {
        "name": "nd.vlan_egress.list",
        "idx": "untagged_egress_list",
        "inner_join_ref": {
            "egress_list": "self"
        },
        "old": {
            "is_tagged": false
        }
    },
    {
        "name": "nd.l_port.list",
        "idx": "tagged_l_port_list",
        "inner_join_ref": {
            "tagged_egress_list": "default"
        }
    },
    {
        "name": "nd.l_port.list",
        "idx": "untagged_l_port_list",
        "inner_join_ref": {
            "untagged_egress_list": "default"
        }
    },
    {
        "name": "nd.l2p_port.list",
        "idx": "tagged_l2p_port_list",
        "inner_join_ref": {
            "tagged_l_port_list": "default"
        }
    },
    {
        "name": "nd.l2p_port.list",
        "idx": "untagged_l2p_port_list",
        "inner_join_ref": {
            "untagged_l_port_list": "default"
        }
    },
    {
        "name": "nd.p_port.list",
        "idx": "tagged_p_port_list",
        "inner_join_ref": {
            "tagged_l2p_port_list": "default"
        }
    },
    {
        "name": "nd.p_port.list",
        "idx": "untagged_p_port_list",
        "inner_join_ref": {
            "untagged_l2p_port_list": "default"
        }
    },
    {
        "name": "nd.l_port.list",
        "idx": "l_port_list",
        "inner_join_ref": {
            "vlan_list": "default"
        }
    },
    {
        "name": "nd.l2p_port.list",
        "idx": "l2p_port_list",
        "inner_join_ref": {
            "l_port_list": "default"
        }
    },
    {
        "name": "nd.p_port.list",
        "idx": "p_port_list",
        "inner_join_ref": {
            "l2p_port_list": "default"
        }
    },
    {
        "name": "nd.p_port.list",
        "idx": "remote_p_port_list",
        "inner_join_ref": {
            "p_port_list": "api_fkey_nd_p_port_conn_dest"
        },
        "old": {
            "is_edge_node": true
        }
    },
    {
        "name": "ndcfg.p_port2module_type.list",
        "idx": "p_port2module_type_list",
        "inner_join_ref": {
            "remote_p_port_list": "default"
        }
    },
    {
        "name": "ndcfg.module_type.list",
        "idx": "module_type_list",
        "inner_join_ref": {
            "p_port2module_type_list": "default"
        },
        "old": {
            "class": "DD"
        }
    },
    {
        "name": "ndcfg.p_port2module_type.list",
        "idx": "filtered_module_types",
        "inner_join_ref": {
            "module_type_list": "default",
            "remote_p_port_list": "default"
        }
    },
    {
        "name": "nd.p_port.list",
        "idx": "filtered_remote_p_port_list",
        "inner_join_ref": {
            "filtered_module_types": "default",
            "remote_p_port_list": "self"
        }
    },
    {
        "name": "nd.module.list",
        "idx": "dd_module_list",
        "inner_join_ref": {
            "filtered_remote_p_port_list": "default"
        }
    },
    {
        "name": "nd.module.list",
        "idx": "module_list",
        "inner_join_ref": {
            "remote_p_port_list": "default"
        }
    }
]
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information