Commit 98dd386
committed
Let a plugin supply the task hasher and the cache resolution strategy
Two extension points in nextflow.processor, both with defaults that preserve
today's behaviour exactly:
- TaskHasherFactory creates the TaskHasher for a task, or abstains. With no
extension registered, or all abstaining, TaskProcessor does `new
TaskHasher(task)` as before. Core's TaskHasher is untouched.
- TaskCacheStrategy decides how a task is resolved against the cache, through
the TaskResolver primitives the processor implements. DefaultTaskCacheStrategy
is master's checkCachedOrLaunchTask loop moved verbatim -- the tries fold, the
lock, mkdirs, submitTask -- so a run with no extension takes the same path it
takes today. checkCachedOrLaunchTask becomes the dispatch.
Supporting changes:
- CacheFactory may resolve its own work directory and write it back to the
session, so Session.init creates the cache before reading workDir. Everything
below -- the work dir creation, the observers, the WorkflowMetadata snapshot --
must see the effective value, or workflow.workDir names a directory no task
uses. A throw after that point now closes the cache rather than leaking it.
- CacheStore.updateEntry, a default method, so a store composed of several
members can route an update back to the member that served the read.
- CacheDB.dispatchWrite, an internal refactor so a failed async cache write is
logged with its cause instead of being swallowed.
- FileHelper.getTaskHashFromPath tolerates an optional `-N` suffix on the work
directory leaf. nf-lineage resolves every task input to its producing task by
parsing that path (LinObserver.manageFileInParam -> getSourceReference); a
cache that lays the attempts of one task out side by side keeps the two-level
<2hex>/<30hex> hierarchy and appends the attempt to the leaf. Without this the
parser returns null for those inputs and lineage records them as bare
DataPaths, losing the edge to the producing task and paying a content checksum
in its place. The parser is already lenient by design -- a non-2-char bucket
and an unparseable hash both return null -- so this is one more accepted leaf
shape, and hex never contains a dash, so it stays unambiguous.
Assisted-by: Claude Opus 5 (1M context)
Signed-off-by: jorgee <jorge.ejarque@seqera.io>1 parent 56c5c1d commit 98dd386
15 files changed
Lines changed: 1100 additions & 65 deletions
File tree
- modules
- nextflow/src
- main/groovy/nextflow
- cache
- processor
- test/groovy/nextflow
- cache
- processor
- nf-commons/src
- main/nextflow/file
- test/nextflow/file
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
371 | 371 | | |
372 | 372 | | |
373 | 373 | | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
374 | 382 | | |
375 | 383 | | |
376 | 384 | | |
| |||
461 | 469 | | |
462 | 470 | | |
463 | 471 | | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
464 | 496 | | |
465 | 497 | | |
466 | 498 | | |
| |||
492 | 524 | | |
493 | 525 | | |
494 | 526 | | |
495 | | - | |
496 | | - | |
497 | 527 | | |
498 | 528 | | |
499 | 529 | | |
| |||
Lines changed: 47 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
20 | 19 | | |
21 | 20 | | |
22 | 21 | | |
| |||
85 | 84 | | |
86 | 85 | | |
87 | 86 | | |
88 | | - | |
89 | 87 | | |
90 | 88 | | |
91 | 89 | | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
92 | 126 | | |
93 | 127 | | |
94 | 128 | | |
| |||
99 | 133 | | |
100 | 134 | | |
101 | 135 | | |
102 | | - | |
103 | | - | |
| 136 | + | |
| 137 | + | |
104 | 138 | | |
105 | 139 | | |
106 | 140 | | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
107 | 145 | | |
108 | 146 | | |
109 | 147 | | |
| |||
114 | 152 | | |
115 | 153 | | |
116 | 154 | | |
117 | | - | |
| 155 | + | |
118 | 156 | | |
119 | | - | |
| 157 | + | |
120 | 158 | | |
121 | 159 | | |
122 | 160 | | |
| |||
153 | 191 | | |
154 | 192 | | |
155 | 193 | | |
156 | | - | |
| 194 | + | |
157 | 195 | | |
158 | 196 | | |
159 | 197 | | |
160 | | - | |
| 198 | + | |
161 | 199 | | |
162 | 200 | | |
163 | 201 | | |
164 | 202 | | |
165 | 203 | | |
166 | 204 | | |
167 | | - | |
| 205 | + | |
168 | 206 | | |
169 | 207 | | |
170 | 208 | | |
| |||
Lines changed: 14 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
35 | 49 | | |
36 | 50 | | |
37 | 51 | | |
| |||
Lines changed: 12 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
44 | 56 | | |
45 | 57 | | |
46 | 58 | | |
| |||
Lines changed: 105 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
Lines changed: 62 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
0 commit comments