RWM Console cluster: risingwave-alinma.alinma-rw.svc.cluster.local

← cluster alinma_bff objects expiring_identifiers_mv explain
Overview Objects Graph History
materialized view · alinma_bff.expiring_identifiers_mv profiled over 5s
seconds (1–30)

Job is idle — throughput ~0; structure shown.

Stateful hash join (4 state tables) — consider a temporal join for dimension lookups
22 operators
Materialize · alinma_bff.expiring_identifiers_mv
0% idle 2 actors
Merge
2 actors
Exchange
0% idle 0 actors
SyncLogStore · Inner · party_identifiers.party_id = parties.id
2 actors
HashJoin · Inner · party_identifiers.party_id = parties.id Stateful hash join (4 state tables) — consider a temporal join for dimension lookups
0% idle 2 actors
Merge
2 actors
Exchange
0% idle 0 actors
Project · parties
2 actors
Filter · parties
0% idle 2 actors
StreamScan · parties
0% idle 2 actors
BatchPlan
2 actors
Merge
2 actors
Merge
2 actors
Exchange
0% idle 0 actors
LocalityProvider
0% idle 2 actors
Merge
2 actors
Exchange
0% idle 0 actors
Project · party_identifiers
2 actors
Filter · party_identifiers
0% idle 2 actors
StreamScan · party_identifiers
0% idle 2 actors
BatchPlan
2 actors
Merge
2 actors
Heat = the operator's output-buffer backpressure over the sampling window. Click a node to fold its subtree.
Materialize · alinma_bff.expiring_identifiers_mv Materialize alinma_bff.expiring_ide… idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors SyncLogStore · Inner · party_identifiers.party_id = parties.id SyncLogStore Inner · party_identifie… — · 2 actors HashJoin · Inner · party_identifiers.party_id = parties.id HashJoin Inner · party_identifie… idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors Project · parties Project parties — · 2 actors Filter · parties Filter parties idle · 2 actors StreamScan · parties StreamScan parties idle · 2 actors BatchPlan BatchPlan — · 2 actors Merge Merge — · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors LocalityProvider LocalityProvider idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors Project · party_identifiers Project party_identifiers — · 2 actors Filter · party_identifiers Filter party_identifiers idle · 2 actors StreamScan · party_identifiers StreamScan party_identifiers idle · 2 actors BatchPlan BatchPlan — · 2 actors Merge Merge — · 2 actors
Streaming operator plan from EXPLAIN ANALYZE. Node heat = backpressure. Drag to pan, scroll to zoom.
Fragments (DESCRIBE FRAGMENTS) — click to expand
Fragment 44377 (Actor 741777,741776)
StreamMaterialize { columns: [identifier_id, party_id, identifier_type, expiry_date, parties.id(hidden)], stream_key: [party_id, identifier_id], pk_columns: [party_id, identifier_id], pk_conflict: NoCheck }
├── output: [ party_identifiers.id, party_identifiers.party_id, party_identifiers.type, party_identifiers.expiry_date, parties.id ]
├── stream key: [ party_identifiers.party_id, party_identifiers.id ]
└── MergeExecutor
    ├── output: [ party_identifiers.id, party_identifiers.party_id, party_identifiers.type, party_identifiers.expiry_date, parties.id ]
    └── stream key: [ party_identifiers.party_id, party_identifiers.id ]

Fragment 44378 (Actor 741774,741775)
StreamSyncLogStore
├── output: [ party_identifiers.id, party_identifiers.party_id, party_identifiers.type, party_identifiers.expiry_date, parties.id ]
├── stream key: [ party_identifiers.party_id, party_identifiers.id ]
└── StreamHashJoin { type: Inner, predicate: party_identifiers.party_id = parties.id }
    ├── output: [ party_identifiers.id, party_identifiers.party_id, party_identifiers.type, party_identifiers.expiry_date, parties.id ]
    ├── stream key: [ party_identifiers.party_id, party_identifiers.id ]
    ├── MergeExecutor
    │   ├── output: [ party_identifiers.id, party_identifiers.party_id, party_identifiers.type, party_identifiers.expiry_date ]
    │   └── stream key: [ party_identifiers.party_id, party_identifiers.id ]
    └── MergeExecutor { output: [ parties.id ], stream key: [ parties.id ] }

Fragment 44379 (Actor 741779,741778)
StreamLocalityProvider { locality_columns: [party_identifiers.party_id] }
├── output: [ party_identifiers.id, party_identifiers.party_id, party_identifiers.type, party_identifiers.expiry_date ]
├── stream key: [ party_identifiers.party_id, party_identifiers.id ]
└── MergeExecutor { output: [ party_identifiers.id, party_identifiers.party_id, party_identifiers.type, party_identifiers.expiry_date ], stream key: [ party_identifiers.id ] }

Fragment 44380 (Actor 741780,741781)
StreamProject { exprs: [party_identifiers.id, party_identifiers.party_id, party_identifiers.type, party_identifiers.expiry_date] }
├── output: [ party_identifiers.id, party_identifiers.party_id, party_identifiers.type, party_identifiers.expiry_date ]
├── stream key: [ party_identifiers.id ]
└── StreamFilter { predicate: IsNull(party_identifiers.disabled_at) AND Not(IsNull(party_identifiers.expiry_date)) }
    ├── output: [ party_identifiers.id, party_identifiers.party_id, party_identifiers.type, party_identifiers.expiry_date, party_identifiers.disabled_at ]
    ├── stream key: [ party_identifiers.id ]
    └── StreamTableScan { table: party_identifiers, columns: [id, party_id, type, expiry_date, disabled_at] }
        ├── output: [ party_identifiers.id, party_identifiers.party_id, party_identifiers.type, party_identifiers.expiry_date, party_identifiers.disabled_at ]
        ├── stream key: [ party_identifiers.id ]
        ├── Upstream { output: [ id, party_id, type, expiry_date, disabled_at ], stream key: [] }
        └── BatchPlanNode { output: [ id, party_id, type, expiry_date, disabled_at ], stream key: [] }

Fragment 44381 (Actor 741782,741783)
StreamProject { exprs: [parties.id] } { output: [ parties.id ], stream key: [ parties.id ] }
└── StreamFilter { predicate: IsNull(parties.disabled_at) } { output: [ parties.id, parties.disabled_at ], stream key: [ parties.id ] }
    └── StreamTableScan { table: parties, columns: [id, disabled_at] } { output: [ parties.id, parties.disabled_at ], stream key: [ parties.id ] }
        ├── Upstream { output: [ id, disabled_at ], stream key: [] }
        └── BatchPlanNode { output: [ id, disabled_at ], stream key: [] }