@elaraai/e3-core 0.0.2-beta.11 → 0.0.2-beta.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/dataflow.d.ts +118 -9
- package/dist/src/dataflow.d.ts.map +1 -1
- package/dist/src/dataflow.js +283 -54
- package/dist/src/dataflow.js.map +1 -1
- package/dist/src/errors.d.ts +11 -6
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +10 -3
- package/dist/src/errors.js.map +1 -1
- package/dist/src/execution/index.d.ts +14 -0
- package/dist/src/execution/index.d.ts.map +1 -0
- package/dist/src/execution/index.js +6 -0
- package/dist/src/execution/index.js.map +1 -0
- package/dist/src/execution/interfaces.d.ts +244 -0
- package/dist/src/execution/interfaces.d.ts.map +1 -0
- package/dist/src/execution/interfaces.js +6 -0
- package/dist/src/execution/interfaces.js.map +1 -0
- package/dist/src/executions.d.ts +48 -38
- package/dist/src/executions.d.ts.map +1 -1
- package/dist/src/executions.js +117 -162
- package/dist/src/executions.js.map +1 -1
- package/dist/src/gc.d.ts +9 -2
- package/dist/src/gc.d.ts.map +1 -1
- package/dist/src/gc.js +19 -9
- package/dist/src/gc.js.map +1 -1
- package/dist/src/index.d.ts +8 -6
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +22 -5
- package/dist/src/index.js.map +1 -1
- package/dist/src/objects.d.ts +6 -6
- package/dist/src/objects.js +6 -6
- package/dist/src/packages.d.ts +22 -14
- package/dist/src/packages.d.ts.map +1 -1
- package/dist/src/packages.js +45 -79
- package/dist/src/packages.js.map +1 -1
- package/dist/src/repository.d.ts +8 -4
- package/dist/src/repository.d.ts.map +1 -1
- package/dist/src/repository.js +25 -29
- package/dist/src/repository.js.map +1 -1
- package/dist/src/storage/index.d.ts +17 -0
- package/dist/src/storage/index.d.ts.map +1 -0
- package/dist/src/storage/index.js +8 -0
- package/dist/src/storage/index.js.map +1 -0
- package/dist/src/storage/interfaces.d.ts +299 -0
- package/dist/src/storage/interfaces.d.ts.map +1 -0
- package/dist/src/storage/interfaces.js +6 -0
- package/dist/src/storage/interfaces.js.map +1 -0
- package/dist/src/storage/local/LocalBackend.d.ts +51 -0
- package/dist/src/storage/local/LocalBackend.d.ts.map +1 -0
- package/dist/src/storage/local/LocalBackend.js +73 -0
- package/dist/src/storage/local/LocalBackend.js.map +1 -0
- package/dist/src/storage/local/LocalLockService.d.ts +22 -0
- package/dist/src/storage/local/LocalLockService.d.ts.map +1 -0
- package/dist/src/storage/local/LocalLockService.js +38 -0
- package/dist/src/storage/local/LocalLockService.js.map +1 -0
- package/dist/src/storage/local/LocalLogStore.d.ts +23 -0
- package/dist/src/storage/local/LocalLogStore.d.ts.map +1 -0
- package/dist/src/storage/local/LocalLogStore.js +66 -0
- package/dist/src/storage/local/LocalLogStore.js.map +1 -0
- package/dist/src/storage/local/LocalObjectStore.d.ts +19 -0
- package/dist/src/storage/local/LocalObjectStore.d.ts.map +1 -0
- package/dist/src/storage/local/LocalObjectStore.js +68 -0
- package/dist/src/storage/local/LocalObjectStore.js.map +1 -0
- package/dist/src/storage/local/LocalRefStore.d.ts +35 -0
- package/dist/src/storage/local/LocalRefStore.d.ts.map +1 -0
- package/dist/src/storage/local/LocalRefStore.js +233 -0
- package/dist/src/storage/local/LocalRefStore.js.map +1 -0
- package/dist/src/storage/local/index.d.ts +16 -0
- package/dist/src/storage/local/index.d.ts.map +1 -0
- package/dist/src/storage/local/index.js +16 -0
- package/dist/src/storage/local/index.js.map +1 -0
- package/dist/src/tasks.d.ts +16 -10
- package/dist/src/tasks.d.ts.map +1 -1
- package/dist/src/tasks.js +35 -41
- package/dist/src/tasks.js.map +1 -1
- package/dist/src/test-helpers.d.ts +4 -4
- package/dist/src/test-helpers.d.ts.map +1 -1
- package/dist/src/test-helpers.js +6 -20
- package/dist/src/test-helpers.js.map +1 -1
- package/dist/src/trees.d.ts +41 -29
- package/dist/src/trees.d.ts.map +1 -1
- package/dist/src/trees.js +112 -109
- package/dist/src/trees.js.map +1 -1
- package/dist/src/workspaceLock.d.ts +29 -7
- package/dist/src/workspaceLock.d.ts.map +1 -1
- package/dist/src/workspaceLock.js +130 -40
- package/dist/src/workspaceLock.js.map +1 -1
- package/dist/src/workspaceStatus.d.ts +6 -4
- package/dist/src/workspaceStatus.d.ts.map +1 -1
- package/dist/src/workspaceStatus.js +42 -58
- package/dist/src/workspaceStatus.js.map +1 -1
- package/dist/src/workspaces.d.ts +35 -26
- package/dist/src/workspaces.d.ts.map +1 -1
- package/dist/src/workspaces.js +93 -116
- package/dist/src/workspaces.js.map +1 -1
- package/package.json +4 -4
package/dist/src/dataflow.js
CHANGED
|
@@ -21,15 +21,58 @@
|
|
|
21
21
|
* output is written to the workspace and dependents are notified only after the
|
|
22
22
|
* write completes, ensuring downstream tasks see consistent state.
|
|
23
23
|
*/
|
|
24
|
-
import { decodeBeast2For } from '@elaraai/east';
|
|
24
|
+
import { decodeBeast2For, variant } from '@elaraai/east';
|
|
25
25
|
import { PackageObjectType, TaskObjectType, WorkspaceStateType, pathToString, } from '@elaraai/e3-types';
|
|
26
|
-
import { objectRead } from './objects.js';
|
|
27
26
|
import { taskExecute, executionGetOutput, inputsHash, } from './executions.js';
|
|
28
27
|
import { workspaceGetDatasetHash, workspaceSetDatasetByHash, } from './trees.js';
|
|
29
|
-
import { E3Error, WorkspaceNotFoundError, WorkspaceNotDeployedError, TaskNotFoundError, DataflowError, DataflowAbortedError,
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
28
|
+
import { E3Error, WorkspaceNotFoundError, WorkspaceNotDeployedError, WorkspaceLockError, TaskNotFoundError, DataflowError, DataflowAbortedError, } from './errors.js';
|
|
29
|
+
// =============================================================================
|
|
30
|
+
// Path Parsing Helper
|
|
31
|
+
// =============================================================================
|
|
32
|
+
/**
|
|
33
|
+
* Parse a keypath string (from pathToString) back to TreePath.
|
|
34
|
+
*
|
|
35
|
+
* The keypath format is: .field1.field2 (dot-separated field names)
|
|
36
|
+
* Quoted identifiers use backticks: .field1.`complex/name`
|
|
37
|
+
*
|
|
38
|
+
* @param pathStr - The path string in keypath format
|
|
39
|
+
* @returns TreePath array of path segments
|
|
40
|
+
*/
|
|
41
|
+
function parsePathString(pathStr) {
|
|
42
|
+
if (!pathStr.startsWith('.')) {
|
|
43
|
+
throw new Error(`Invalid path string: expected '.' prefix, got '${pathStr}'`);
|
|
44
|
+
}
|
|
45
|
+
const segments = [];
|
|
46
|
+
let i = 1; // Skip the leading '.'
|
|
47
|
+
while (i < pathStr.length) {
|
|
48
|
+
let fieldName;
|
|
49
|
+
if (pathStr[i] === '`') {
|
|
50
|
+
// Quoted identifier: find closing backtick
|
|
51
|
+
const endQuote = pathStr.indexOf('`', i + 1);
|
|
52
|
+
if (endQuote === -1) {
|
|
53
|
+
throw new Error(`Invalid path string: unclosed backtick at position ${i}`);
|
|
54
|
+
}
|
|
55
|
+
fieldName = pathStr.slice(i + 1, endQuote);
|
|
56
|
+
i = endQuote + 1;
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
// Unquoted identifier: read until '.' or end
|
|
60
|
+
let end = pathStr.indexOf('.', i);
|
|
61
|
+
if (end === -1)
|
|
62
|
+
end = pathStr.length;
|
|
63
|
+
fieldName = pathStr.slice(i, end);
|
|
64
|
+
i = end;
|
|
65
|
+
}
|
|
66
|
+
if (fieldName) {
|
|
67
|
+
segments.push(variant('field', fieldName));
|
|
68
|
+
}
|
|
69
|
+
// Skip the '.' separator
|
|
70
|
+
if (i < pathStr.length && pathStr[i] === '.') {
|
|
71
|
+
i++;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return segments;
|
|
75
|
+
}
|
|
33
76
|
// =============================================================================
|
|
34
77
|
// Async Mutex for Workspace Updates
|
|
35
78
|
// =============================================================================
|
|
@@ -81,27 +124,20 @@ class AsyncMutex {
|
|
|
81
124
|
// Workspace State Reader
|
|
82
125
|
// =============================================================================
|
|
83
126
|
/**
|
|
84
|
-
* Read workspace state
|
|
127
|
+
* Read workspace state.
|
|
85
128
|
* @throws {WorkspaceNotFoundError} If workspace doesn't exist
|
|
86
129
|
* @throws {WorkspaceNotDeployedError} If workspace has no package deployed
|
|
87
130
|
*/
|
|
88
|
-
async function readWorkspaceState(
|
|
89
|
-
const
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
data = await fs.readFile(stateFile);
|
|
93
|
-
}
|
|
94
|
-
catch (err) {
|
|
95
|
-
if (isNotFoundError(err)) {
|
|
96
|
-
throw new WorkspaceNotFoundError(ws);
|
|
97
|
-
}
|
|
98
|
-
throw err;
|
|
131
|
+
async function readWorkspaceState(storage, repo, ws) {
|
|
132
|
+
const data = await storage.refs.workspaceRead(repo, ws);
|
|
133
|
+
if (data === null) {
|
|
134
|
+
throw new WorkspaceNotFoundError(ws);
|
|
99
135
|
}
|
|
100
136
|
if (data.length === 0) {
|
|
101
137
|
throw new WorkspaceNotDeployedError(ws);
|
|
102
138
|
}
|
|
103
139
|
const decoder = decodeBeast2For(WorkspaceStateType);
|
|
104
|
-
return decoder(data);
|
|
140
|
+
return decoder(Buffer.from(data));
|
|
105
141
|
}
|
|
106
142
|
// =============================================================================
|
|
107
143
|
// Dependency Graph Building
|
|
@@ -114,11 +150,11 @@ async function readWorkspaceState(repoPath, ws) {
|
|
|
114
150
|
* - outputToTask: Map of output path string -> task name
|
|
115
151
|
* - taskDependents: Map of task name -> set of dependent task names
|
|
116
152
|
*/
|
|
117
|
-
async function buildDependencyGraph(
|
|
153
|
+
async function buildDependencyGraph(storage, repo, ws) {
|
|
118
154
|
// Read workspace state to get package hash
|
|
119
|
-
const state = await readWorkspaceState(
|
|
155
|
+
const state = await readWorkspaceState(storage, repo, ws);
|
|
120
156
|
// Read package object to get tasks map
|
|
121
|
-
const pkgData = await
|
|
157
|
+
const pkgData = await storage.objects.read(repo, state.packageHash);
|
|
122
158
|
const pkgDecoder = decodeBeast2For(PackageObjectType);
|
|
123
159
|
const pkgObject = pkgDecoder(Buffer.from(pkgData));
|
|
124
160
|
const taskNodes = new Map();
|
|
@@ -126,7 +162,7 @@ async function buildDependencyGraph(repoPath, ws) {
|
|
|
126
162
|
// First pass: load all tasks and build output->task map
|
|
127
163
|
const taskDecoder = decodeBeast2For(TaskObjectType);
|
|
128
164
|
for (const [taskName, taskHash] of pkgObject.tasks) {
|
|
129
|
-
const taskData = await
|
|
165
|
+
const taskData = await storage.objects.read(repo, taskHash);
|
|
130
166
|
const task = taskDecoder(Buffer.from(taskData));
|
|
131
167
|
const outputPathStr = pathToString(task.output);
|
|
132
168
|
outputToTask.set(outputPathStr, taskName);
|
|
@@ -159,7 +195,7 @@ async function buildDependencyGraph(repoPath, ws) {
|
|
|
159
195
|
}
|
|
160
196
|
// If not produced by a task, it's an external input - check if assigned
|
|
161
197
|
else {
|
|
162
|
-
const { refType } = await workspaceGetDatasetHash(
|
|
198
|
+
const { refType } = await workspaceGetDatasetHash(storage, repo, ws, inputPath);
|
|
163
199
|
if (refType === 'unassigned') {
|
|
164
200
|
// External input that is unassigned - this task can never run
|
|
165
201
|
node.unresolvedCount++;
|
|
@@ -183,7 +219,8 @@ async function buildDependencyGraph(repoPath, ws) {
|
|
|
183
219
|
* to prevent concurrent modifications. If options.lock is provided, uses that
|
|
184
220
|
* lock instead (caller is responsible for releasing it).
|
|
185
221
|
*
|
|
186
|
-
* @param
|
|
222
|
+
* @param storage - Storage backend
|
|
223
|
+
* @param repo - Repository identifier (for local storage, the path to e3 repository directory)
|
|
187
224
|
* @param ws - Workspace name
|
|
188
225
|
* @param options - Execution options
|
|
189
226
|
* @returns Result of the dataflow execution
|
|
@@ -193,12 +230,16 @@ async function buildDependencyGraph(repoPath, ws) {
|
|
|
193
230
|
* @throws {TaskNotFoundError} If filter specifies a task that doesn't exist
|
|
194
231
|
* @throws {DataflowError} If execution fails for other reasons
|
|
195
232
|
*/
|
|
196
|
-
export async function dataflowExecute(
|
|
233
|
+
export async function dataflowExecute(storage, repo, ws, options = {}) {
|
|
197
234
|
// Acquire lock if not provided externally
|
|
198
235
|
const externalLock = options.lock;
|
|
199
|
-
const lock = externalLock ?? await
|
|
236
|
+
const lock = externalLock ?? await storage.locks.acquire(repo, ws, variant('dataflow', null));
|
|
237
|
+
if (!lock) {
|
|
238
|
+
// Lock couldn't be acquired - the LockService returns null instead of throwing
|
|
239
|
+
throw new WorkspaceLockError(ws);
|
|
240
|
+
}
|
|
200
241
|
try {
|
|
201
|
-
return await dataflowExecuteWithLock(
|
|
242
|
+
return await dataflowExecuteWithLock(storage, repo, ws, options);
|
|
202
243
|
}
|
|
203
244
|
finally {
|
|
204
245
|
// Only release the lock if we acquired it internally
|
|
@@ -213,7 +254,8 @@ export async function dataflowExecute(repoPath, ws, options = {}) {
|
|
|
213
254
|
* Returns a promise immediately without awaiting execution. The lock is
|
|
214
255
|
* released automatically when execution completes.
|
|
215
256
|
*
|
|
216
|
-
* @param
|
|
257
|
+
* @param storage - Storage backend
|
|
258
|
+
* @param repo - Repository identifier (for local storage, the path to e3 repository directory)
|
|
217
259
|
* @param ws - Workspace name
|
|
218
260
|
* @param options - Execution options (lock must be provided)
|
|
219
261
|
* @returns Promise that resolves when execution completes
|
|
@@ -222,23 +264,25 @@ export async function dataflowExecute(repoPath, ws, options = {}) {
|
|
|
222
264
|
* @throws {TaskNotFoundError} If filter specifies a task that doesn't exist
|
|
223
265
|
* @throws {DataflowError} If execution fails for other reasons
|
|
224
266
|
*/
|
|
225
|
-
export function dataflowStart(
|
|
226
|
-
return dataflowExecuteWithLock(
|
|
267
|
+
export function dataflowStart(storage, repo, ws, options) {
|
|
268
|
+
return dataflowExecuteWithLock(storage, repo, ws, options)
|
|
227
269
|
.finally(() => options.lock.release());
|
|
228
270
|
}
|
|
229
271
|
/**
|
|
230
272
|
* Internal: Execute dataflow with lock already held.
|
|
231
273
|
*/
|
|
232
|
-
async function dataflowExecuteWithLock(
|
|
274
|
+
async function dataflowExecuteWithLock(storage, repo, ws, options) {
|
|
233
275
|
const startTime = Date.now();
|
|
234
276
|
const concurrency = options.concurrency ?? 4;
|
|
235
277
|
let taskNodes;
|
|
236
278
|
let taskDependents;
|
|
279
|
+
let outputToTask;
|
|
237
280
|
try {
|
|
238
281
|
// Build dependency graph
|
|
239
|
-
const
|
|
240
|
-
taskNodes =
|
|
241
|
-
taskDependents =
|
|
282
|
+
const graphResult = await buildDependencyGraph(storage, repo, ws);
|
|
283
|
+
taskNodes = graphResult.taskNodes;
|
|
284
|
+
taskDependents = graphResult.taskDependents;
|
|
285
|
+
outputToTask = graphResult.outputToTask;
|
|
242
286
|
}
|
|
243
287
|
catch (err) {
|
|
244
288
|
// Re-throw E3Errors as-is
|
|
@@ -247,6 +291,26 @@ async function dataflowExecuteWithLock(repoPath, ws, options) {
|
|
|
247
291
|
// Wrap unexpected errors
|
|
248
292
|
throw new DataflowError(`Failed to build dependency graph: ${err instanceof Error ? err.message : err}`);
|
|
249
293
|
}
|
|
294
|
+
// Build DataflowGraph for use with decomposed building blocks
|
|
295
|
+
const dataflowGraph = {
|
|
296
|
+
tasks: Array.from(taskNodes.entries()).map(([taskName, node]) => {
|
|
297
|
+
const dependsOn = [];
|
|
298
|
+
for (const inputPath of node.inputPaths) {
|
|
299
|
+
const inputPathStr = pathToString(inputPath);
|
|
300
|
+
const producerTask = outputToTask.get(inputPathStr);
|
|
301
|
+
if (producerTask) {
|
|
302
|
+
dependsOn.push(producerTask);
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
return {
|
|
306
|
+
name: taskName,
|
|
307
|
+
hash: node.hash,
|
|
308
|
+
inputs: node.inputPaths.map(pathToString),
|
|
309
|
+
output: pathToString(node.outputPath),
|
|
310
|
+
dependsOn,
|
|
311
|
+
};
|
|
312
|
+
}),
|
|
313
|
+
};
|
|
250
314
|
// Apply filter if specified
|
|
251
315
|
const filteredTaskNames = options.filter
|
|
252
316
|
? new Set([options.filter])
|
|
@@ -278,6 +342,7 @@ async function dataflowExecuteWithLock(repoPath, ws, options) {
|
|
|
278
342
|
const readyQueue = [];
|
|
279
343
|
const completed = new Set();
|
|
280
344
|
const inProgress = new Set();
|
|
345
|
+
const skippedTasks = new Set(); // Track skipped tasks separately for dataflowGetDependentsToSkip
|
|
281
346
|
// Initialize ready queue with tasks that have no unresolved dependencies
|
|
282
347
|
// and pass the filter (if any)
|
|
283
348
|
for (const [taskName, node] of taskNodes) {
|
|
@@ -294,7 +359,7 @@ async function dataflowExecuteWithLock(repoPath, ws, options) {
|
|
|
294
359
|
// Gather current input hashes
|
|
295
360
|
const currentInputHashes = [];
|
|
296
361
|
for (const inputPath of node.inputPaths) {
|
|
297
|
-
const { refType, hash } = await workspaceGetDatasetHash(
|
|
362
|
+
const { refType, hash } = await workspaceGetDatasetHash(storage, repo, ws, inputPath);
|
|
298
363
|
if (refType !== 'value' || hash === null) {
|
|
299
364
|
// Input not assigned, can't be cached
|
|
300
365
|
return null;
|
|
@@ -303,14 +368,14 @@ async function dataflowExecuteWithLock(repoPath, ws, options) {
|
|
|
303
368
|
}
|
|
304
369
|
// Check if there's a cached execution for these inputs
|
|
305
370
|
const inHash = inputsHash(currentInputHashes);
|
|
306
|
-
const cachedOutputHash = await executionGetOutput(
|
|
371
|
+
const cachedOutputHash = await executionGetOutput(storage, repo, node.hash, inHash);
|
|
307
372
|
if (cachedOutputHash === null) {
|
|
308
373
|
// No cached execution for current inputs
|
|
309
374
|
return null;
|
|
310
375
|
}
|
|
311
376
|
// Also verify the workspace output matches the cached output
|
|
312
377
|
// (in case the workspace was modified outside of execution)
|
|
313
|
-
const { refType, hash: wsOutputHash } = await workspaceGetDatasetHash(
|
|
378
|
+
const { refType, hash: wsOutputHash } = await workspaceGetDatasetHash(storage, repo, ws, node.outputPath);
|
|
314
379
|
if (refType !== 'value' || wsOutputHash !== cachedOutputHash) {
|
|
315
380
|
// Workspace output doesn't match cached output, need to re-execute
|
|
316
381
|
// (or update workspace with cached value)
|
|
@@ -326,7 +391,7 @@ async function dataflowExecuteWithLock(repoPath, ws, options) {
|
|
|
326
391
|
// Gather input hashes
|
|
327
392
|
const inputHashes = [];
|
|
328
393
|
for (const inputPath of node.inputPaths) {
|
|
329
|
-
const { refType, hash } = await workspaceGetDatasetHash(
|
|
394
|
+
const { refType, hash } = await workspaceGetDatasetHash(storage, repo, ws, inputPath);
|
|
330
395
|
if (refType !== 'value' || hash === null) {
|
|
331
396
|
// Input not available - should not happen if dependency tracking is correct
|
|
332
397
|
return {
|
|
@@ -346,7 +411,7 @@ async function dataflowExecuteWithLock(repoPath, ws, options) {
|
|
|
346
411
|
onStdout: options.onStdout ? (data) => options.onStdout(taskName, data) : undefined,
|
|
347
412
|
onStderr: options.onStderr ? (data) => options.onStderr(taskName, data) : undefined,
|
|
348
413
|
};
|
|
349
|
-
const result = await taskExecute(
|
|
414
|
+
const result = await taskExecute(storage, repo, node.hash, inputHashes, execOptions);
|
|
350
415
|
// Build task result (NOTE: workspace update happens later, in mutex-protected section)
|
|
351
416
|
const taskResult = {
|
|
352
417
|
name: taskName,
|
|
@@ -383,17 +448,17 @@ async function dataflowExecuteWithLock(repoPath, ws, options) {
|
|
|
383
448
|
}
|
|
384
449
|
}
|
|
385
450
|
}
|
|
386
|
-
// Mark dependents as skipped when a task fails
|
|
451
|
+
// Mark dependents as skipped when a task fails.
|
|
452
|
+
// Uses dataflowGetDependentsToSkip to find all transitive dependents at once
|
|
453
|
+
// (shared with distributed execution in e3-aws).
|
|
387
454
|
function skipDependents(taskName) {
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
if (filteredTaskNames && !filteredTaskNames.has(depName))
|
|
394
|
-
continue;
|
|
395
|
-
// Recursively skip
|
|
455
|
+
// Get all tasks to skip (excludes already completed, already skipped, and in-progress)
|
|
456
|
+
const toSkip = dataflowGetDependentsToSkip(dataflowGraph, taskName, completed, skippedTasks)
|
|
457
|
+
.filter(name => !inProgress.has(name)) // Also exclude in-progress tasks
|
|
458
|
+
.filter(name => !filteredTaskNames || filteredTaskNames.has(name)); // Apply filter
|
|
459
|
+
for (const depName of toSkip) {
|
|
396
460
|
completed.add(depName);
|
|
461
|
+
skippedTasks.add(depName);
|
|
397
462
|
skipped++;
|
|
398
463
|
results.push({
|
|
399
464
|
name: depName,
|
|
@@ -407,7 +472,6 @@ async function dataflowExecuteWithLock(repoPath, ws, options) {
|
|
|
407
472
|
state: 'skipped',
|
|
408
473
|
duration: 0,
|
|
409
474
|
});
|
|
410
|
-
skipDependents(depName);
|
|
411
475
|
}
|
|
412
476
|
}
|
|
413
477
|
// Main execution loop using a work-stealing approach
|
|
@@ -456,7 +520,7 @@ async function dataflowExecuteWithLock(repoPath, ws, options) {
|
|
|
456
520
|
// Write output to workspace BEFORE notifying dependents
|
|
457
521
|
if (result.state === 'success' && result.outputHash) {
|
|
458
522
|
const node = taskNodes.get(taskName);
|
|
459
|
-
await workspaceSetDatasetByHash(
|
|
523
|
+
await workspaceSetDatasetByHash(storage, repo, ws, node.outputPath, result.outputHash);
|
|
460
524
|
}
|
|
461
525
|
// Now safe to update execution state and notify dependents
|
|
462
526
|
inProgress.delete(taskName);
|
|
@@ -519,18 +583,19 @@ async function dataflowExecuteWithLock(repoPath, ws, options) {
|
|
|
519
583
|
/**
|
|
520
584
|
* Get the dependency graph for a workspace (for visualization/debugging).
|
|
521
585
|
*
|
|
522
|
-
* @param
|
|
586
|
+
* @param storage - Storage backend
|
|
587
|
+
* @param repo - Repository identifier (for local storage, the path to e3 repository directory)
|
|
523
588
|
* @param ws - Workspace name
|
|
524
589
|
* @returns Graph information
|
|
525
590
|
* @throws {WorkspaceNotFoundError} If workspace doesn't exist
|
|
526
591
|
* @throws {WorkspaceNotDeployedError} If workspace has no package deployed
|
|
527
592
|
* @throws {DataflowError} If graph building fails for other reasons
|
|
528
593
|
*/
|
|
529
|
-
export async function dataflowGetGraph(
|
|
594
|
+
export async function dataflowGetGraph(storage, repo, ws) {
|
|
530
595
|
let taskNodes;
|
|
531
596
|
let outputToTask;
|
|
532
597
|
try {
|
|
533
|
-
const graph = await buildDependencyGraph(
|
|
598
|
+
const graph = await buildDependencyGraph(storage, repo, ws);
|
|
534
599
|
taskNodes = graph.taskNodes;
|
|
535
600
|
outputToTask = graph.outputToTask;
|
|
536
601
|
}
|
|
@@ -559,4 +624,168 @@ export async function dataflowGetGraph(repoPath, ws) {
|
|
|
559
624
|
}
|
|
560
625
|
return { tasks };
|
|
561
626
|
}
|
|
627
|
+
/**
|
|
628
|
+
* Get tasks that are ready to execute given the set of completed tasks.
|
|
629
|
+
*
|
|
630
|
+
* A task is ready when all tasks it depends on have completed.
|
|
631
|
+
* This is useful for distributed execution (e.g., AWS Step Functions)
|
|
632
|
+
* where a coordinator needs to determine which tasks can run next.
|
|
633
|
+
*
|
|
634
|
+
* @param graph - The dependency graph from dataflowGetGraph
|
|
635
|
+
* @param completedTasks - Set of task names that have completed
|
|
636
|
+
* @returns Array of task names that are ready to execute
|
|
637
|
+
*
|
|
638
|
+
* @example
|
|
639
|
+
* ```typescript
|
|
640
|
+
* const graph = await dataflowGetGraph(storage, repo, 'production');
|
|
641
|
+
* const ready = dataflowGetReadyTasks(graph, new Set()); // Initial ready tasks
|
|
642
|
+
* // Execute ready[0]...
|
|
643
|
+
* const nextReady = dataflowGetReadyTasks(graph, new Set([ready[0]]));
|
|
644
|
+
* ```
|
|
645
|
+
*/
|
|
646
|
+
export function dataflowGetReadyTasks(graph, completedTasks) {
|
|
647
|
+
const ready = [];
|
|
648
|
+
for (const task of graph.tasks) {
|
|
649
|
+
// Skip already completed tasks
|
|
650
|
+
if (completedTasks.has(task.name)) {
|
|
651
|
+
continue;
|
|
652
|
+
}
|
|
653
|
+
// Check if all dependencies are satisfied
|
|
654
|
+
const allDepsCompleted = task.dependsOn.every(dep => completedTasks.has(dep));
|
|
655
|
+
if (allDepsCompleted) {
|
|
656
|
+
ready.push(task.name);
|
|
657
|
+
}
|
|
658
|
+
}
|
|
659
|
+
return ready;
|
|
660
|
+
}
|
|
661
|
+
/**
|
|
662
|
+
* Check if a task execution is cached for the given inputs.
|
|
663
|
+
*
|
|
664
|
+
* This is useful for distributed execution where a Lambda handler needs
|
|
665
|
+
* to check if a task can be skipped before spawning execution.
|
|
666
|
+
*
|
|
667
|
+
* @param storage - Storage backend
|
|
668
|
+
* @param repo - Repository path
|
|
669
|
+
* @param taskHash - Hash of the TaskObject
|
|
670
|
+
* @param inputHashes - Array of input dataset hashes (in order)
|
|
671
|
+
* @returns Output hash if cached, null if execution needed
|
|
672
|
+
*
|
|
673
|
+
* @example
|
|
674
|
+
* ```typescript
|
|
675
|
+
* const outputHash = await dataflowCheckCache(storage, repo, taskHash, inputHashes);
|
|
676
|
+
* if (outputHash) {
|
|
677
|
+
* // Task is cached, use outputHash directly
|
|
678
|
+
* } else {
|
|
679
|
+
* // Need to execute task
|
|
680
|
+
* }
|
|
681
|
+
* ```
|
|
682
|
+
*/
|
|
683
|
+
export async function dataflowCheckCache(storage, repo, taskHash, inputHashes) {
|
|
684
|
+
const inHash = inputsHash(inputHashes);
|
|
685
|
+
return executionGetOutput(storage, repo, taskHash, inHash);
|
|
686
|
+
}
|
|
687
|
+
/**
|
|
688
|
+
* Find tasks that should be skipped when a task fails.
|
|
689
|
+
*
|
|
690
|
+
* Returns all tasks that transitively depend on the failed task
|
|
691
|
+
* (directly or through other tasks), excluding already completed
|
|
692
|
+
* or already skipped tasks.
|
|
693
|
+
*
|
|
694
|
+
* This is useful for distributed execution where the coordinator
|
|
695
|
+
* needs to mark downstream tasks as skipped after a failure.
|
|
696
|
+
*
|
|
697
|
+
* @param graph - The dependency graph from dataflowGetGraph
|
|
698
|
+
* @param failedTask - Name of the task that failed
|
|
699
|
+
* @param completedTasks - Set of task names already completed (won't be skipped)
|
|
700
|
+
* @param skippedTasks - Set of task names already skipped (won't be returned again)
|
|
701
|
+
* @returns Array of task names that should be skipped
|
|
702
|
+
*
|
|
703
|
+
* @example
|
|
704
|
+
* ```typescript
|
|
705
|
+
* const graph = await dataflowGetGraph(storage, repo, 'production');
|
|
706
|
+
* // Task 'etl' failed...
|
|
707
|
+
* const toSkip = dataflowGetDependentsToSkip(graph, 'etl', completed, skipped);
|
|
708
|
+
* // toSkip might be ['transform', 'aggregate', 'report'] - all downstream tasks
|
|
709
|
+
* ```
|
|
710
|
+
*/
|
|
711
|
+
export function dataflowGetDependentsToSkip(graph, failedTask, completedTasks, skippedTasks) {
|
|
712
|
+
// Build reverse dependency map: task -> tasks that depend on it
|
|
713
|
+
const dependents = new Map();
|
|
714
|
+
for (const task of graph.tasks) {
|
|
715
|
+
dependents.set(task.name, []);
|
|
716
|
+
}
|
|
717
|
+
for (const task of graph.tasks) {
|
|
718
|
+
for (const dep of task.dependsOn) {
|
|
719
|
+
dependents.get(dep)?.push(task.name);
|
|
720
|
+
}
|
|
721
|
+
}
|
|
722
|
+
// BFS to find all transitive dependents
|
|
723
|
+
const toSkip = [];
|
|
724
|
+
const visited = new Set();
|
|
725
|
+
const queue = [failedTask];
|
|
726
|
+
while (queue.length > 0) {
|
|
727
|
+
const current = queue.shift();
|
|
728
|
+
const deps = dependents.get(current) ?? [];
|
|
729
|
+
for (const dep of deps) {
|
|
730
|
+
// Skip if already processed
|
|
731
|
+
if (visited.has(dep)) {
|
|
732
|
+
continue;
|
|
733
|
+
}
|
|
734
|
+
visited.add(dep);
|
|
735
|
+
// Skip if already completed (no need to explore further - completed tasks break the chain)
|
|
736
|
+
if (completedTasks.has(dep)) {
|
|
737
|
+
continue;
|
|
738
|
+
}
|
|
739
|
+
// If already skipped, still explore dependents but don't add to result again
|
|
740
|
+
if (skippedTasks.has(dep)) {
|
|
741
|
+
queue.push(dep);
|
|
742
|
+
continue;
|
|
743
|
+
}
|
|
744
|
+
// New task to skip
|
|
745
|
+
toSkip.push(dep);
|
|
746
|
+
queue.push(dep);
|
|
747
|
+
}
|
|
748
|
+
}
|
|
749
|
+
return toSkip;
|
|
750
|
+
}
|
|
751
|
+
/**
|
|
752
|
+
* Resolve input hashes for a task from current workspace state.
|
|
753
|
+
*
|
|
754
|
+
* Returns an array of hashes in the same order as the task's inputs.
|
|
755
|
+
* If any input is unassigned, returns null for that position.
|
|
756
|
+
*
|
|
757
|
+
* This is useful for distributed execution where the input hashes
|
|
758
|
+
* need to be resolved before checking cache or executing.
|
|
759
|
+
*
|
|
760
|
+
* @param storage - Storage backend
|
|
761
|
+
* @param repo - Repository path
|
|
762
|
+
* @param ws - Workspace name
|
|
763
|
+
* @param task - Task info from the graph (needs inputs array)
|
|
764
|
+
* @returns Array of hashes (null if input is unassigned)
|
|
765
|
+
*
|
|
766
|
+
* @example
|
|
767
|
+
* ```typescript
|
|
768
|
+
* const graph = await dataflowGetGraph(storage, repo, 'production');
|
|
769
|
+
* const task = graph.tasks.find(t => t.name === 'etl')!;
|
|
770
|
+
* const inputHashes = await dataflowResolveInputHashes(storage, repo, 'production', task);
|
|
771
|
+
* if (!inputHashes.includes(null)) {
|
|
772
|
+
* const cached = await dataflowCheckCache(storage, repo, task.hash, inputHashes);
|
|
773
|
+
* }
|
|
774
|
+
* ```
|
|
775
|
+
*/
|
|
776
|
+
export async function dataflowResolveInputHashes(storage, repo, ws, task) {
|
|
777
|
+
const hashes = [];
|
|
778
|
+
for (const inputPathStr of task.inputs) {
|
|
779
|
+
// Parse the keypath string back to TreePath
|
|
780
|
+
const inputPath = parsePathString(inputPathStr);
|
|
781
|
+
const { refType, hash } = await workspaceGetDatasetHash(storage, repo, ws, inputPath);
|
|
782
|
+
if (refType === 'value' && hash !== null) {
|
|
783
|
+
hashes.push(hash);
|
|
784
|
+
}
|
|
785
|
+
else {
|
|
786
|
+
hashes.push(null);
|
|
787
|
+
}
|
|
788
|
+
}
|
|
789
|
+
return hashes;
|
|
790
|
+
}
|
|
562
791
|
//# sourceMappingURL=dataflow.js.map
|
package/dist/src/dataflow.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataflow.js","sourceRoot":"","sources":["../../src/dataflow.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dataflow.js","sourceRoot":"","sources":["../../src/dataflow.ts"],"names":[],"mappings":"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"}
|
package/dist/src/errors.d.ts
CHANGED
|
@@ -30,13 +30,18 @@ export declare class WorkspaceExistsError extends E3Error {
|
|
|
30
30
|
constructor(workspace: string);
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
33
|
-
* Information about
|
|
33
|
+
* Information about a lock holder for error display.
|
|
34
|
+
*
|
|
35
|
+
* This is a simplified flat structure used in error messages.
|
|
36
|
+
* The actual lock state uses the structured LockState type from e3-types.
|
|
34
37
|
*/
|
|
35
|
-
export interface
|
|
36
|
-
/** Process ID of the lock holder */
|
|
37
|
-
pid
|
|
38
|
+
export interface LockHolderInfo {
|
|
39
|
+
/** Process ID of the lock holder (for local process locks) */
|
|
40
|
+
pid?: number;
|
|
38
41
|
/** When the lock was acquired (ISO 8601) */
|
|
39
42
|
acquiredAt: string;
|
|
43
|
+
/** What operation holds the lock */
|
|
44
|
+
operation?: string;
|
|
40
45
|
/** System boot ID (to detect stale locks after reboot) */
|
|
41
46
|
bootId?: string;
|
|
42
47
|
/** Process start time in jiffies (to detect PID reuse) */
|
|
@@ -53,8 +58,8 @@ export interface LockHolder {
|
|
|
53
58
|
*/
|
|
54
59
|
export declare class WorkspaceLockError extends E3Error {
|
|
55
60
|
readonly workspace: string;
|
|
56
|
-
readonly holder?:
|
|
57
|
-
constructor(workspace: string, holder?:
|
|
61
|
+
readonly holder?: LockHolderInfo | undefined;
|
|
62
|
+
constructor(workspace: string, holder?: LockHolderInfo | undefined);
|
|
58
63
|
}
|
|
59
64
|
export declare class PackageNotFoundError extends E3Error {
|
|
60
65
|
readonly packageName: string;
|
package/dist/src/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAMzD,mCAAmC;AACnC,qBAAa,OAAQ,SAAQ,KAAK;gBACpB,OAAO,EAAE,MAAM;CAI5B;AAMD,qBAAa,uBAAwB,SAAQ,OAAO;aACtB,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM;CAGzC;AAMD,qBAAa,sBAAuB,SAAQ,OAAO;aACrB,SAAS,EAAE,MAAM;gBAAjB,SAAS,EAAE,MAAM;CAG9C;AAED,qBAAa,yBAA0B,SAAQ,OAAO;aACxB,SAAS,EAAE,MAAM;gBAAjB,SAAS,EAAE,MAAM;CAG9C;AAED,qBAAa,oBAAqB,SAAQ,OAAO;aACnB,SAAS,EAAE,MAAM;gBAAjB,SAAS,EAAE,MAAM;CAG9C;AAED
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"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"}
|