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

← cluster alinma_bff objects order_executions_bounded_mv explain
Overview Objects Graph History
materialized view · alinma_bff.order_executions_bounded_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
18 operators
Materialize · alinma_bff.order_executions_bounded_mv
0% idle 2 actors
Merge
2 actors
Exchange
0% idle 0 actors
SyncLogStore · Inner · order_executions.order_id = orders.id
2 actors
HashJoin · Inner · order_executions.order_id = orders.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
StreamScan · orders
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
StreamScan · order_executions
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.order_executions_bounded_mv Materialize alinma_bff.order_execut… idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors SyncLogStore · Inner · order_executions.order_id = orders.id SyncLogStore Inner · order_execution… — · 2 actors HashJoin · Inner · order_executions.order_id = orders.id HashJoin Inner · order_execution… idle · 2 actors Merge Merge — · 2 actors Exchange Exchange idle · 0 actors StreamScan · orders StreamScan orders 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 StreamScan · order_executions StreamScan order_executions 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 44395 (Actor 741852,741853)
StreamMaterialize { columns: [order_id, id, quantity, price, commission, fees, executed_at, orders.id(hidden), orders.created_at(hidden)], stream_key: [order_id, id, executed_at, orders.created_at], pk_columns: [order_id, id, executed_at, orders.created_at], pk_conflict: NoCheck }
├── output: [ order_executions.order_id, order_executions.id, order_executions.quantity, order_executions.price, order_executions.commission, order_executions.fees, order_executions.executed_at, orders.id, orders.created_at ]
├── stream key: [ order_executions.order_id, order_executions.id, order_executions.executed_at, orders.created_at ]
└── MergeExecutor
    ├── output: [ order_executions.order_id, order_executions.id, order_executions.quantity, order_executions.price, order_executions.commission, order_executions.fees, order_executions.executed_at, orders.id, orders.created_at ]
    └── stream key: [ order_executions.order_id, order_executions.id, order_executions.executed_at, orders.created_at ]

Fragment 44396 (Actor 741850,741851)
StreamSyncLogStore
├── output: [ order_executions.order_id, order_executions.id, order_executions.quantity, order_executions.price, order_executions.commission, order_executions.fees, order_executions.executed_at, orders.id, orders.created_at ]
├── stream key: [ order_executions.order_id, order_executions.id, order_executions.executed_at, orders.created_at ]
└── StreamHashJoin { type: Inner, predicate: order_executions.order_id = orders.id }
    ├── output: [ order_executions.order_id, order_executions.id, order_executions.quantity, order_executions.price, order_executions.commission, order_executions.fees, order_executions.executed_at, orders.id, orders.created_at ]
    ├── stream key: [ order_executions.order_id, order_executions.id, order_executions.executed_at, orders.created_at ]
    ├── MergeExecutor
    │   ├── output: [ order_executions.id, order_executions.order_id, order_executions.quantity, order_executions.price, order_executions.commission, order_executions.executed_at, order_executions.fees ]
    │   └── stream key: [ order_executions.order_id, order_executions.id, order_executions.executed_at ]
    └── MergeExecutor { output: [ orders.id, orders.created_at ], stream key: [ orders.id, orders.created_at ] }

Fragment 44397 (Actor 741854,741855)
StreamLocalityProvider { locality_columns: [order_executions.order_id] }
├── output: [ order_executions.id, order_executions.order_id, order_executions.quantity, order_executions.price, order_executions.commission, order_executions.executed_at, order_executions.fees ]
├── stream key: [ order_executions.order_id, order_executions.id, order_executions.executed_at ]
└── MergeExecutor { output: [ order_executions.id, order_executions.order_id, order_executions.quantity, order_executions.price, order_executions.commission, order_executions.executed_at, order_executions.fees ], stream key: [ order_executions.id, order_executions.executed_at ] }

Fragment 44398 (Actor 741856,741857)
StreamTableScan { table: order_executions, columns: [id, order_id, quantity, price, commission, executed_at, fees] }
├── output: [ order_executions.id, order_executions.order_id, order_executions.quantity, order_executions.price, order_executions.commission, order_executions.executed_at, order_executions.fees ]
├── stream key: [ order_executions.id, order_executions.executed_at ]
├── Upstream { output: [ id, order_id, quantity, price, commission, executed_at, fees ], stream key: [] }
└── BatchPlanNode { output: [ id, order_id, quantity, price, commission, executed_at, fees ], stream key: [] }

Fragment 44399 (Actor 741860,741861)
StreamTableScan { table: orders, columns: [id, created_at] } { output: [ orders.id, orders.created_at ], stream key: [ orders.id, orders.created_at ] }
├── Upstream { output: [ id, created_at ], stream key: [] }
└── BatchPlanNode { output: [ id, created_at ], stream key: [] }