indexify 0.4.22__py3-none-any.whl → 0.4.23__py3-none-any.whl
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.
- indexify/cli/executor.py +2 -9
- indexify/executor/blob_store/blob_store.py +110 -26
- indexify/executor/blob_store/local_fs_blob_store.py +41 -1
- indexify/executor/blob_store/metrics/blob_store.py +87 -15
- indexify/executor/blob_store/s3_blob_store.py +112 -1
- indexify/executor/function_executor/function_executor.py +32 -56
- indexify/executor/function_executor/invocation_state_client.py +10 -3
- indexify/executor/function_executor/server/function_executor_server_factory.py +0 -1
- indexify/executor/function_executor_controller/create_function_executor.py +129 -116
- indexify/executor/function_executor_controller/downloads.py +34 -86
- indexify/executor/function_executor_controller/events.py +13 -7
- indexify/executor/function_executor_controller/finalize_task.py +184 -0
- indexify/executor/function_executor_controller/function_executor_controller.py +121 -78
- indexify/executor/function_executor_controller/message_validators.py +10 -3
- indexify/executor/function_executor_controller/metrics/downloads.py +8 -52
- indexify/executor/function_executor_controller/metrics/finalize_task.py +20 -0
- indexify/executor/function_executor_controller/metrics/prepare_task.py +18 -0
- indexify/executor/function_executor_controller/prepare_task.py +232 -14
- indexify/executor/function_executor_controller/run_task.py +77 -61
- indexify/executor/function_executor_controller/task_info.py +4 -7
- indexify/executor/function_executor_controller/task_input.py +21 -0
- indexify/executor/function_executor_controller/task_output.py +26 -35
- indexify/executor/function_executor_controller/terminate_function_executor.py +6 -1
- indexify/executor/logging.py +69 -0
- indexify/executor/monitoring/metrics.py +22 -0
- indexify/proto/executor_api.proto +11 -3
- indexify/proto/executor_api_pb2.py +54 -54
- indexify/proto/executor_api_pb2.pyi +8 -1
- {indexify-0.4.22.dist-info → indexify-0.4.23.dist-info}/METADATA +6 -7
- {indexify-0.4.22.dist-info → indexify-0.4.23.dist-info}/RECORD +32 -30
- indexify/executor/function_executor_controller/function_executor_startup_output.py +0 -21
- indexify/executor/function_executor_controller/metrics/upload_task_output.py +0 -39
- indexify/executor/function_executor_controller/upload_task_output.py +0 -274
- {indexify-0.4.22.dist-info → indexify-0.4.23.dist-info}/WHEEL +0 -0
- {indexify-0.4.22.dist-info → indexify-0.4.23.dist-info}/entry_points.txt +0 -0
@@ -1,19 +1,17 @@
|
|
1
1
|
from typing import Any, Dict, List, Optional
|
2
2
|
|
3
3
|
from tensorlake.function_executor.proto.function_executor_pb2 import (
|
4
|
-
|
4
|
+
BLOB,
|
5
|
+
SerializedObjectInsideBLOB,
|
5
6
|
)
|
6
7
|
|
7
8
|
from indexify.proto.executor_api_pb2 import (
|
8
|
-
DataPayload,
|
9
9
|
FunctionExecutorTerminationReason,
|
10
10
|
TaskAllocation,
|
11
11
|
TaskFailureReason,
|
12
12
|
TaskOutcomeCode,
|
13
13
|
)
|
14
14
|
|
15
|
-
from .function_executor_startup_output import FunctionExecutorStartupOutput
|
16
|
-
|
17
15
|
|
18
16
|
class TaskMetrics:
|
19
17
|
"""Metrics for a task."""
|
@@ -30,33 +28,27 @@ class TaskOutput:
|
|
30
28
|
self,
|
31
29
|
allocation: TaskAllocation,
|
32
30
|
outcome_code: TaskOutcomeCode,
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
31
|
+
failure_reason: Optional[TaskFailureReason] = None,
|
32
|
+
function_outputs: List[SerializedObjectInsideBLOB] = [],
|
33
|
+
uploaded_function_outputs_blob: Optional[BLOB] = None,
|
34
|
+
invocation_error_output: Optional[SerializedObjectInsideBLOB] = None,
|
35
|
+
uploaded_invocation_error_blob: Optional[BLOB] = None,
|
37
36
|
next_functions: List[str] = [],
|
38
|
-
stdout: Optional[str] = None,
|
39
|
-
stderr: Optional[str] = None,
|
40
37
|
metrics: Optional[TaskMetrics] = None,
|
41
38
|
execution_start_time: Optional[float] = None,
|
42
39
|
execution_end_time: Optional[float] = None,
|
43
40
|
):
|
44
|
-
self.task = allocation.task
|
45
41
|
self.allocation = allocation
|
46
|
-
self.function_outputs = function_outputs
|
47
|
-
self.next_functions = next_functions
|
48
|
-
self.stdout = stdout
|
49
|
-
self.stderr = stderr
|
50
42
|
self.outcome_code = outcome_code
|
51
43
|
self.failure_reason = failure_reason
|
44
|
+
self.function_outputs = function_outputs
|
45
|
+
self.uploaded_function_outputs_blob = uploaded_function_outputs_blob
|
52
46
|
self.invocation_error_output = invocation_error_output
|
47
|
+
self.uploaded_invocation_error_blob = uploaded_invocation_error_blob
|
48
|
+
self.next_functions = next_functions
|
53
49
|
self.metrics = metrics
|
54
50
|
self.execution_start_time = execution_start_time
|
55
51
|
self.execution_end_time = execution_end_time
|
56
|
-
self.uploaded_data_payloads: List[DataPayload] = []
|
57
|
-
self.uploaded_stdout: Optional[DataPayload] = None
|
58
|
-
self.uploaded_stderr: Optional[DataPayload] = None
|
59
|
-
self.uploaded_invocation_error_output: Optional[DataPayload] = None
|
60
52
|
|
61
53
|
@classmethod
|
62
54
|
def internal_error(
|
@@ -66,12 +58,10 @@ class TaskOutput:
|
|
66
58
|
execution_end_time: Optional[float],
|
67
59
|
) -> "TaskOutput":
|
68
60
|
"""Creates a TaskOutput for an internal error."""
|
69
|
-
# We are not sharing internal error messages with the customer.
|
70
61
|
return TaskOutput(
|
71
62
|
allocation=allocation,
|
72
63
|
outcome_code=TaskOutcomeCode.TASK_OUTCOME_CODE_FAILURE,
|
73
64
|
failure_reason=TaskFailureReason.TASK_FAILURE_REASON_INTERNAL_ERROR,
|
74
|
-
stderr="Platform failed to execute the function.",
|
75
65
|
execution_start_time=execution_start_time,
|
76
66
|
execution_end_time=execution_end_time,
|
77
67
|
)
|
@@ -80,17 +70,14 @@ class TaskOutput:
|
|
80
70
|
def function_timeout(
|
81
71
|
cls,
|
82
72
|
allocation: TaskAllocation,
|
83
|
-
timeout_sec: float,
|
84
73
|
execution_start_time: Optional[float],
|
85
74
|
execution_end_time: Optional[float],
|
86
75
|
) -> "TaskOutput":
|
87
|
-
"""Creates a TaskOutput for
|
88
|
-
# Task stdout, stderr is not available.
|
76
|
+
"""Creates a TaskOutput for a function timeout error."""
|
89
77
|
return TaskOutput(
|
90
78
|
allocation=allocation,
|
91
79
|
outcome_code=TaskOutcomeCode.TASK_OUTCOME_CODE_FAILURE,
|
92
80
|
failure_reason=TaskFailureReason.TASK_FAILURE_REASON_FUNCTION_TIMEOUT,
|
93
|
-
stderr=f"Function exceeded its configured timeout of {timeout_sec:.3f} sec.",
|
94
81
|
execution_start_time=execution_start_time,
|
95
82
|
execution_end_time=execution_end_time,
|
96
83
|
)
|
@@ -102,11 +89,13 @@ class TaskOutput:
|
|
102
89
|
execution_start_time: Optional[float],
|
103
90
|
execution_end_time: Optional[float],
|
104
91
|
) -> "TaskOutput":
|
105
|
-
"""Creates a TaskOutput for an unresponsive FE."""
|
106
|
-
#
|
92
|
+
"""Creates a TaskOutput for an unresponsive FE aka grey failure."""
|
93
|
+
# When FE is unresponsive we don't know exact cause of the failure.
|
107
94
|
return TaskOutput(
|
108
95
|
allocation=allocation,
|
109
96
|
outcome_code=TaskOutcomeCode.TASK_OUTCOME_CODE_FAILURE,
|
97
|
+
# Treat the grey failure as a function error and thus charge the customer.
|
98
|
+
# This is to prevent service abuse by intentionally misbehaving functions.
|
110
99
|
failure_reason=TaskFailureReason.TASK_FAILURE_REASON_FUNCTION_ERROR,
|
111
100
|
execution_start_time=execution_start_time,
|
112
101
|
execution_end_time=execution_end_time,
|
@@ -144,21 +133,17 @@ class TaskOutput:
|
|
144
133
|
def function_executor_startup_failed(
|
145
134
|
cls,
|
146
135
|
allocation: TaskAllocation,
|
147
|
-
|
136
|
+
fe_termination_reason: FunctionExecutorTerminationReason,
|
148
137
|
logger: Any,
|
149
138
|
) -> "TaskOutput":
|
150
139
|
"""Creates a TaskOutput for the case when we fail a task that didn't run because its FE startup failed."""
|
151
|
-
|
140
|
+
return TaskOutput(
|
152
141
|
allocation=allocation,
|
153
142
|
outcome_code=TaskOutcomeCode.TASK_OUTCOME_CODE_FAILURE,
|
154
143
|
failure_reason=_fe_startup_failure_reason_to_task_failure_reason(
|
155
|
-
|
144
|
+
fe_termination_reason, logger
|
156
145
|
),
|
157
146
|
)
|
158
|
-
# Use FE startup stdout, stderr for allocations that we failed because FE startup failed.
|
159
|
-
output.uploaded_stdout = fe_startup_output.stdout
|
160
|
-
output.uploaded_stderr = fe_startup_output.stderr
|
161
|
-
return output
|
162
147
|
|
163
148
|
|
164
149
|
def _fe_startup_failure_reason_to_task_failure_reason(
|
@@ -180,6 +165,12 @@ def _fe_startup_failure_reason_to_task_failure_reason(
|
|
180
165
|
== FunctionExecutorTerminationReason.FUNCTION_EXECUTOR_TERMINATION_REASON_STARTUP_FAILED_INTERNAL_ERROR
|
181
166
|
):
|
182
167
|
return TaskFailureReason.TASK_FAILURE_REASON_INTERNAL_ERROR
|
168
|
+
elif (
|
169
|
+
fe_termination_reason
|
170
|
+
== FunctionExecutorTerminationReason.FUNCTION_EXECUTOR_TERMINATION_REASON_FUNCTION_CANCELLED
|
171
|
+
):
|
172
|
+
# This fe termination reason is used when FE gets deleted by Server from desired state while it's starting up.
|
173
|
+
return TaskFailureReason.TASK_FAILURE_REASON_FUNCTION_EXECUTOR_TERMINATED
|
183
174
|
else:
|
184
175
|
logger.error(
|
185
176
|
"unexpected function executor startup failure reason",
|
@@ -187,4 +178,4 @@ def _fe_startup_failure_reason_to_task_failure_reason(
|
|
187
178
|
fe_termination_reason
|
188
179
|
),
|
189
180
|
)
|
190
|
-
return TaskFailureReason.
|
181
|
+
return TaskFailureReason.TASK_FAILURE_REASON_INTERNAL_ERROR
|
@@ -29,7 +29,12 @@ async def terminate_function_executor(
|
|
29
29
|
logger.info(
|
30
30
|
"destroying function executor",
|
31
31
|
)
|
32
|
-
|
32
|
+
try:
|
33
|
+
# This await is a cancellation point, need to shield to ensure we destroyed the FE.
|
34
|
+
await asyncio.shield(function_executor.destroy())
|
35
|
+
except asyncio.CancelledError:
|
36
|
+
# We actually destroyed the FE so we can return without error.
|
37
|
+
pass
|
33
38
|
|
34
39
|
return FunctionExecutorTerminated(
|
35
40
|
is_success=True,
|
@@ -0,0 +1,69 @@
|
|
1
|
+
# Executor logging configuration.
|
2
|
+
import logging
|
3
|
+
import sys
|
4
|
+
import traceback
|
5
|
+
from typing import TextIO
|
6
|
+
|
7
|
+
import structlog
|
8
|
+
|
9
|
+
|
10
|
+
def configure_logging_early():
|
11
|
+
"""Configures standard Python logging module.
|
12
|
+
By default 3rd party modules that are using standard Python logging module
|
13
|
+
(logging.getLogger()) have their log lines dropped unless the module gets configured.
|
14
|
+
Not dropping log lines from 3rd party modules is useful for debugging. E.g. this helps
|
15
|
+
debugging errors in grpc servers if exceptions happen inside grpc module code.
|
16
|
+
"""
|
17
|
+
logging.basicConfig(
|
18
|
+
level=logging.WARNING,
|
19
|
+
# This log message format is a bit similar to the default structlog format.
|
20
|
+
format="%(asctime)s [%(levelname)s] %(message)s logger=%(name)s",
|
21
|
+
datefmt="%Y-%m-%d %H:%M:%S",
|
22
|
+
handlers=[logging.StreamHandler(sys.stdout)],
|
23
|
+
)
|
24
|
+
|
25
|
+
|
26
|
+
def configure_development_mode_logging(compact_tracebacks=True):
|
27
|
+
processors = [
|
28
|
+
structlog.contextvars.merge_contextvars,
|
29
|
+
structlog.processors.add_log_level,
|
30
|
+
structlog.dev.set_exc_info,
|
31
|
+
structlog.processors.TimeStamper(fmt="%Y-%m-%d %H:%M:%S", utc=False),
|
32
|
+
structlog.dev.ConsoleRenderer(
|
33
|
+
exception_formatter=(
|
34
|
+
_compact_traceback_formatter
|
35
|
+
if compact_tracebacks
|
36
|
+
else structlog.dev.rich_traceback
|
37
|
+
),
|
38
|
+
),
|
39
|
+
]
|
40
|
+
structlog.configure(
|
41
|
+
processors=processors,
|
42
|
+
)
|
43
|
+
|
44
|
+
|
45
|
+
def configure_production_mode_logging():
|
46
|
+
processors = [
|
47
|
+
structlog.contextvars.merge_contextvars,
|
48
|
+
structlog.processors.add_log_level,
|
49
|
+
structlog.dev.set_exc_info,
|
50
|
+
structlog.processors.format_exc_info,
|
51
|
+
structlog.processors.TimeStamper(fmt="%Y-%m-%d %H:%M:%S", utc=False),
|
52
|
+
structlog.processors.JSONRenderer(),
|
53
|
+
]
|
54
|
+
structlog.configure(processors=processors)
|
55
|
+
|
56
|
+
|
57
|
+
def _compact_traceback_formatter(
|
58
|
+
sio: TextIO, exc_info: structlog.typing.ExcInfo
|
59
|
+
) -> None:
|
60
|
+
print(
|
61
|
+
"\n (only the frame where the exception was raised is printed by default)",
|
62
|
+
file=sio,
|
63
|
+
)
|
64
|
+
traceback.print_exception(
|
65
|
+
*exc_info,
|
66
|
+
file=sio,
|
67
|
+
limit=-1, # Print only 1 frame where the exception was raised
|
68
|
+
chain=False,
|
69
|
+
)
|
@@ -243,3 +243,25 @@ def _hours_to_sec(hours: int) -> float:
|
|
243
243
|
|
244
244
|
def _days_to_sec(days: int) -> float:
|
245
245
|
return _hours_to_sec(days * 24)
|
246
|
+
|
247
|
+
|
248
|
+
class IdempotentCounterChanger:
|
249
|
+
"""A wrapper that ensures that inc/dec operations on a counter are done only once.
|
250
|
+
|
251
|
+
This is useful for tracking the number of in-progress operations or objects that exist.
|
252
|
+
"""
|
253
|
+
|
254
|
+
def __init__(self, counter: prometheus_client.Counter) -> None:
|
255
|
+
self._counter: prometheus_client.Counter = counter
|
256
|
+
self.is_incremented: bool = False
|
257
|
+
self.is_decremented: bool = False
|
258
|
+
|
259
|
+
def inc(self) -> None:
|
260
|
+
if not self.is_incremented:
|
261
|
+
self._counter.inc()
|
262
|
+
self.is_incremented = True
|
263
|
+
|
264
|
+
def dec(self) -> None:
|
265
|
+
if self.is_incremented and not self.is_decremented:
|
266
|
+
self._counter.dec()
|
267
|
+
self.is_decremented = True
|
@@ -16,12 +16,15 @@ enum DataPayloadEncoding {
|
|
16
16
|
message DataPayload {
|
17
17
|
optional uint64 size = 2;
|
18
18
|
optional string sha256_hash = 3;
|
19
|
-
// URI of the data.
|
19
|
+
// URI of the BLOB where the data is stored.
|
20
20
|
// S3 URI if the data is stored in S3.
|
21
21
|
// Starts with "file://"" prefix if the data is stored on a local file system.
|
22
22
|
optional string uri = 4;
|
23
23
|
optional DataPayloadEncoding encoding = 5;
|
24
|
+
// Not set and ignored by Server right now.
|
24
25
|
optional uint64 encoding_version = 6;
|
26
|
+
// Offset inside the BLOB.
|
27
|
+
optional uint64 offset = 7;
|
25
28
|
}
|
26
29
|
|
27
30
|
// ===== report_executor_state RPC =====
|
@@ -118,6 +121,7 @@ message FunctionExecutorDescription {
|
|
118
121
|
// URI prefix for the startup output payloads.
|
119
122
|
// S3 URI if the data is stored in S3.
|
120
123
|
// Starts with "file://"" prefix followed by an absolute directory path if the data is stored on a local file system.
|
124
|
+
// Deprecated: most probably going to be removed once external FE logs ingestion pipeline gets implemented.
|
121
125
|
optional string output_payload_uri_prefix = 12;
|
122
126
|
}
|
123
127
|
|
@@ -128,6 +132,7 @@ message FunctionExecutorState {
|
|
128
132
|
repeated string allocation_ids_caused_termination = 4;
|
129
133
|
}
|
130
134
|
|
135
|
+
// Deprecated: most probably going to be removed once external FE logs ingestion pipeline gets implemented.
|
131
136
|
message FunctionExecutorUpdate {
|
132
137
|
optional FunctionExecutorDescription description = 1;
|
133
138
|
optional DataPayload startup_stdout = 2;
|
@@ -207,6 +212,8 @@ message Task {
|
|
207
212
|
// Starts with "file://"" prefix followed by an absolute directory path if the data is stored on a local file system.
|
208
213
|
optional string output_payload_uri_prefix = 13;
|
209
214
|
optional TaskRetryPolicy retry_policy = 14;
|
215
|
+
// BLOB URI prefix for the invocation error payloads.
|
216
|
+
optional string invocation_error_payload_uri_prefix = 15;
|
210
217
|
}
|
211
218
|
|
212
219
|
message TaskAllocation {
|
@@ -240,9 +247,10 @@ enum TaskOutcomeCode {
|
|
240
247
|
enum TaskFailureReason {
|
241
248
|
TASK_FAILURE_REASON_UNKNOWN = 0;
|
242
249
|
// Internal error on Executor aka platform error.
|
243
|
-
// Includes grey failures when we can't determine the exact cause.
|
244
250
|
TASK_FAILURE_REASON_INTERNAL_ERROR = 1;
|
245
251
|
// Clear function code failure typically by raising an exception from the function code.
|
252
|
+
// Also a grey failure where we can't determine the exact cause. We attribute these to
|
253
|
+
// functions to prevent service abuse but not billed intenionally failing functions.
|
246
254
|
TASK_FAILURE_REASON_FUNCTION_ERROR = 2;
|
247
255
|
// Function code run time exceeded its configured timeout.
|
248
256
|
TASK_FAILURE_REASON_FUNCTION_TIMEOUT = 3;
|
@@ -268,11 +276,11 @@ message TaskResult {
|
|
268
276
|
repeated string next_functions = 11;
|
269
277
|
repeated DataPayload function_outputs = 12;
|
270
278
|
// Standard output and error streams of the function.
|
279
|
+
// Deprecated: most probably going to be removed once external FE logs ingestion pipeline gets implemented.
|
271
280
|
optional DataPayload stdout = 13;
|
272
281
|
optional DataPayload stderr = 14;
|
273
282
|
// User payload for invocation error if task failed with invocation error.
|
274
283
|
optional DataPayload invocation_error_output = 15;
|
275
|
-
|
276
284
|
optional uint64 execution_duration_ms = 16;
|
277
285
|
}
|
278
286
|
|
@@ -19,7 +19,7 @@ _sym_db = _symbol_database.Default()
|
|
19
19
|
|
20
20
|
|
21
21
|
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(
|
22
|
-
b'\n!indexify/proto/executor_api.proto\x12\x0f\x65xecutor_api_pb"\xeb\x01\n\x0b\x44\x61taPayload\x12\x11\n\x04size\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x18\n\x0bsha256_hash\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x03uri\x18\x04 \x01(\tH\x02\x88\x01\x01\x12;\n\x08\x65ncoding\x18\x05 \x01(\x0e\x32$.executor_api_pb.DataPayloadEncodingH\x03\x88\x01\x01\x12\x1d\n\x10\x65ncoding_version\x18\x06 \x01(\x04H\x04\x88\x01\x01\x42\x07\n\x05_sizeB\x0e\n\x0c_sha256_hashB\x06\n\x04_uriB\x0b\n\t_encodingB\x13\n\x11_encoding_version"e\n\x0cGPUResources\x12\x12\n\x05\x63ount\x18\x01 \x01(\rH\x00\x88\x01\x01\x12-\n\x05model\x18\x02 \x01(\x0e\x32\x19.executor_api_pb.GPUModelH\x01\x88\x01\x01\x42\x08\n\x06_countB\x08\n\x06_model"\xc2\x01\n\rHostResources\x12\x16\n\tcpu_count\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x19\n\x0cmemory_bytes\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x17\n\ndisk_bytes\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12/\n\x03gpu\x18\x04 \x01(\x0b\x32\x1d.executor_api_pb.GPUResourcesH\x03\x88\x01\x01\x42\x0c\n\n_cpu_countB\x0f\n\r_memory_bytesB\r\n\x0b_disk_bytesB\x06\n\x04_gpu"\xbb\x01\n\x0f\x41llowedFunction\x12\x16\n\tnamespace\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x17\n\ngraph_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\rfunction_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rgraph_version\x18\x04 \x01(\tH\x03\x88\x01\x01\x42\x0c\n\n_namespaceB\r\n\x0b_graph_nameB\x10\n\x0e_function_nameB\x10\n\x0e_graph_version"\xd8\x01\n\x19\x46unctionExecutorResources\x12\x1b\n\x0e\x63pu_ms_per_sec\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x19\n\x0cmemory_bytes\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x17\n\ndisk_bytes\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12/\n\x03gpu\x18\x04 \x01(\x0b\x32\x1d.executor_api_pb.GPUResourcesH\x03\x88\x01\x01\x42\x11\n\x0f_cpu_ms_per_secB\x0f\n\r_memory_bytesB\r\n\x0b_disk_bytesB\x06\n\x04_gpu"\xb3\x04\n\x1b\x46unctionExecutorDescription\x12\x0f\n\x02id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x17\n\ngraph_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rgraph_version\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x1a\n\rfunction_name\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x16\n\timage_uri\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x14\n\x0csecret_names\x18\x07 \x03(\t\x12%\n\x18\x63ustomer_code_timeout_ms\x18\t \x01(\rH\x06\x88\x01\x01\x12\x30\n\x05graph\x18\n \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x07\x88\x01\x01\x12\x42\n\tresources\x18\x0b \x01(\x0b\x32*.executor_api_pb.FunctionExecutorResourcesH\x08\x88\x01\x01\x12&\n\x19output_payload_uri_prefix\x18\x0c \x01(\tH\t\x88\x01\x01\x42\x05\n\x03_idB\x0c\n\n_namespaceB\r\n\x0b_graph_nameB\x10\n\x0e_graph_versionB\x10\n\x0e_function_nameB\x0c\n\n_image_uriB\x1b\n\x19_customer_code_timeout_msB\x08\n\x06_graphB\x0c\n\n_resourcesB\x1c\n\x1a_output_payload_uri_prefix"\xcf\x02\n\x15\x46unctionExecutorState\x12\x46\n\x0b\x64\x65scription\x18\x01 \x01(\x0b\x32,.executor_api_pb.FunctionExecutorDescriptionH\x00\x88\x01\x01\x12<\n\x06status\x18\x02 \x01(\x0e\x32\'.executor_api_pb.FunctionExecutorStatusH\x01\x88\x01\x01\x12S\n\x12termination_reason\x18\x03 \x01(\x0e\x32\x32.executor_api_pb.FunctionExecutorTerminationReasonH\x02\x88\x01\x01\x12)\n!allocation_ids_caused_termination\x18\x04 \x03(\tB\x0e\n\x0c_descriptionB\t\n\x07_statusB\x15\n\x13_termination_reason"\x8c\x02\n\x16\x46unctionExecutorUpdate\x12\x46\n\x0b\x64\x65scription\x18\x01 \x01(\x0b\x32,.executor_api_pb.FunctionExecutorDescriptionH\x00\x88\x01\x01\x12\x39\n\x0estartup_stdout\x18\x02 \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x01\x88\x01\x01\x12\x39\n\x0estartup_stderr\x18\x03 \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x02\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x11\n\x0f_startup_stdoutB\x11\n\x0f_startup_stderr"\xce\x05\n\rExecutorState\x12\x18\n\x0b\x65xecutor_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08hostname\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07version\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x34\n\x06status\x18\x06 \x01(\x0e\x32\x1f.executor_api_pb.ExecutorStatusH\x03\x88\x01\x01\x12<\n\x0ftotal_resources\x18\r \x01(\x0b\x32\x1e.executor_api_pb.HostResourcesH\x04\x88\x01\x01\x12N\n!total_function_executor_resources\x18\x07 \x01(\x0b\x32\x1e.executor_api_pb.HostResourcesH\x05\x88\x01\x01\x12;\n\x11\x61llowed_functions\x18\x08 \x03(\x0b\x32 .executor_api_pb.AllowedFunction\x12H\n\x18\x66unction_executor_states\x18\t \x03(\x0b\x32&.executor_api_pb.FunctionExecutorState\x12:\n\x06labels\x18\n \x03(\x0b\x32*.executor_api_pb.ExecutorState.LabelsEntry\x12\x17\n\nstate_hash\x18\x0b \x01(\tH\x06\x88\x01\x01\x12\x19\n\x0cserver_clock\x18\x0c \x01(\x04H\x07\x88\x01\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0e\n\x0c_executor_idB\x0b\n\t_hostnameB\n\n\x08_versionB\t\n\x07_statusB\x12\n\x10_total_resourcesB$\n"_total_function_executor_resourcesB\r\n\x0b_state_hashB\x0f\n\r_server_clock"\xb9\x01\n\x0e\x45xecutorUpdate\x12\x18\n\x0b\x65xecutor_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x31\n\x0ctask_results\x18\x02 \x03(\x0b\x32\x1b.executor_api_pb.TaskResult\x12J\n\x19\x66unction_executor_updates\x18\x03 \x03(\x0b\x32\'.executor_api_pb.FunctionExecutorUpdateB\x0e\n\x0c_executor_id"\xbf\x01\n\x1aReportExecutorStateRequest\x12;\n\x0e\x65xecutor_state\x18\x01 \x01(\x0b\x32\x1e.executor_api_pb.ExecutorStateH\x00\x88\x01\x01\x12=\n\x0f\x65xecutor_update\x18\x02 \x01(\x0b\x32\x1f.executor_api_pb.ExecutorUpdateH\x01\x88\x01\x01\x42\x11\n\x0f_executor_stateB\x12\n\x10_executor_update"\x1d\n\x1bReportExecutorStateResponse"\xcf\x01\n\x0fTaskRetryPolicy\x12\x18\n\x0bmax_retries\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1d\n\x10initial_delay_ms\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0cmax_delay_ms\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1d\n\x10\x64\x65lay_multiplier\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x0e\n\x0c_max_retriesB\x13\n\x11_initial_delay_msB\x0f\n\r_max_delay_msB\x13\n\x11_delay_multiplier"\xc6\x04\n\x04Task\x12\x0f\n\x02id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x17\n\ngraph_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rgraph_version\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x1a\n\rfunction_name\x18\x05 \x01(\tH\x04\x88\x01\x01\x12 \n\x13graph_invocation_id\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x17\n\ntimeout_ms\x18\n \x01(\rH\x06\x88\x01\x01\x12\x30\n\x05input\x18\x0b \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x07\x88\x01\x01\x12\x38\n\rreducer_input\x18\x0c \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x08\x88\x01\x01\x12&\n\x19output_payload_uri_prefix\x18\r \x01(\tH\t\x88\x01\x01\x12;\n\x0cretry_policy\x18\x0e \x01(\x0b\x32 .executor_api_pb.TaskRetryPolicyH\n\x88\x01\x01\x42\x05\n\x03_idB\x0c\n\n_namespaceB\r\n\x0b_graph_nameB\x10\n\x0e_graph_versionB\x10\n\x0e_function_nameB\x16\n\x14_graph_invocation_idB\r\n\x0b_timeout_msB\x08\n\x06_inputB\x10\n\x0e_reducer_inputB\x1c\n\x1a_output_payload_uri_prefixB\x0f\n\r_retry_policy"\xad\x01\n\x0eTaskAllocation\x12!\n\x14\x66unction_executor_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\x04task\x18\x02 \x01(\x0b\x32\x15.executor_api_pb.TaskH\x01\x88\x01\x01\x12\x1a\n\rallocation_id\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x17\n\x15_function_executor_idB\x07\n\x05_taskB\x10\n\x0e_allocation_id"K\n\x1fGetDesiredExecutorStatesRequest\x12\x18\n\x0b\x65xecutor_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_executor_id"\xb9\x01\n\x14\x44\x65siredExecutorState\x12H\n\x12\x66unction_executors\x18\x01 \x03(\x0b\x32,.executor_api_pb.FunctionExecutorDescription\x12\x39\n\x10task_allocations\x18\x02 \x03(\x0b\x32\x1f.executor_api_pb.TaskAllocation\x12\x12\n\x05\x63lock\x18\x03 \x01(\x04H\x00\x88\x01\x01\x42\x08\n\x06_clock"\xcc\x06\n\nTaskResult\x12\x14\n\x07task_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rallocation_id\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x16\n\tnamespace\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\ngraph_name\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x1a\n\rgraph_version\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\rfunction_name\x18\x06 \x01(\tH\x05\x88\x01\x01\x12 \n\x13graph_invocation_id\x18\x07 \x01(\tH\x06\x88\x01\x01\x12;\n\x0coutcome_code\x18\t \x01(\x0e\x32 .executor_api_pb.TaskOutcomeCodeH\x07\x88\x01\x01\x12?\n\x0e\x66\x61ilure_reason\x18\n \x01(\x0e\x32".executor_api_pb.TaskFailureReasonH\x08\x88\x01\x01\x12\x16\n\x0enext_functions\x18\x0b \x03(\t\x12\x36\n\x10\x66unction_outputs\x18\x0c \x03(\x0b\x32\x1c.executor_api_pb.DataPayload\x12\x31\n\x06stdout\x18\r \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\t\x88\x01\x01\x12\x31\n\x06stderr\x18\x0e \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\n\x88\x01\x01\x12\x42\n\x17invocation_error_output\x18\x0f \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x0b\x88\x01\x01\x12"\n\x15\x65xecution_duration_ms\x18\x10 \x01(\x04H\x0c\x88\x01\x01\x42\n\n\x08_task_idB\x10\n\x0e_allocation_idB\x0c\n\n_namespaceB\r\n\x0b_graph_nameB\x10\n\x0e_graph_versionB\x10\n\x0e_function_nameB\x16\n\x14_graph_invocation_idB\x0f\n\r_outcome_codeB\x11\n\x0f_failure_reasonB\t\n\x07_stdoutB\t\n\x07_stderrB\x1a\n\x18_invocation_error_outputB\x18\n\x16_execution_duration_ms*\xd1\x01\n\x13\x44\x61taPayloadEncoding\x12!\n\x1d\x44\x41TA_PAYLOAD_ENCODING_UNKNOWN\x10\x00\x12#\n\x1f\x44\x41TA_PAYLOAD_ENCODING_UTF8_JSON\x10\x01\x12#\n\x1f\x44\x41TA_PAYLOAD_ENCODING_UTF8_TEXT\x10\x02\x12\'\n#DATA_PAYLOAD_ENCODING_BINARY_PICKLE\x10\x03\x12$\n DATA_PAYLOAD_ENCODING_BINARY_ZIP\x10\x04*\xd6\x01\n\x08GPUModel\x12\x15\n\x11GPU_MODEL_UNKNOWN\x10\x00\x12\x1e\n\x1aGPU_MODEL_NVIDIA_A100_40GB\x10\x01\x12\x1e\n\x1aGPU_MODEL_NVIDIA_A100_80GB\x10\x02\x12\x1e\n\x1aGPU_MODEL_NVIDIA_H100_80GB\x10\x03\x12\x1d\n\x19GPU_MODEL_NVIDIA_TESLA_T4\x10\x04\x12\x1a\n\x16GPU_MODEL_NVIDIA_A6000\x10\x05\x12\x18\n\x14GPU_MODEL_NVIDIA_A10\x10\x06*\xb3\x01\n\x16\x46unctionExecutorStatus\x12$\n FUNCTION_EXECUTOR_STATUS_UNKNOWN\x10\x00\x12$\n FUNCTION_EXECUTOR_STATUS_PENDING\x10\x01\x12$\n FUNCTION_EXECUTOR_STATUS_RUNNING\x10\x02\x12\'\n#FUNCTION_EXECUTOR_STATUS_TERMINATED\x10\x03*\x94\x04\n!FunctionExecutorTerminationReason\x12\x30\n,FUNCTION_EXECUTOR_TERMINATION_REASON_UNKNOWN\x10\x00\x12\x46\nBFUNCTION_EXECUTOR_TERMINATION_REASON_STARTUP_FAILED_INTERNAL_ERROR\x10\x01\x12\x46\nBFUNCTION_EXECUTOR_TERMINATION_REASON_STARTUP_FAILED_FUNCTION_ERROR\x10\x02\x12H\nDFUNCTION_EXECUTOR_TERMINATION_REASON_STARTUP_FAILED_FUNCTION_TIMEOUT\x10\x03\x12\x32\n.FUNCTION_EXECUTOR_TERMINATION_REASON_UNHEALTHY\x10\x0c\x12\x37\n3FUNCTION_EXECUTOR_TERMINATION_REASON_INTERNAL_ERROR\x10\r\x12\x39\n5FUNCTION_EXECUTOR_TERMINATION_REASON_FUNCTION_TIMEOUT\x10\x0e\x12;\n7FUNCTION_EXECUTOR_TERMINATION_REASON_FUNCTION_CANCELLED\x10\x0f*\xa5\x01\n\x0e\x45xecutorStatus\x12\x1b\n\x17\x45XECUTOR_STATUS_UNKNOWN\x10\x00\x12\x1f\n\x1b\x45XECUTOR_STATUS_STARTING_UP\x10\x01\x12\x1b\n\x17\x45XECUTOR_STATUS_RUNNING\x10\x02\x12\x1b\n\x17\x45XECUTOR_STATUS_DRAINED\x10\x03\x12\x1b\n\x17\x45XECUTOR_STATUS_STOPPED\x10\x04*n\n\x0fTaskOutcomeCode\x12\x1d\n\x19TASK_OUTCOME_CODE_UNKNOWN\x10\x00\x12\x1d\n\x19TASK_OUTCOME_CODE_SUCCESS\x10\x01\x12\x1d\n\x19TASK_OUTCOME_CODE_FAILURE\x10\x02*\xb6\x02\n\x11TaskFailureReason\x12\x1f\n\x1bTASK_FAILURE_REASON_UNKNOWN\x10\x00\x12&\n"TASK_FAILURE_REASON_INTERNAL_ERROR\x10\x01\x12&\n"TASK_FAILURE_REASON_FUNCTION_ERROR\x10\x02\x12(\n$TASK_FAILURE_REASON_FUNCTION_TIMEOUT\x10\x03\x12(\n$TASK_FAILURE_REASON_INVOCATION_ERROR\x10\x04\x12&\n"TASK_FAILURE_REASON_TASK_CANCELLED\x10\x05\x12\x34\n0TASK_FAILURE_REASON_FUNCTION_EXECUTOR_TERMINATED\x10\x06\x32\xff\x01\n\x0b\x45xecutorAPI\x12t\n\x15report_executor_state\x12+.executor_api_pb.ReportExecutorStateRequest\x1a,.executor_api_pb.ReportExecutorStateResponse"\x00\x12z\n\x1bget_desired_executor_states\x12\x30.executor_api_pb.GetDesiredExecutorStatesRequest\x1a%.executor_api_pb.DesiredExecutorState"\x00\x30\x01\x62\x06proto3'
|
22
|
+
b'\n!indexify/proto/executor_api.proto\x12\x0f\x65xecutor_api_pb"\x8b\x02\n\x0b\x44\x61taPayload\x12\x11\n\x04size\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x18\n\x0bsha256_hash\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x03uri\x18\x04 \x01(\tH\x02\x88\x01\x01\x12;\n\x08\x65ncoding\x18\x05 \x01(\x0e\x32$.executor_api_pb.DataPayloadEncodingH\x03\x88\x01\x01\x12\x1d\n\x10\x65ncoding_version\x18\x06 \x01(\x04H\x04\x88\x01\x01\x12\x13\n\x06offset\x18\x07 \x01(\x04H\x05\x88\x01\x01\x42\x07\n\x05_sizeB\x0e\n\x0c_sha256_hashB\x06\n\x04_uriB\x0b\n\t_encodingB\x13\n\x11_encoding_versionB\t\n\x07_offset"e\n\x0cGPUResources\x12\x12\n\x05\x63ount\x18\x01 \x01(\rH\x00\x88\x01\x01\x12-\n\x05model\x18\x02 \x01(\x0e\x32\x19.executor_api_pb.GPUModelH\x01\x88\x01\x01\x42\x08\n\x06_countB\x08\n\x06_model"\xc2\x01\n\rHostResources\x12\x16\n\tcpu_count\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x19\n\x0cmemory_bytes\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x17\n\ndisk_bytes\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12/\n\x03gpu\x18\x04 \x01(\x0b\x32\x1d.executor_api_pb.GPUResourcesH\x03\x88\x01\x01\x42\x0c\n\n_cpu_countB\x0f\n\r_memory_bytesB\r\n\x0b_disk_bytesB\x06\n\x04_gpu"\xbb\x01\n\x0f\x41llowedFunction\x12\x16\n\tnamespace\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x17\n\ngraph_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\rfunction_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rgraph_version\x18\x04 \x01(\tH\x03\x88\x01\x01\x42\x0c\n\n_namespaceB\r\n\x0b_graph_nameB\x10\n\x0e_function_nameB\x10\n\x0e_graph_version"\xd8\x01\n\x19\x46unctionExecutorResources\x12\x1b\n\x0e\x63pu_ms_per_sec\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x19\n\x0cmemory_bytes\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x17\n\ndisk_bytes\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12/\n\x03gpu\x18\x04 \x01(\x0b\x32\x1d.executor_api_pb.GPUResourcesH\x03\x88\x01\x01\x42\x11\n\x0f_cpu_ms_per_secB\x0f\n\r_memory_bytesB\r\n\x0b_disk_bytesB\x06\n\x04_gpu"\xb3\x04\n\x1b\x46unctionExecutorDescription\x12\x0f\n\x02id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x17\n\ngraph_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rgraph_version\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x1a\n\rfunction_name\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x16\n\timage_uri\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x14\n\x0csecret_names\x18\x07 \x03(\t\x12%\n\x18\x63ustomer_code_timeout_ms\x18\t \x01(\rH\x06\x88\x01\x01\x12\x30\n\x05graph\x18\n \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x07\x88\x01\x01\x12\x42\n\tresources\x18\x0b \x01(\x0b\x32*.executor_api_pb.FunctionExecutorResourcesH\x08\x88\x01\x01\x12&\n\x19output_payload_uri_prefix\x18\x0c \x01(\tH\t\x88\x01\x01\x42\x05\n\x03_idB\x0c\n\n_namespaceB\r\n\x0b_graph_nameB\x10\n\x0e_graph_versionB\x10\n\x0e_function_nameB\x0c\n\n_image_uriB\x1b\n\x19_customer_code_timeout_msB\x08\n\x06_graphB\x0c\n\n_resourcesB\x1c\n\x1a_output_payload_uri_prefix"\xcf\x02\n\x15\x46unctionExecutorState\x12\x46\n\x0b\x64\x65scription\x18\x01 \x01(\x0b\x32,.executor_api_pb.FunctionExecutorDescriptionH\x00\x88\x01\x01\x12<\n\x06status\x18\x02 \x01(\x0e\x32\'.executor_api_pb.FunctionExecutorStatusH\x01\x88\x01\x01\x12S\n\x12termination_reason\x18\x03 \x01(\x0e\x32\x32.executor_api_pb.FunctionExecutorTerminationReasonH\x02\x88\x01\x01\x12)\n!allocation_ids_caused_termination\x18\x04 \x03(\tB\x0e\n\x0c_descriptionB\t\n\x07_statusB\x15\n\x13_termination_reason"\x8c\x02\n\x16\x46unctionExecutorUpdate\x12\x46\n\x0b\x64\x65scription\x18\x01 \x01(\x0b\x32,.executor_api_pb.FunctionExecutorDescriptionH\x00\x88\x01\x01\x12\x39\n\x0estartup_stdout\x18\x02 \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x01\x88\x01\x01\x12\x39\n\x0estartup_stderr\x18\x03 \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x02\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x11\n\x0f_startup_stdoutB\x11\n\x0f_startup_stderr"\xce\x05\n\rExecutorState\x12\x18\n\x0b\x65xecutor_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08hostname\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07version\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x34\n\x06status\x18\x06 \x01(\x0e\x32\x1f.executor_api_pb.ExecutorStatusH\x03\x88\x01\x01\x12<\n\x0ftotal_resources\x18\r \x01(\x0b\x32\x1e.executor_api_pb.HostResourcesH\x04\x88\x01\x01\x12N\n!total_function_executor_resources\x18\x07 \x01(\x0b\x32\x1e.executor_api_pb.HostResourcesH\x05\x88\x01\x01\x12;\n\x11\x61llowed_functions\x18\x08 \x03(\x0b\x32 .executor_api_pb.AllowedFunction\x12H\n\x18\x66unction_executor_states\x18\t \x03(\x0b\x32&.executor_api_pb.FunctionExecutorState\x12:\n\x06labels\x18\n \x03(\x0b\x32*.executor_api_pb.ExecutorState.LabelsEntry\x12\x17\n\nstate_hash\x18\x0b \x01(\tH\x06\x88\x01\x01\x12\x19\n\x0cserver_clock\x18\x0c \x01(\x04H\x07\x88\x01\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0e\n\x0c_executor_idB\x0b\n\t_hostnameB\n\n\x08_versionB\t\n\x07_statusB\x12\n\x10_total_resourcesB$\n"_total_function_executor_resourcesB\r\n\x0b_state_hashB\x0f\n\r_server_clock"\xb9\x01\n\x0e\x45xecutorUpdate\x12\x18\n\x0b\x65xecutor_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x31\n\x0ctask_results\x18\x02 \x03(\x0b\x32\x1b.executor_api_pb.TaskResult\x12J\n\x19\x66unction_executor_updates\x18\x03 \x03(\x0b\x32\'.executor_api_pb.FunctionExecutorUpdateB\x0e\n\x0c_executor_id"\xbf\x01\n\x1aReportExecutorStateRequest\x12;\n\x0e\x65xecutor_state\x18\x01 \x01(\x0b\x32\x1e.executor_api_pb.ExecutorStateH\x00\x88\x01\x01\x12=\n\x0f\x65xecutor_update\x18\x02 \x01(\x0b\x32\x1f.executor_api_pb.ExecutorUpdateH\x01\x88\x01\x01\x42\x11\n\x0f_executor_stateB\x12\n\x10_executor_update"\x1d\n\x1bReportExecutorStateResponse"\xcf\x01\n\x0fTaskRetryPolicy\x12\x18\n\x0bmax_retries\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1d\n\x10initial_delay_ms\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0cmax_delay_ms\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1d\n\x10\x64\x65lay_multiplier\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x0e\n\x0c_max_retriesB\x13\n\x11_initial_delay_msB\x0f\n\r_max_delay_msB\x13\n\x11_delay_multiplier"\xa0\x05\n\x04Task\x12\x0f\n\x02id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x17\n\ngraph_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rgraph_version\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x1a\n\rfunction_name\x18\x05 \x01(\tH\x04\x88\x01\x01\x12 \n\x13graph_invocation_id\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x17\n\ntimeout_ms\x18\n \x01(\rH\x06\x88\x01\x01\x12\x30\n\x05input\x18\x0b \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x07\x88\x01\x01\x12\x38\n\rreducer_input\x18\x0c \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x08\x88\x01\x01\x12&\n\x19output_payload_uri_prefix\x18\r \x01(\tH\t\x88\x01\x01\x12;\n\x0cretry_policy\x18\x0e \x01(\x0b\x32 .executor_api_pb.TaskRetryPolicyH\n\x88\x01\x01\x12\x30\n#invocation_error_payload_uri_prefix\x18\x0f \x01(\tH\x0b\x88\x01\x01\x42\x05\n\x03_idB\x0c\n\n_namespaceB\r\n\x0b_graph_nameB\x10\n\x0e_graph_versionB\x10\n\x0e_function_nameB\x16\n\x14_graph_invocation_idB\r\n\x0b_timeout_msB\x08\n\x06_inputB\x10\n\x0e_reducer_inputB\x1c\n\x1a_output_payload_uri_prefixB\x0f\n\r_retry_policyB&\n$_invocation_error_payload_uri_prefix"\xad\x01\n\x0eTaskAllocation\x12!\n\x14\x66unction_executor_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\x04task\x18\x02 \x01(\x0b\x32\x15.executor_api_pb.TaskH\x01\x88\x01\x01\x12\x1a\n\rallocation_id\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x17\n\x15_function_executor_idB\x07\n\x05_taskB\x10\n\x0e_allocation_id"K\n\x1fGetDesiredExecutorStatesRequest\x12\x18\n\x0b\x65xecutor_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_executor_id"\xb9\x01\n\x14\x44\x65siredExecutorState\x12H\n\x12\x66unction_executors\x18\x01 \x03(\x0b\x32,.executor_api_pb.FunctionExecutorDescription\x12\x39\n\x10task_allocations\x18\x02 \x03(\x0b\x32\x1f.executor_api_pb.TaskAllocation\x12\x12\n\x05\x63lock\x18\x03 \x01(\x04H\x00\x88\x01\x01\x42\x08\n\x06_clock"\xcc\x06\n\nTaskResult\x12\x14\n\x07task_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rallocation_id\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x16\n\tnamespace\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\ngraph_name\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x1a\n\rgraph_version\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\rfunction_name\x18\x06 \x01(\tH\x05\x88\x01\x01\x12 \n\x13graph_invocation_id\x18\x07 \x01(\tH\x06\x88\x01\x01\x12;\n\x0coutcome_code\x18\t \x01(\x0e\x32 .executor_api_pb.TaskOutcomeCodeH\x07\x88\x01\x01\x12?\n\x0e\x66\x61ilure_reason\x18\n \x01(\x0e\x32".executor_api_pb.TaskFailureReasonH\x08\x88\x01\x01\x12\x16\n\x0enext_functions\x18\x0b \x03(\t\x12\x36\n\x10\x66unction_outputs\x18\x0c \x03(\x0b\x32\x1c.executor_api_pb.DataPayload\x12\x31\n\x06stdout\x18\r \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\t\x88\x01\x01\x12\x31\n\x06stderr\x18\x0e \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\n\x88\x01\x01\x12\x42\n\x17invocation_error_output\x18\x0f \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x0b\x88\x01\x01\x12"\n\x15\x65xecution_duration_ms\x18\x10 \x01(\x04H\x0c\x88\x01\x01\x42\n\n\x08_task_idB\x10\n\x0e_allocation_idB\x0c\n\n_namespaceB\r\n\x0b_graph_nameB\x10\n\x0e_graph_versionB\x10\n\x0e_function_nameB\x16\n\x14_graph_invocation_idB\x0f\n\r_outcome_codeB\x11\n\x0f_failure_reasonB\t\n\x07_stdoutB\t\n\x07_stderrB\x1a\n\x18_invocation_error_outputB\x18\n\x16_execution_duration_ms*\xd1\x01\n\x13\x44\x61taPayloadEncoding\x12!\n\x1d\x44\x41TA_PAYLOAD_ENCODING_UNKNOWN\x10\x00\x12#\n\x1f\x44\x41TA_PAYLOAD_ENCODING_UTF8_JSON\x10\x01\x12#\n\x1f\x44\x41TA_PAYLOAD_ENCODING_UTF8_TEXT\x10\x02\x12\'\n#DATA_PAYLOAD_ENCODING_BINARY_PICKLE\x10\x03\x12$\n DATA_PAYLOAD_ENCODING_BINARY_ZIP\x10\x04*\xd6\x01\n\x08GPUModel\x12\x15\n\x11GPU_MODEL_UNKNOWN\x10\x00\x12\x1e\n\x1aGPU_MODEL_NVIDIA_A100_40GB\x10\x01\x12\x1e\n\x1aGPU_MODEL_NVIDIA_A100_80GB\x10\x02\x12\x1e\n\x1aGPU_MODEL_NVIDIA_H100_80GB\x10\x03\x12\x1d\n\x19GPU_MODEL_NVIDIA_TESLA_T4\x10\x04\x12\x1a\n\x16GPU_MODEL_NVIDIA_A6000\x10\x05\x12\x18\n\x14GPU_MODEL_NVIDIA_A10\x10\x06*\xb3\x01\n\x16\x46unctionExecutorStatus\x12$\n FUNCTION_EXECUTOR_STATUS_UNKNOWN\x10\x00\x12$\n FUNCTION_EXECUTOR_STATUS_PENDING\x10\x01\x12$\n FUNCTION_EXECUTOR_STATUS_RUNNING\x10\x02\x12\'\n#FUNCTION_EXECUTOR_STATUS_TERMINATED\x10\x03*\x94\x04\n!FunctionExecutorTerminationReason\x12\x30\n,FUNCTION_EXECUTOR_TERMINATION_REASON_UNKNOWN\x10\x00\x12\x46\nBFUNCTION_EXECUTOR_TERMINATION_REASON_STARTUP_FAILED_INTERNAL_ERROR\x10\x01\x12\x46\nBFUNCTION_EXECUTOR_TERMINATION_REASON_STARTUP_FAILED_FUNCTION_ERROR\x10\x02\x12H\nDFUNCTION_EXECUTOR_TERMINATION_REASON_STARTUP_FAILED_FUNCTION_TIMEOUT\x10\x03\x12\x32\n.FUNCTION_EXECUTOR_TERMINATION_REASON_UNHEALTHY\x10\x0c\x12\x37\n3FUNCTION_EXECUTOR_TERMINATION_REASON_INTERNAL_ERROR\x10\r\x12\x39\n5FUNCTION_EXECUTOR_TERMINATION_REASON_FUNCTION_TIMEOUT\x10\x0e\x12;\n7FUNCTION_EXECUTOR_TERMINATION_REASON_FUNCTION_CANCELLED\x10\x0f*\xa5\x01\n\x0e\x45xecutorStatus\x12\x1b\n\x17\x45XECUTOR_STATUS_UNKNOWN\x10\x00\x12\x1f\n\x1b\x45XECUTOR_STATUS_STARTING_UP\x10\x01\x12\x1b\n\x17\x45XECUTOR_STATUS_RUNNING\x10\x02\x12\x1b\n\x17\x45XECUTOR_STATUS_DRAINED\x10\x03\x12\x1b\n\x17\x45XECUTOR_STATUS_STOPPED\x10\x04*n\n\x0fTaskOutcomeCode\x12\x1d\n\x19TASK_OUTCOME_CODE_UNKNOWN\x10\x00\x12\x1d\n\x19TASK_OUTCOME_CODE_SUCCESS\x10\x01\x12\x1d\n\x19TASK_OUTCOME_CODE_FAILURE\x10\x02*\xb6\x02\n\x11TaskFailureReason\x12\x1f\n\x1bTASK_FAILURE_REASON_UNKNOWN\x10\x00\x12&\n"TASK_FAILURE_REASON_INTERNAL_ERROR\x10\x01\x12&\n"TASK_FAILURE_REASON_FUNCTION_ERROR\x10\x02\x12(\n$TASK_FAILURE_REASON_FUNCTION_TIMEOUT\x10\x03\x12(\n$TASK_FAILURE_REASON_INVOCATION_ERROR\x10\x04\x12&\n"TASK_FAILURE_REASON_TASK_CANCELLED\x10\x05\x12\x34\n0TASK_FAILURE_REASON_FUNCTION_EXECUTOR_TERMINATED\x10\x06\x32\xff\x01\n\x0b\x45xecutorAPI\x12t\n\x15report_executor_state\x12+.executor_api_pb.ReportExecutorStateRequest\x1a,.executor_api_pb.ReportExecutorStateResponse"\x00\x12z\n\x1bget_desired_executor_states\x12\x30.executor_api_pb.GetDesiredExecutorStatesRequest\x1a%.executor_api_pb.DesiredExecutorState"\x00\x30\x01\x62\x06proto3'
|
23
23
|
)
|
24
24
|
|
25
25
|
_globals = globals()
|
@@ -31,58 +31,58 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
31
31
|
DESCRIPTOR._loaded_options = None
|
32
32
|
_globals["_EXECUTORSTATE_LABELSENTRY"]._loaded_options = None
|
33
33
|
_globals["_EXECUTORSTATE_LABELSENTRY"]._serialized_options = b"8\001"
|
34
|
-
_globals["_DATAPAYLOADENCODING"]._serialized_start =
|
35
|
-
_globals["_DATAPAYLOADENCODING"]._serialized_end =
|
36
|
-
_globals["_GPUMODEL"]._serialized_start =
|
37
|
-
_globals["_GPUMODEL"]._serialized_end =
|
38
|
-
_globals["_FUNCTIONEXECUTORSTATUS"]._serialized_start =
|
39
|
-
_globals["_FUNCTIONEXECUTORSTATUS"]._serialized_end =
|
40
|
-
_globals["_FUNCTIONEXECUTORTERMINATIONREASON"]._serialized_start =
|
41
|
-
_globals["_FUNCTIONEXECUTORTERMINATIONREASON"]._serialized_end =
|
42
|
-
_globals["_EXECUTORSTATUS"]._serialized_start =
|
43
|
-
_globals["_EXECUTORSTATUS"]._serialized_end =
|
44
|
-
_globals["_TASKOUTCOMECODE"]._serialized_start =
|
45
|
-
_globals["_TASKOUTCOMECODE"]._serialized_end =
|
46
|
-
_globals["_TASKFAILUREREASON"]._serialized_start =
|
47
|
-
_globals["_TASKFAILUREREASON"]._serialized_end =
|
34
|
+
_globals["_DATAPAYLOADENCODING"]._serialized_start = 5516
|
35
|
+
_globals["_DATAPAYLOADENCODING"]._serialized_end = 5725
|
36
|
+
_globals["_GPUMODEL"]._serialized_start = 5728
|
37
|
+
_globals["_GPUMODEL"]._serialized_end = 5942
|
38
|
+
_globals["_FUNCTIONEXECUTORSTATUS"]._serialized_start = 5945
|
39
|
+
_globals["_FUNCTIONEXECUTORSTATUS"]._serialized_end = 6124
|
40
|
+
_globals["_FUNCTIONEXECUTORTERMINATIONREASON"]._serialized_start = 6127
|
41
|
+
_globals["_FUNCTIONEXECUTORTERMINATIONREASON"]._serialized_end = 6659
|
42
|
+
_globals["_EXECUTORSTATUS"]._serialized_start = 6662
|
43
|
+
_globals["_EXECUTORSTATUS"]._serialized_end = 6827
|
44
|
+
_globals["_TASKOUTCOMECODE"]._serialized_start = 6829
|
45
|
+
_globals["_TASKOUTCOMECODE"]._serialized_end = 6939
|
46
|
+
_globals["_TASKFAILUREREASON"]._serialized_start = 6942
|
47
|
+
_globals["_TASKFAILUREREASON"]._serialized_end = 7252
|
48
48
|
_globals["_DATAPAYLOAD"]._serialized_start = 55
|
49
|
-
_globals["_DATAPAYLOAD"]._serialized_end =
|
50
|
-
_globals["_GPURESOURCES"]._serialized_start =
|
51
|
-
_globals["_GPURESOURCES"]._serialized_end =
|
52
|
-
_globals["_HOSTRESOURCES"]._serialized_start =
|
53
|
-
_globals["_HOSTRESOURCES"]._serialized_end =
|
54
|
-
_globals["_ALLOWEDFUNCTION"]._serialized_start =
|
55
|
-
_globals["_ALLOWEDFUNCTION"]._serialized_end =
|
56
|
-
_globals["_FUNCTIONEXECUTORRESOURCES"]._serialized_start =
|
57
|
-
_globals["_FUNCTIONEXECUTORRESOURCES"]._serialized_end =
|
58
|
-
_globals["_FUNCTIONEXECUTORDESCRIPTION"]._serialized_start =
|
59
|
-
_globals["_FUNCTIONEXECUTORDESCRIPTION"]._serialized_end =
|
60
|
-
_globals["_FUNCTIONEXECUTORSTATE"]._serialized_start =
|
61
|
-
_globals["_FUNCTIONEXECUTORSTATE"]._serialized_end =
|
62
|
-
_globals["_FUNCTIONEXECUTORUPDATE"]._serialized_start =
|
63
|
-
_globals["_FUNCTIONEXECUTORUPDATE"]._serialized_end =
|
64
|
-
_globals["_EXECUTORSTATE"]._serialized_start =
|
65
|
-
_globals["_EXECUTORSTATE"]._serialized_end =
|
66
|
-
_globals["_EXECUTORSTATE_LABELSENTRY"]._serialized_start =
|
67
|
-
_globals["_EXECUTORSTATE_LABELSENTRY"]._serialized_end =
|
68
|
-
_globals["_EXECUTORUPDATE"]._serialized_start =
|
69
|
-
_globals["_EXECUTORUPDATE"]._serialized_end =
|
70
|
-
_globals["_REPORTEXECUTORSTATEREQUEST"]._serialized_start =
|
71
|
-
_globals["_REPORTEXECUTORSTATEREQUEST"]._serialized_end =
|
72
|
-
_globals["_REPORTEXECUTORSTATERESPONSE"]._serialized_start =
|
73
|
-
_globals["_REPORTEXECUTORSTATERESPONSE"]._serialized_end =
|
74
|
-
_globals["_TASKRETRYPOLICY"]._serialized_start =
|
75
|
-
_globals["_TASKRETRYPOLICY"]._serialized_end =
|
76
|
-
_globals["_TASK"]._serialized_start =
|
77
|
-
_globals["_TASK"]._serialized_end =
|
78
|
-
_globals["_TASKALLOCATION"]._serialized_start =
|
79
|
-
_globals["_TASKALLOCATION"]._serialized_end =
|
80
|
-
_globals["_GETDESIREDEXECUTORSTATESREQUEST"]._serialized_start =
|
81
|
-
_globals["_GETDESIREDEXECUTORSTATESREQUEST"]._serialized_end =
|
82
|
-
_globals["_DESIREDEXECUTORSTATE"]._serialized_start =
|
83
|
-
_globals["_DESIREDEXECUTORSTATE"]._serialized_end =
|
84
|
-
_globals["_TASKRESULT"]._serialized_start =
|
85
|
-
_globals["_TASKRESULT"]._serialized_end =
|
86
|
-
_globals["_EXECUTORAPI"]._serialized_start =
|
87
|
-
_globals["_EXECUTORAPI"]._serialized_end =
|
49
|
+
_globals["_DATAPAYLOAD"]._serialized_end = 322
|
50
|
+
_globals["_GPURESOURCES"]._serialized_start = 324
|
51
|
+
_globals["_GPURESOURCES"]._serialized_end = 425
|
52
|
+
_globals["_HOSTRESOURCES"]._serialized_start = 428
|
53
|
+
_globals["_HOSTRESOURCES"]._serialized_end = 622
|
54
|
+
_globals["_ALLOWEDFUNCTION"]._serialized_start = 625
|
55
|
+
_globals["_ALLOWEDFUNCTION"]._serialized_end = 812
|
56
|
+
_globals["_FUNCTIONEXECUTORRESOURCES"]._serialized_start = 815
|
57
|
+
_globals["_FUNCTIONEXECUTORRESOURCES"]._serialized_end = 1031
|
58
|
+
_globals["_FUNCTIONEXECUTORDESCRIPTION"]._serialized_start = 1034
|
59
|
+
_globals["_FUNCTIONEXECUTORDESCRIPTION"]._serialized_end = 1597
|
60
|
+
_globals["_FUNCTIONEXECUTORSTATE"]._serialized_start = 1600
|
61
|
+
_globals["_FUNCTIONEXECUTORSTATE"]._serialized_end = 1935
|
62
|
+
_globals["_FUNCTIONEXECUTORUPDATE"]._serialized_start = 1938
|
63
|
+
_globals["_FUNCTIONEXECUTORUPDATE"]._serialized_end = 2206
|
64
|
+
_globals["_EXECUTORSTATE"]._serialized_start = 2209
|
65
|
+
_globals["_EXECUTORSTATE"]._serialized_end = 2927
|
66
|
+
_globals["_EXECUTORSTATE_LABELSENTRY"]._serialized_start = 2740
|
67
|
+
_globals["_EXECUTORSTATE_LABELSENTRY"]._serialized_end = 2785
|
68
|
+
_globals["_EXECUTORUPDATE"]._serialized_start = 2930
|
69
|
+
_globals["_EXECUTORUPDATE"]._serialized_end = 3115
|
70
|
+
_globals["_REPORTEXECUTORSTATEREQUEST"]._serialized_start = 3118
|
71
|
+
_globals["_REPORTEXECUTORSTATEREQUEST"]._serialized_end = 3309
|
72
|
+
_globals["_REPORTEXECUTORSTATERESPONSE"]._serialized_start = 3311
|
73
|
+
_globals["_REPORTEXECUTORSTATERESPONSE"]._serialized_end = 3340
|
74
|
+
_globals["_TASKRETRYPOLICY"]._serialized_start = 3343
|
75
|
+
_globals["_TASKRETRYPOLICY"]._serialized_end = 3550
|
76
|
+
_globals["_TASK"]._serialized_start = 3553
|
77
|
+
_globals["_TASK"]._serialized_end = 4225
|
78
|
+
_globals["_TASKALLOCATION"]._serialized_start = 4228
|
79
|
+
_globals["_TASKALLOCATION"]._serialized_end = 4401
|
80
|
+
_globals["_GETDESIREDEXECUTORSTATESREQUEST"]._serialized_start = 4403
|
81
|
+
_globals["_GETDESIREDEXECUTORSTATESREQUEST"]._serialized_end = 4478
|
82
|
+
_globals["_DESIREDEXECUTORSTATE"]._serialized_start = 4481
|
83
|
+
_globals["_DESIREDEXECUTORSTATE"]._serialized_end = 4666
|
84
|
+
_globals["_TASKRESULT"]._serialized_start = 4669
|
85
|
+
_globals["_TASKRESULT"]._serialized_end = 5513
|
86
|
+
_globals["_EXECUTORAPI"]._serialized_start = 7255
|
87
|
+
_globals["_EXECUTORAPI"]._serialized_end = 7510
|
88
88
|
# @@protoc_insertion_point(module_scope)
|
@@ -138,17 +138,19 @@ TASK_FAILURE_REASON_TASK_CANCELLED: TaskFailureReason
|
|
138
138
|
TASK_FAILURE_REASON_FUNCTION_EXECUTOR_TERMINATED: TaskFailureReason
|
139
139
|
|
140
140
|
class DataPayload(_message.Message):
|
141
|
-
__slots__ = ("size", "sha256_hash", "uri", "encoding", "encoding_version")
|
141
|
+
__slots__ = ("size", "sha256_hash", "uri", "encoding", "encoding_version", "offset")
|
142
142
|
SIZE_FIELD_NUMBER: _ClassVar[int]
|
143
143
|
SHA256_HASH_FIELD_NUMBER: _ClassVar[int]
|
144
144
|
URI_FIELD_NUMBER: _ClassVar[int]
|
145
145
|
ENCODING_FIELD_NUMBER: _ClassVar[int]
|
146
146
|
ENCODING_VERSION_FIELD_NUMBER: _ClassVar[int]
|
147
|
+
OFFSET_FIELD_NUMBER: _ClassVar[int]
|
147
148
|
size: int
|
148
149
|
sha256_hash: str
|
149
150
|
uri: str
|
150
151
|
encoding: DataPayloadEncoding
|
151
152
|
encoding_version: int
|
153
|
+
offset: int
|
152
154
|
def __init__(
|
153
155
|
self,
|
154
156
|
size: _Optional[int] = ...,
|
@@ -156,6 +158,7 @@ class DataPayload(_message.Message):
|
|
156
158
|
uri: _Optional[str] = ...,
|
157
159
|
encoding: _Optional[_Union[DataPayloadEncoding, str]] = ...,
|
158
160
|
encoding_version: _Optional[int] = ...,
|
161
|
+
offset: _Optional[int] = ...,
|
159
162
|
) -> None: ...
|
160
163
|
|
161
164
|
class GPUResources(_message.Message):
|
@@ -449,6 +452,7 @@ class Task(_message.Message):
|
|
449
452
|
"reducer_input",
|
450
453
|
"output_payload_uri_prefix",
|
451
454
|
"retry_policy",
|
455
|
+
"invocation_error_payload_uri_prefix",
|
452
456
|
)
|
453
457
|
ID_FIELD_NUMBER: _ClassVar[int]
|
454
458
|
NAMESPACE_FIELD_NUMBER: _ClassVar[int]
|
@@ -461,6 +465,7 @@ class Task(_message.Message):
|
|
461
465
|
REDUCER_INPUT_FIELD_NUMBER: _ClassVar[int]
|
462
466
|
OUTPUT_PAYLOAD_URI_PREFIX_FIELD_NUMBER: _ClassVar[int]
|
463
467
|
RETRY_POLICY_FIELD_NUMBER: _ClassVar[int]
|
468
|
+
INVOCATION_ERROR_PAYLOAD_URI_PREFIX_FIELD_NUMBER: _ClassVar[int]
|
464
469
|
id: str
|
465
470
|
namespace: str
|
466
471
|
graph_name: str
|
@@ -472,6 +477,7 @@ class Task(_message.Message):
|
|
472
477
|
reducer_input: DataPayload
|
473
478
|
output_payload_uri_prefix: str
|
474
479
|
retry_policy: TaskRetryPolicy
|
480
|
+
invocation_error_payload_uri_prefix: str
|
475
481
|
def __init__(
|
476
482
|
self,
|
477
483
|
id: _Optional[str] = ...,
|
@@ -485,6 +491,7 @@ class Task(_message.Message):
|
|
485
491
|
reducer_input: _Optional[_Union[DataPayload, _Mapping]] = ...,
|
486
492
|
output_payload_uri_prefix: _Optional[str] = ...,
|
487
493
|
retry_policy: _Optional[_Union[TaskRetryPolicy, _Mapping]] = ...,
|
494
|
+
invocation_error_payload_uri_prefix: _Optional[str] = ...,
|
488
495
|
) -> None: ...
|
489
496
|
|
490
497
|
class TaskAllocation(_message.Message):
|
@@ -1,20 +1,18 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: indexify
|
3
|
-
Version: 0.4.
|
3
|
+
Version: 0.4.23
|
4
4
|
Summary: Open Source Indexify components and helper tools
|
5
5
|
Home-page: https://github.com/tensorlakeai/indexify
|
6
6
|
License: Apache 2.0
|
7
7
|
Author: Tensorlake Inc.
|
8
8
|
Author-email: support@tensorlake.ai
|
9
|
-
Requires-Python: >=3.
|
9
|
+
Requires-Python: >=3.12,<4.0
|
10
10
|
Classifier: License :: Other/Proprietary License
|
11
11
|
Classifier: Programming Language :: Python :: 3
|
12
|
-
Classifier: Programming Language :: Python :: 3.10
|
13
|
-
Classifier: Programming Language :: Python :: 3.11
|
14
12
|
Classifier: Programming Language :: Python :: 3.12
|
15
13
|
Classifier: Programming Language :: Python :: 3.13
|
16
|
-
Requires-Dist: aiohttp (>=3.12.
|
17
|
-
Requires-Dist: boto3 (>=1.
|
14
|
+
Requires-Dist: aiohttp (>=3.12.15,<4.0.0)
|
15
|
+
Requires-Dist: boto3 (>=1.40.6,<2.0.0)
|
18
16
|
Requires-Dist: docker (>=7.1.0,<8.0.0)
|
19
17
|
Requires-Dist: httpx[http2] (==0.27.2)
|
20
18
|
Requires-Dist: nanoid (>=2.0.0,<3.0.0)
|
@@ -22,7 +20,8 @@ Requires-Dist: prometheus-client (>=0.22.1,<0.23.0)
|
|
22
20
|
Requires-Dist: psutil (>=7.0.0,<8.0.0)
|
23
21
|
Requires-Dist: pydantic (>=2.11,<3.0)
|
24
22
|
Requires-Dist: requests (>=2.32.4,<3.0.0)
|
25
|
-
Requires-Dist:
|
23
|
+
Requires-Dist: structlog (==25.4.0)
|
24
|
+
Requires-Dist: tensorlake (==0.2.39)
|
26
25
|
Requires-Dist: urllib3 (>=2.5.0,<3.0.0)
|
27
26
|
Project-URL: Repository, https://github.com/tensorlakeai/indexify
|
28
27
|
Description-Content-Type: text/markdown
|