@flyteorg/flyteidl 0.21.7 → 0.21.11
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/gen/pb-js/flyteidl.d.ts +70 -0
- package/gen/pb-js/flyteidl.js +155 -0
- package/package.json +1 -1
- package/protos/docs/admin/admin.rst +341 -341
- package/protos/docs/core/core.rst +96 -42
- package/protos/docs/datacatalog/datacatalog.rst +43 -75
- package/protos/docs/event/event.rst +1 -0
- package/protos/flyteidl/core/catalog.proto +16 -0
- package/protos/flyteidl/core/tasks.proto +3 -0
- package/protos/flyteidl/datacatalog/datacatalog.proto +34 -54
- package/protos/flyteidl/event/event.proto +2 -0
|
@@ -57,6 +57,20 @@ Catalog artifact information with specific metadata
|
|
|
57
57
|
|
|
58
58
|
|
|
59
59
|
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
.. _ref_flyteidl.core.CatalogReservation:
|
|
63
|
+
|
|
64
|
+
CatalogReservation
|
|
65
|
+
------------------------------------------------------------------
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
60
74
|
|
|
61
75
|
|
|
62
76
|
|
|
@@ -79,6 +93,25 @@ Indicates the status of CatalogCaching. The reason why this is not embedded in T
|
|
|
79
93
|
"CACHE_LOOKUP_FAILURE", "4", "Used to indicate that cache lookup failed because of an error"
|
|
80
94
|
"CACHE_PUT_FAILURE", "5", "Used to indicate that cache lookup failed because of an error"
|
|
81
95
|
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
.. _ref_flyteidl.core.CatalogReservation.Status:
|
|
99
|
+
|
|
100
|
+
CatalogReservation.Status
|
|
101
|
+
------------------------------------------------------------------
|
|
102
|
+
|
|
103
|
+
Indicates the status of a catalog reservation operation.
|
|
104
|
+
|
|
105
|
+
.. csv-table:: Enum CatalogReservation.Status values
|
|
106
|
+
:header: "Name", "Number", "Description"
|
|
107
|
+
:widths: auto
|
|
108
|
+
|
|
109
|
+
"RESERVATION_DISABLED", "0", "Used to indicate that reservations are disabled"
|
|
110
|
+
"RESERVATION_ACQUIRED", "1", "Used to indicate that a reservation was successfully acquired or extended"
|
|
111
|
+
"RESERVATION_EXISTS", "2", "Used to indicate that an active reservation currently exists"
|
|
112
|
+
"RESERVATION_RELEASED", "3", "Used to indicate that the reservation has been successfully released"
|
|
113
|
+
"RESERVATION_FAILURE", "4", "Used to indicate that a reservation operation resulted in failure"
|
|
114
|
+
|
|
82
115
|
|
|
83
116
|
|
|
84
117
|
|
|
@@ -1732,6 +1765,7 @@ Container
|
|
|
1732
1765
|
"config", ":ref:`ref_flyteidl.core.KeyValuePair`", "repeated", "**Deprecated.** Allows extra configs to be available for the container. TODO: elaborate on how configs will become available. Deprecated, please use TaskTemplate.config instead."
|
|
1733
1766
|
"ports", ":ref:`ref_flyteidl.core.ContainerPort`", "repeated", "Ports to open in the container. This feature is not supported by all execution engines. (e.g. supported on K8s but not supported on AWS Batch) Only K8s"
|
|
1734
1767
|
"data_config", ":ref:`ref_flyteidl.core.DataLoadingConfig`", "", "BETA: Optional configuration for DataLoading. If not specified, then default values are used. This makes it possible to to run a completely portable container, that uses inputs and outputs only from the local file-system and without having any reference to flyteidl. This is supported only on K8s at the moment. If data loading is enabled, then data will be mounted in accompanying directories specified in the DataLoadingConfig. If the directories are not specified, inputs will be mounted onto and outputs will be uploaded from a pre-determined file-system path. Refer to the documentation to understand the default paths. Only K8s"
|
|
1768
|
+
"architecture", ":ref:`ref_flyteidl.core.Container.Architecture`", "", ""
|
|
1735
1769
|
|
|
1736
1770
|
|
|
1737
1771
|
|
|
@@ -2007,6 +2041,7 @@ Task Metadata
|
|
|
2007
2041
|
"discovery_version", ":ref:`ref_string`", "", "Indicates a logical version to apply to this task for the purpose of discovery."
|
|
2008
2042
|
"deprecated_error_message", ":ref:`ref_string`", "", "If set, this indicates that this task is deprecated. This will enable owners of tasks to notify consumers of the ending of support for a given task."
|
|
2009
2043
|
"interruptible", ":ref:`ref_bool`", "", ""
|
|
2044
|
+
"cache_serializable", ":ref:`ref_bool`", "", "Indicates whether the system should attempt to execute discoverable instances in serial to avoid duplicate work"
|
|
2010
2045
|
|
|
2011
2046
|
|
|
2012
2047
|
|
|
@@ -2070,6 +2105,25 @@ TaskTemplate.ConfigEntry
|
|
|
2070
2105
|
|
|
2071
2106
|
|
|
2072
2107
|
|
|
2108
|
+
.. _ref_flyteidl.core.Container.Architecture:
|
|
2109
|
+
|
|
2110
|
+
Container.Architecture
|
|
2111
|
+
------------------------------------------------------------------
|
|
2112
|
+
|
|
2113
|
+
Architecture-type the container image supports.
|
|
2114
|
+
|
|
2115
|
+
.. csv-table:: Enum Container.Architecture values
|
|
2116
|
+
:header: "Name", "Number", "Description"
|
|
2117
|
+
:widths: auto
|
|
2118
|
+
|
|
2119
|
+
"UNKNOWN", "0", ""
|
|
2120
|
+
"AMD64", "1", ""
|
|
2121
|
+
"ARM64", "2", ""
|
|
2122
|
+
"ARM_V6", "3", ""
|
|
2123
|
+
"ARM_V7", "4", ""
|
|
2124
|
+
|
|
2125
|
+
|
|
2126
|
+
|
|
2073
2127
|
.. _ref_flyteidl.core.DataLoadingConfig.LiteralMapFormat:
|
|
2074
2128
|
|
|
2075
2129
|
DataLoadingConfig.LiteralMapFormat
|
|
@@ -2425,6 +2479,46 @@ Define a set of simple types.
|
|
|
2425
2479
|
|
|
2426
2480
|
|
|
2427
2481
|
|
|
2482
|
+
.. _ref_flyteidl/core/workflow_closure.proto:
|
|
2483
|
+
|
|
2484
|
+
flyteidl/core/workflow_closure.proto
|
|
2485
|
+
==================================================================
|
|
2486
|
+
|
|
2487
|
+
|
|
2488
|
+
|
|
2489
|
+
|
|
2490
|
+
|
|
2491
|
+
.. _ref_flyteidl.core.WorkflowClosure:
|
|
2492
|
+
|
|
2493
|
+
WorkflowClosure
|
|
2494
|
+
------------------------------------------------------------------
|
|
2495
|
+
|
|
2496
|
+
Defines an enclosed package of workflow and tasks it references.
|
|
2497
|
+
|
|
2498
|
+
|
|
2499
|
+
|
|
2500
|
+
.. csv-table:: WorkflowClosure type fields
|
|
2501
|
+
:header: "Field", "Type", "Label", "Description"
|
|
2502
|
+
:widths: auto
|
|
2503
|
+
|
|
2504
|
+
"workflow", ":ref:`ref_flyteidl.core.WorkflowTemplate`", "", "required. Workflow template."
|
|
2505
|
+
"tasks", ":ref:`ref_flyteidl.core.TaskTemplate`", "repeated", "optional. A collection of tasks referenced by the workflow. Only needed if the workflow references tasks."
|
|
2506
|
+
|
|
2507
|
+
|
|
2508
|
+
|
|
2509
|
+
|
|
2510
|
+
|
|
2511
|
+
|
|
2512
|
+
|
|
2513
|
+
|
|
2514
|
+
|
|
2515
|
+
|
|
2516
|
+
|
|
2517
|
+
|
|
2518
|
+
|
|
2519
|
+
|
|
2520
|
+
|
|
2521
|
+
|
|
2428
2522
|
.. _ref_flyteidl/core/workflow.proto:
|
|
2429
2523
|
|
|
2430
2524
|
flyteidl/core/workflow.proto
|
|
@@ -2745,46 +2839,6 @@ Failure Handling Strategy
|
|
|
2745
2839
|
|
|
2746
2840
|
|
|
2747
2841
|
|
|
2748
|
-
.. _ref_flyteidl/core/workflow_closure.proto:
|
|
2749
|
-
|
|
2750
|
-
flyteidl/core/workflow_closure.proto
|
|
2751
|
-
==================================================================
|
|
2752
|
-
|
|
2753
|
-
|
|
2754
|
-
|
|
2755
|
-
|
|
2756
|
-
|
|
2757
|
-
.. _ref_flyteidl.core.WorkflowClosure:
|
|
2758
|
-
|
|
2759
|
-
WorkflowClosure
|
|
2760
|
-
------------------------------------------------------------------
|
|
2761
|
-
|
|
2762
|
-
Defines an enclosed package of workflow and tasks it references.
|
|
2763
|
-
|
|
2764
|
-
|
|
2765
|
-
|
|
2766
|
-
.. csv-table:: WorkflowClosure type fields
|
|
2767
|
-
:header: "Field", "Type", "Label", "Description"
|
|
2768
|
-
:widths: auto
|
|
2769
|
-
|
|
2770
|
-
"workflow", ":ref:`ref_flyteidl.core.WorkflowTemplate`", "", "required. Workflow template."
|
|
2771
|
-
"tasks", ":ref:`ref_flyteidl.core.TaskTemplate`", "repeated", "optional. A collection of tasks referenced by the workflow. Only needed if the workflow references tasks."
|
|
2772
|
-
|
|
2773
|
-
|
|
2774
|
-
|
|
2775
|
-
|
|
2776
|
-
|
|
2777
|
-
|
|
2778
|
-
|
|
2779
|
-
|
|
2780
|
-
|
|
2781
|
-
|
|
2782
|
-
|
|
2783
|
-
|
|
2784
|
-
|
|
2785
|
-
|
|
2786
|
-
|
|
2787
|
-
|
|
2788
2842
|
.. _ref_google/protobuf/timestamp.proto:
|
|
2789
2843
|
|
|
2790
2844
|
google/protobuf/timestamp.proto
|
|
@@ -3101,8 +3155,8 @@ Value
|
|
|
3101
3155
|
|
|
3102
3156
|
`Value` represents a dynamically typed value which can be either
|
|
3103
3157
|
null, a number, a string, a boolean, a recursive struct value, or a
|
|
3104
|
-
list of values. A producer of value is expected to set one of
|
|
3105
|
-
variants
|
|
3158
|
+
list of values. A producer of value is expected to set one of these
|
|
3159
|
+
variants. Absence of any variant indicates an error.
|
|
3106
3160
|
|
|
3107
3161
|
The JSON representation for `Value` is JSON value.
|
|
3108
3162
|
|
|
@@ -261,43 +261,6 @@ Dataset properties we can filter by
|
|
|
261
261
|
|
|
262
262
|
|
|
263
263
|
|
|
264
|
-
.. _ref_datacatalog.ExtendReservationRequest:
|
|
265
|
-
|
|
266
|
-
ExtendReservationRequest
|
|
267
|
-
------------------------------------------------------------------
|
|
268
|
-
|
|
269
|
-
Request to extend reservation
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
.. csv-table:: ExtendReservationRequest type fields
|
|
274
|
-
:header: "Field", "Type", "Label", "Description"
|
|
275
|
-
:widths: auto
|
|
276
|
-
|
|
277
|
-
"dataset_id", ":ref:`ref_datacatalog.DatasetID`", "", ""
|
|
278
|
-
"tag_name", ":ref:`ref_string`", "", ""
|
|
279
|
-
"owner_id", ":ref:`ref_string`", "", ""
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
.. _ref_datacatalog.ExtendReservationResponse:
|
|
288
|
-
|
|
289
|
-
ExtendReservationResponse
|
|
290
|
-
------------------------------------------------------------------
|
|
291
|
-
|
|
292
|
-
Response to extend reservation
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
264
|
.. _ref_datacatalog.FilterExpression:
|
|
302
265
|
|
|
303
266
|
FilterExpression
|
|
@@ -410,22 +373,22 @@ Dataset.
|
|
|
410
373
|
|
|
411
374
|
|
|
412
375
|
|
|
413
|
-
.. _ref_datacatalog.
|
|
376
|
+
.. _ref_datacatalog.GetOrExtendReservationRequest:
|
|
414
377
|
|
|
415
|
-
|
|
378
|
+
GetOrExtendReservationRequest
|
|
416
379
|
------------------------------------------------------------------
|
|
417
380
|
|
|
418
|
-
|
|
381
|
+
Try to acquire or extend an artifact reservation. If an active reservation exists, retreive that instance.
|
|
419
382
|
|
|
420
383
|
|
|
421
384
|
|
|
422
|
-
.. csv-table::
|
|
385
|
+
.. csv-table:: GetOrExtendReservationRequest type fields
|
|
423
386
|
:header: "Field", "Type", "Label", "Description"
|
|
424
387
|
:widths: auto
|
|
425
388
|
|
|
426
|
-
"
|
|
427
|
-
"tag_name", ":ref:`ref_string`", "", ""
|
|
389
|
+
"reservation_id", ":ref:`ref_datacatalog.ReservationID`", "", ""
|
|
428
390
|
"owner_id", ":ref:`ref_string`", "", ""
|
|
391
|
+
"heartbeat_interval", ":ref:`ref_google.protobuf.Duration`", "", "Requested reservation extension heartbeat interval"
|
|
429
392
|
|
|
430
393
|
|
|
431
394
|
|
|
@@ -433,21 +396,20 @@ Get the Artifact or try to reserve a spot if the Artifact does not exist.
|
|
|
433
396
|
|
|
434
397
|
|
|
435
398
|
|
|
436
|
-
.. _ref_datacatalog.
|
|
399
|
+
.. _ref_datacatalog.GetOrExtendReservationResponse:
|
|
437
400
|
|
|
438
|
-
|
|
401
|
+
GetOrExtendReservationResponse
|
|
439
402
|
------------------------------------------------------------------
|
|
440
403
|
|
|
441
|
-
Response
|
|
404
|
+
Response including either a newly minted reservation or the existing reservation
|
|
442
405
|
|
|
443
406
|
|
|
444
407
|
|
|
445
|
-
.. csv-table::
|
|
408
|
+
.. csv-table:: GetOrExtendReservationResponse type fields
|
|
446
409
|
:header: "Field", "Type", "Label", "Description"
|
|
447
410
|
:widths: auto
|
|
448
411
|
|
|
449
|
-
"
|
|
450
|
-
"reservation_status", ":ref:`ref_datacatalog.ReservationStatus`", "", ""
|
|
412
|
+
"reservation", ":ref:`ref_datacatalog.Reservation`", "", ""
|
|
451
413
|
|
|
452
414
|
|
|
453
415
|
|
|
@@ -689,8 +651,7 @@ Request to release reservation
|
|
|
689
651
|
:header: "Field", "Type", "Label", "Description"
|
|
690
652
|
:widths: auto
|
|
691
653
|
|
|
692
|
-
"
|
|
693
|
-
"tag_name", ":ref:`ref_string`", "", ""
|
|
654
|
+
"reservation_id", ":ref:`ref_datacatalog.ReservationID`", "", ""
|
|
694
655
|
"owner_id", ":ref:`ref_string`", "", ""
|
|
695
656
|
|
|
696
657
|
|
|
@@ -713,22 +674,46 @@ Response to release reservation
|
|
|
713
674
|
|
|
714
675
|
|
|
715
676
|
|
|
716
|
-
.. _ref_datacatalog.
|
|
677
|
+
.. _ref_datacatalog.Reservation:
|
|
717
678
|
|
|
718
|
-
|
|
679
|
+
Reservation
|
|
719
680
|
------------------------------------------------------------------
|
|
720
681
|
|
|
721
|
-
|
|
682
|
+
A reservation including owner, heartbeat interval, expiration timestamp, and various metadata.
|
|
722
683
|
|
|
723
684
|
|
|
724
685
|
|
|
725
|
-
.. csv-table::
|
|
686
|
+
.. csv-table:: Reservation type fields
|
|
726
687
|
:header: "Field", "Type", "Label", "Description"
|
|
727
688
|
:widths: auto
|
|
728
689
|
|
|
729
|
-
"
|
|
730
|
-
"metadata", ":ref:`ref_datacatalog.Metadata`", "", ""
|
|
690
|
+
"reservation_id", ":ref:`ref_datacatalog.ReservationID`", "", ""
|
|
731
691
|
"owner_id", ":ref:`ref_string`", "", ""
|
|
692
|
+
"heartbeat_interval", ":ref:`ref_google.protobuf.Duration`", "", "Recommended heartbeat interval to extend reservation"
|
|
693
|
+
"expires_at", ":ref:`ref_google.protobuf.Timestamp`", "", "Expiration timestamp of this reservation"
|
|
694
|
+
"metadata", ":ref:`ref_datacatalog.Metadata`", "", ""
|
|
695
|
+
|
|
696
|
+
|
|
697
|
+
|
|
698
|
+
|
|
699
|
+
|
|
700
|
+
|
|
701
|
+
|
|
702
|
+
.. _ref_datacatalog.ReservationID:
|
|
703
|
+
|
|
704
|
+
ReservationID
|
|
705
|
+
------------------------------------------------------------------
|
|
706
|
+
|
|
707
|
+
ReservationID message that is composed of several string fields.
|
|
708
|
+
|
|
709
|
+
|
|
710
|
+
|
|
711
|
+
.. csv-table:: ReservationID type fields
|
|
712
|
+
:header: "Field", "Type", "Label", "Description"
|
|
713
|
+
:widths: auto
|
|
714
|
+
|
|
715
|
+
"dataset_id", ":ref:`ref_datacatalog.DatasetID`", "", ""
|
|
716
|
+
"tag_name", ":ref:`ref_string`", "", ""
|
|
732
717
|
|
|
733
718
|
|
|
734
719
|
|
|
@@ -839,22 +824,6 @@ PaginationOptions.SortOrder
|
|
|
839
824
|
|
|
840
825
|
|
|
841
826
|
|
|
842
|
-
.. _ref_datacatalog.ReservationStatus.State:
|
|
843
|
-
|
|
844
|
-
ReservationStatus.State
|
|
845
|
-
------------------------------------------------------------------
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
.. csv-table:: Enum ReservationStatus.State values
|
|
850
|
-
:header: "Name", "Number", "Description"
|
|
851
|
-
:widths: auto
|
|
852
|
-
|
|
853
|
-
"ACQUIRED", "0", "Acquired the reservation successfully."
|
|
854
|
-
"ALREADY_IN_PROGRESS", "1", "Indicates an existing active reservation exist for a different owner_id."
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
827
|
.. _ref_datacatalog.SinglePropertyFilter.ComparisonOperator:
|
|
859
828
|
|
|
860
829
|
SinglePropertyFilter.ComparisonOperator
|
|
@@ -894,8 +863,7 @@ Artifacts are associated with a Dataset, and can be tagged for retrieval.
|
|
|
894
863
|
"AddTag", ":ref:`ref_datacatalog.AddTagRequest`", ":ref:`ref_datacatalog.AddTagResponse`", "Associate a tag with an artifact. Tags are unique within a Dataset."
|
|
895
864
|
"ListArtifacts", ":ref:`ref_datacatalog.ListArtifactsRequest`", ":ref:`ref_datacatalog.ListArtifactsResponse`", "Return a paginated list of artifacts"
|
|
896
865
|
"ListDatasets", ":ref:`ref_datacatalog.ListDatasetsRequest`", ":ref:`ref_datacatalog.ListDatasetsResponse`", "Return a paginated list of datasets"
|
|
897
|
-
"
|
|
898
|
-
"ExtendReservation", ":ref:`ref_datacatalog.ExtendReservationRequest`", ":ref:`ref_datacatalog.ExtendReservationResponse`", "Extend the reservation to keep it from expiring. If the reservation expires, other tasks can take over the reservation by calling GetOrReserveArtifact."
|
|
866
|
+
"GetOrExtendReservation", ":ref:`ref_datacatalog.GetOrExtendReservationRequest`", ":ref:`ref_datacatalog.GetOrExtendReservationResponse`", "Attempts to get or extend a reservation for the corresponding artifact. If one already exists (ie. another entity owns the reservation) then that reservation is retrieved. Once you acquire a reservation, you need to periodically extend the reservation with an identical call. If the reservation is not extended before the defined expiration, it may be acquired by another task. Note: We may have multiple concurrent tasks with the same signature and the same input that try to populate the same artifact at the same time. Thus with reservation, only one task can run at a time, until the reservation expires. Note: If task A does not extend the reservation in time and the reservation expires, another task B may take over the reservation, resulting in two tasks A and B running in parallel. So a third task C may get the Artifact from A or B, whichever writes last."
|
|
899
867
|
"ReleaseReservation", ":ref:`ref_datacatalog.ReleaseReservationRequest`", ":ref:`ref_datacatalog.ReleaseReservationResponse`", "Release the reservation when the task holding the spot fails so that the other tasks can grab the spot."
|
|
900
868
|
<!-- end services -->
|
|
901
869
|
|
|
@@ -236,6 +236,7 @@ TaskNodeMetadata
|
|
|
236
236
|
|
|
237
237
|
"cache_status", ":ref:`ref_flyteidl.core.CatalogCacheStatus`", "", "Captures the status of caching for this execution."
|
|
238
238
|
"catalog_key", ":ref:`ref_flyteidl.core.CatalogMetadata`", "", "This structure carries the catalog artifact information"
|
|
239
|
+
"reservation_status", ":ref:`ref_flyteidl.core.CatalogReservation.Status`", "", "Captures the status of cache reservations for this execution."
|
|
239
240
|
"dynamic_workflow", ":ref:`ref_flyteidl.event.DynamicWorkflowNodeMetadata`", "", "In the case this task launched a dynamic workflow we capture its structure here."
|
|
240
241
|
|
|
241
242
|
|
|
@@ -41,3 +41,19 @@ message CatalogMetadata {
|
|
|
41
41
|
TaskExecutionIdentifier source_task_execution = 3;
|
|
42
42
|
}
|
|
43
43
|
};
|
|
44
|
+
|
|
45
|
+
message CatalogReservation {
|
|
46
|
+
// Indicates the status of a catalog reservation operation.
|
|
47
|
+
enum Status {
|
|
48
|
+
// Used to indicate that reservations are disabled
|
|
49
|
+
RESERVATION_DISABLED = 0;
|
|
50
|
+
// Used to indicate that a reservation was successfully acquired or extended
|
|
51
|
+
RESERVATION_ACQUIRED = 1;
|
|
52
|
+
// Used to indicate that an active reservation currently exists
|
|
53
|
+
RESERVATION_EXISTS = 2;
|
|
54
|
+
// Used to indicate that the reservation has been successfully released
|
|
55
|
+
RESERVATION_RELEASED = 3;
|
|
56
|
+
// Used to indicate that a reservation operation resulted in failure
|
|
57
|
+
RESERVATION_FAILURE = 4;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -92,6 +92,9 @@ message TaskMetadata {
|
|
|
92
92
|
oneof interruptible_value {
|
|
93
93
|
bool interruptible = 8;
|
|
94
94
|
};
|
|
95
|
+
|
|
96
|
+
// Indicates whether the system should attempt to execute discoverable instances in serial to avoid duplicate work
|
|
97
|
+
bool cache_serializable = 9;
|
|
95
98
|
}
|
|
96
99
|
|
|
97
100
|
// A Task structure that uniquely identifies a task in the system
|
|
@@ -3,6 +3,7 @@ syntax = "proto3";
|
|
|
3
3
|
package datacatalog;
|
|
4
4
|
|
|
5
5
|
import "flyteidl/core/literals.proto";
|
|
6
|
+
import "google/protobuf/duration.proto";
|
|
6
7
|
import "google/protobuf/timestamp.proto";
|
|
7
8
|
|
|
8
9
|
/*
|
|
@@ -34,25 +35,18 @@ service DataCatalog {
|
|
|
34
35
|
// Return a paginated list of datasets
|
|
35
36
|
rpc ListDatasets (ListDatasetsRequest) returns (ListDatasetsResponse);
|
|
36
37
|
|
|
37
|
-
//
|
|
38
|
-
//
|
|
39
|
-
// Once you
|
|
40
|
-
//
|
|
41
|
-
//
|
|
42
|
-
//
|
|
43
|
-
//
|
|
44
|
-
//
|
|
45
|
-
//
|
|
46
|
-
//
|
|
47
|
-
//
|
|
48
|
-
|
|
49
|
-
// A and B running in parallel. So a third task C may get the Artifact from A or B,
|
|
50
|
-
// whichever writes last.
|
|
51
|
-
rpc GetOrReserveArtifact (GetOrReserveArtifactRequest) returns (GetOrReserveArtifactResponse);
|
|
52
|
-
|
|
53
|
-
// Extend the reservation to keep it from expiring. If the reservation expires,
|
|
54
|
-
// other tasks can take over the reservation by calling GetOrReserveArtifact.
|
|
55
|
-
rpc ExtendReservation (ExtendReservationRequest) returns (ExtendReservationResponse);
|
|
38
|
+
// Attempts to get or extend a reservation for the corresponding artifact. If one already exists
|
|
39
|
+
// (ie. another entity owns the reservation) then that reservation is retrieved.
|
|
40
|
+
// Once you acquire a reservation, you need to periodically extend the reservation with an
|
|
41
|
+
// identical call. If the reservation is not extended before the defined expiration, it may be
|
|
42
|
+
// acquired by another task.
|
|
43
|
+
// Note: We may have multiple concurrent tasks with the same signature and the same input that
|
|
44
|
+
// try to populate the same artifact at the same time. Thus with reservation, only one task can
|
|
45
|
+
// run at a time, until the reservation expires.
|
|
46
|
+
// Note: If task A does not extend the reservation in time and the reservation expires, another
|
|
47
|
+
// task B may take over the reservation, resulting in two tasks A and B running in parallel. So
|
|
48
|
+
// a third task C may get the Artifact from A or B, whichever writes last.
|
|
49
|
+
rpc GetOrExtendReservation (GetOrExtendReservationRequest) returns (GetOrExtendReservationResponse);
|
|
56
50
|
|
|
57
51
|
// Release the reservation when the task holding the spot fails so that the other tasks
|
|
58
52
|
// can grab the spot.
|
|
@@ -174,53 +168,39 @@ message ListDatasetsResponse {
|
|
|
174
168
|
string next_token = 2;
|
|
175
169
|
}
|
|
176
170
|
|
|
177
|
-
|
|
178
|
-
message
|
|
171
|
+
/*
|
|
172
|
+
* ReservationID message that is composed of several string fields.
|
|
173
|
+
*/
|
|
174
|
+
message ReservationID {
|
|
179
175
|
DatasetID dataset_id = 1;
|
|
180
176
|
string tag_name = 2;
|
|
181
|
-
string owner_id = 3;
|
|
182
177
|
}
|
|
183
178
|
|
|
184
|
-
//
|
|
185
|
-
message
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
// Indicates an existing active reservation exist for a different owner_id.
|
|
191
|
-
ALREADY_IN_PROGRESS = 1;
|
|
192
|
-
};
|
|
193
|
-
|
|
194
|
-
State state = 1;
|
|
195
|
-
Metadata metadata = 2;
|
|
196
|
-
string owner_id = 3;
|
|
179
|
+
// Try to acquire or extend an artifact reservation. If an active reservation exists, retreive that instance.
|
|
180
|
+
message GetOrExtendReservationRequest {
|
|
181
|
+
ReservationID reservation_id = 1;
|
|
182
|
+
string owner_id = 2;
|
|
183
|
+
google.protobuf.Duration heartbeat_interval = 3; // Requested reservation extension heartbeat interval
|
|
197
184
|
}
|
|
198
185
|
|
|
199
|
-
//
|
|
200
|
-
message
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
186
|
+
// A reservation including owner, heartbeat interval, expiration timestamp, and various metadata.
|
|
187
|
+
message Reservation {
|
|
188
|
+
ReservationID reservation_id = 1;
|
|
189
|
+
string owner_id = 2;
|
|
190
|
+
google.protobuf.Duration heartbeat_interval = 3; // Recommended heartbeat interval to extend reservation
|
|
191
|
+
google.protobuf.Timestamp expires_at = 4; // Expiration timestamp of this reservation
|
|
192
|
+
Metadata metadata = 6;
|
|
205
193
|
}
|
|
206
194
|
|
|
207
|
-
//
|
|
208
|
-
message
|
|
209
|
-
|
|
210
|
-
string tag_name = 2;
|
|
211
|
-
string owner_id = 3;
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
// Response to extend reservation
|
|
215
|
-
message ExtendReservationResponse {
|
|
216
|
-
|
|
195
|
+
// Response including either a newly minted reservation or the existing reservation
|
|
196
|
+
message GetOrExtendReservationResponse {
|
|
197
|
+
Reservation reservation = 1;
|
|
217
198
|
}
|
|
218
199
|
|
|
219
200
|
// Request to release reservation
|
|
220
201
|
message ReleaseReservationRequest {
|
|
221
|
-
|
|
222
|
-
string
|
|
223
|
-
string owner_id = 3;
|
|
202
|
+
ReservationID reservation_id = 1;
|
|
203
|
+
string owner_id = 2;
|
|
224
204
|
}
|
|
225
205
|
|
|
226
206
|
// Response to release reservation
|
|
@@ -99,6 +99,8 @@ message TaskNodeMetadata {
|
|
|
99
99
|
core.CatalogCacheStatus cache_status = 1;
|
|
100
100
|
// This structure carries the catalog artifact information
|
|
101
101
|
core.CatalogMetadata catalog_key = 2;
|
|
102
|
+
// Captures the status of cache reservations for this execution.
|
|
103
|
+
core.CatalogReservation.Status reservation_status = 3;
|
|
102
104
|
|
|
103
105
|
// In the case this task launched a dynamic workflow we capture its structure here.
|
|
104
106
|
DynamicWorkflowNodeMetadata dynamic_workflow = 16;
|