This is an automated email from the ASF dual-hosted git repository.

Xiao-zhen-Liu pushed a commit to branch xiaozhen-caching-prototype
in repository https://gitbox.apache.org/repos/asf/texera.git

commit 66421a56e3cbf2539a4150f655dc94cdd74d3dd2
Author: Xiaozhen Liu <[email protected]>
AuthorDate: Wed Jan 14 14:40:42 2026 -0800

    feat(cache): update worker number display.
---
 docs/operator-port-cache.md                                     | 4 +++-
 frontend/src/app/workspace/service/joint-ui/joint-ui.service.ts | 5 +++--
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/docs/operator-port-cache.md b/docs/operator-port-cache.md
index de3b0471bd..0ffaa2f826 100644
--- a/docs/operator-port-cache.md
+++ b/docs/operator-port-cache.md
@@ -119,7 +119,7 @@ Entry point: `RegionExecutionCoordinator` constructor 
branches on `region.cached
    - `numWorkers = 0`
    - `dataProcessingTime = 0`, `controlProcessingTime = 0`, `idleTime = 0`
    - Input/output tuple counts from cached metadata
-   - **UI**: The graph view displays `-` for cached input counts and for 
cached output ports that were not materialized.
+   - **UI**: The graph view displays `-` for cached input counts and for 
cached output ports that were not materialized; worker counts show `from cache`.
    - **Note**: Cached stats are synthetic (inputs default to 0; 
non-materialized outputs may be omitted). Do not use them for cost modeling 
until we add explicit tagging/filtering in `runtime_statistics`.
 5. **Propagate cached URIs**: Downstream operators receive cached `result_uri` 
for materialized inputs
 6. **No WorkerAssignmentUpdate**: Cached regions don't send worker assignment 
events (consistent with numWorkers=0)
@@ -302,6 +302,7 @@ ExecutionCacheService ────→ upsertCachedOutput()     
OperatorPortCache
   - Frontend `OperatorState` enum includes `CompletedFromCache`
   - Operator visualization: blue fill color (`#1890ff`) for cached operators 
in `joint-ui.service.ts`
   - Port metrics display: cached input counts show `-`, and cached output 
ports without materialization show `-`
+  - Worker count label: cached operators show `from cache` instead of 
`#workers`
   - Region visualization: blue fill (`rgba(24,144,255,0.3)`) for cached 
regions in `workflow-editor.component.ts`
   - Region visibility: shared state via `WorkflowActionService.showRegion` 
ensures correct visibility when regions are created during execution
 
@@ -421,6 +422,7 @@ The cache system integrates with three layers:
 - [x] Add blue fill for cached regions in `workflow-editor.component.ts`
   - Color: `rgba(24,144,255,0.3)` (translucent blue)
 - [x] Show `-` for cached input counts and cached output ports without 
materialization
+- [x] Replace cached worker count label with `from cache`
 - [x] Fix region visibility with shared state via 
`WorkflowActionService.showRegion`
   - Ensures regions show correctly when user toggles visibility before 
execution
 
diff --git a/frontend/src/app/workspace/service/joint-ui/joint-ui.service.ts 
b/frontend/src/app/workspace/service/joint-ui/joint-ui.service.ts
index a07606611f..d89624a2c8 100644
--- a/frontend/src/app/workspace/service/joint-ui/joint-ui.service.ts
+++ b/frontend/src/app/workspace/service/joint-ui/joint-ui.service.ts
@@ -320,11 +320,12 @@ export class JointUIService {
 
     const inputMetrics = statistics.inputPortMetrics;
     const outputMetrics = statistics.outputPortMetrics;
-    // Cached operators show "-" for inputs and non-materialized outputs.
+    // Cached operators show "-" for inputs and non-materialized outputs, and 
label workers as "from cache".
     const isSkippedFromCache = statistics.operatorState === 
OperatorState.CompletedFromCache;
 
     const workerCount = statistics.numWorkers ?? 1;
-    element.attr(`.${operatorWorkerCountClass}/text`, "#workers: " + 
String(workerCount));
+    const workerCountLabel = isSkippedFromCache ? "from cache" : "#workers: " 
+ String(workerCount);
+    element.attr(`.${operatorWorkerCountClass}/text`, workerCountLabel);
 
     inPorts.forEach(portDef => {
       const portId = portDef.id;

Reply via email to