indexify 0.4.26__py3-none-any.whl → 0.4.28__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/executor/function_executor/function_executor.py +4 -4
- indexify/executor/function_executor_controller/aio_utils.py +26 -0
- indexify/executor/function_executor_controller/create_function_executor.py +16 -3
- indexify/executor/function_executor_controller/function_executor_controller.py +19 -13
- indexify/executor/function_executor_controller/message_validators.py +1 -0
- indexify/executor/function_executor_controller/prepare_task.py +2 -2
- indexify/executor/function_executor_controller/run_task.py +3 -3
- indexify/executor/function_executor_controller/terminate_function_executor.py +7 -3
- indexify/executor/state_reconciler.py +2 -0
- indexify/proto/executor_api.proto +1 -1
- indexify/proto/executor_api_pb2.py +44 -44
- indexify/proto/executor_api_pb2.pyi +4 -4
- {indexify-0.4.26.dist-info → indexify-0.4.28.dist-info}/METADATA +4 -4
- {indexify-0.4.26.dist-info → indexify-0.4.28.dist-info}/RECORD +16 -15
- {indexify-0.4.26.dist-info → indexify-0.4.28.dist-info}/WHEEL +0 -0
- {indexify-0.4.26.dist-info → indexify-0.4.28.dist-info}/entry_points.txt +0 -0
@@ -308,10 +308,7 @@ async def _initialize_server(
|
|
308
308
|
customer_code_timeout_sec: float,
|
309
309
|
logger: Any,
|
310
310
|
) -> FunctionExecutorInitializationResult:
|
311
|
-
with (
|
312
|
-
metric_initialize_rpc_errors.count_exceptions(),
|
313
|
-
metric_initialize_rpc_latency.time(),
|
314
|
-
):
|
311
|
+
with metric_initialize_rpc_latency.time():
|
315
312
|
try:
|
316
313
|
initialize_response: InitializeResponse = await stub.initialize(
|
317
314
|
initialize_request,
|
@@ -322,6 +319,9 @@ async def _initialize_server(
|
|
322
319
|
response=initialize_response,
|
323
320
|
)
|
324
321
|
except grpc.aio.AioRpcError as e:
|
322
|
+
# Increment the metric manually as we're not raising this exception.
|
323
|
+
metric_initialize_rpc_errors.inc()
|
324
|
+
metric_create_errors.inc()
|
325
325
|
if e.code() == grpc.StatusCode.DEADLINE_EXCEEDED:
|
326
326
|
return FunctionExecutorInitializationResult(
|
327
327
|
is_timeout=True,
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import asyncio
|
2
|
+
from typing import Any, Optional
|
3
|
+
|
4
|
+
|
5
|
+
async def shielded_await(task: asyncio.Task, logger: Any) -> Any:
|
6
|
+
"""Awaits the supplied task and ignores cancellations until it's done.
|
7
|
+
|
8
|
+
Cancels itself if the task is cancelled once the task is done.
|
9
|
+
"""
|
10
|
+
cancelled_error: Optional[asyncio.CancelledError] = None
|
11
|
+
|
12
|
+
while not task.done():
|
13
|
+
try:
|
14
|
+
# Shield to make sure that task is not cancelled.
|
15
|
+
await asyncio.shield(task)
|
16
|
+
except asyncio.CancelledError as e:
|
17
|
+
logger.info(
|
18
|
+
"ignoring aio task cancellation until it's finished",
|
19
|
+
task_name=task.get_name(),
|
20
|
+
)
|
21
|
+
cancelled_error = e
|
22
|
+
|
23
|
+
if cancelled_error is not None:
|
24
|
+
raise cancelled_error
|
25
|
+
else:
|
26
|
+
return task.result()
|
@@ -25,6 +25,7 @@ from indexify.proto.executor_api_pb2 import (
|
|
25
25
|
FunctionExecutorTerminationReason,
|
26
26
|
)
|
27
27
|
|
28
|
+
from .aio_utils import shielded_await
|
28
29
|
from .downloads import download_graph
|
29
30
|
from .events import FunctionExecutorCreated
|
30
31
|
|
@@ -82,8 +83,13 @@ async def create_function_executor(
|
|
82
83
|
logger=logger,
|
83
84
|
)
|
84
85
|
if fe_created_event.function_executor is None:
|
86
|
+
# _to_fe_created_event doesn't like the FE, destroy it.
|
87
|
+
fe_destroy_task: asyncio.Task = asyncio.create_task(
|
88
|
+
function_executor.destroy(),
|
89
|
+
name=f"destroy function executor {function_executor_description.id}",
|
90
|
+
)
|
85
91
|
try:
|
86
|
-
await
|
92
|
+
await shielded_await(fe_destroy_task, logger)
|
87
93
|
except asyncio.CancelledError:
|
88
94
|
# destroy() finished due to the shield, return fe_created_event.
|
89
95
|
pass
|
@@ -230,9 +236,16 @@ async def _create_function_executor(
|
|
230
236
|
)
|
231
237
|
)
|
232
238
|
return (function_executor, result)
|
233
|
-
except BaseException:
|
239
|
+
except BaseException:
|
240
|
+
fe_destroy_task: asyncio.Task = asyncio.create_task(
|
241
|
+
function_executor.destroy(),
|
242
|
+
name=f"destroy function executor {function_executor_description.id}",
|
243
|
+
)
|
234
244
|
# This await is a cancellation point, need to shield to ensure we destroyed the FE.
|
235
|
-
await
|
245
|
+
await shielded_await(
|
246
|
+
fe_destroy_task,
|
247
|
+
logger,
|
248
|
+
)
|
236
249
|
raise
|
237
250
|
|
238
251
|
|
@@ -137,7 +137,7 @@ class FunctionExecutorController:
|
|
137
137
|
self._tasks: Dict[str, TaskInfo] = {}
|
138
138
|
# Tracking of task execution on Function Executor.
|
139
139
|
self._runnable_tasks: List[TaskInfo] = []
|
140
|
-
self.
|
140
|
+
self._running_tasks: List[TaskInfo] = []
|
141
141
|
|
142
142
|
def function_executor_id(self) -> str:
|
143
143
|
return self._fe_description.id
|
@@ -407,7 +407,7 @@ class FunctionExecutorController:
|
|
407
407
|
"""Spawns an aio task for the supplied coroutine.
|
408
408
|
|
409
409
|
The coroutine should return an event that will be added to the FE controller events.
|
410
|
-
The coroutine should not raise any exceptions including BaseException
|
410
|
+
The coroutine should not raise any exceptions including BaseException.
|
411
411
|
on_exception event will be added to the FE controller events if the aio task raises an unexpected exception.
|
412
412
|
on_exception is required to not silently stall the task processing due to an unexpected exception.
|
413
413
|
If task_info is not None, the aio task will be associated with the task_info while the aio task is running.
|
@@ -422,6 +422,14 @@ class FunctionExecutorController:
|
|
422
422
|
async def coroutine_wrapper() -> None:
|
423
423
|
try:
|
424
424
|
self._add_event(await aio, source=aio_task_name)
|
425
|
+
except asyncio.CancelledError:
|
426
|
+
# Workaround for scenario when coroutine_wrapper gets cancelled at `await aio` before aio starts.
|
427
|
+
# In this case aio doesn't handle the cancellation and doesn't return the right event.
|
428
|
+
# A fix for this is to cancel aio instead of coroutine_wrapper. We'll need to keep
|
429
|
+
# references to both coroutine_wrapper and aio, cause event loop uses weak references to
|
430
|
+
# tasks. Not doing this for now. Using on_exception is good enough because not started aios don't
|
431
|
+
# need to do anything special on cancellation.
|
432
|
+
self._add_event(on_exception, source=aio_task_name)
|
425
433
|
except BaseException as e:
|
426
434
|
logger.error(
|
427
435
|
"unexpected exception in aio task",
|
@@ -530,11 +538,9 @@ class FunctionExecutorController:
|
|
530
538
|
|
531
539
|
self._start_termination(
|
532
540
|
fe_termination_reason=FunctionExecutorTerminationReason.FUNCTION_EXECUTOR_TERMINATION_REASON_UNHEALTHY,
|
533
|
-
allocation_ids_caused_termination=
|
534
|
-
|
535
|
-
|
536
|
-
else [self._running_task.allocation.allocation_id]
|
537
|
-
),
|
541
|
+
allocation_ids_caused_termination=[
|
542
|
+
task.allocation.allocation_id for task in self._running_tasks
|
543
|
+
],
|
538
544
|
)
|
539
545
|
|
540
546
|
def _handle_event_task_preparation_finished(
|
@@ -593,7 +599,7 @@ class FunctionExecutorController:
|
|
593
599
|
|
594
600
|
if (
|
595
601
|
self._internal_state == _FE_CONTROLLER_STATE.RUNNING
|
596
|
-
and self.
|
602
|
+
and len(self._running_tasks) == self._fe_description.max_concurrency
|
597
603
|
):
|
598
604
|
return
|
599
605
|
|
@@ -618,13 +624,13 @@ class FunctionExecutorController:
|
|
618
624
|
_FE_CONTROLLER_STATE.TERMINATED,
|
619
625
|
]:
|
620
626
|
if task_info.output is None:
|
621
|
-
# The output
|
627
|
+
# The output could be set already by FE startup failure handler.
|
622
628
|
task_info.output = TaskOutput.function_executor_terminated(
|
623
629
|
task_info.allocation
|
624
630
|
)
|
625
631
|
self._start_task_finalization(task_info)
|
626
632
|
elif self._internal_state == _FE_CONTROLLER_STATE.RUNNING:
|
627
|
-
self.
|
633
|
+
self._running_tasks.append(task_info)
|
628
634
|
next_aio = run_task_on_function_executor(
|
629
635
|
task_info=task_info,
|
630
636
|
function_executor=self._fe,
|
@@ -659,7 +665,8 @@ class FunctionExecutorController:
|
|
659
665
|
|
660
666
|
Doesn't raise any exceptions. Doesn't block.
|
661
667
|
"""
|
662
|
-
|
668
|
+
task_info: TaskInfo = event.task_info
|
669
|
+
self._running_tasks.remove(task_info)
|
663
670
|
|
664
671
|
if event.function_executor_termination_reason is None:
|
665
672
|
self._add_event(
|
@@ -673,7 +680,6 @@ class FunctionExecutorController:
|
|
673
680
|
],
|
674
681
|
)
|
675
682
|
|
676
|
-
task_info: TaskInfo = event.task_info
|
677
683
|
if task_info.output is None:
|
678
684
|
# `run_task_on_function_executor` guarantees that the output is set in
|
679
685
|
# all cases including task cancellations. If this didn't happen then some
|
@@ -936,7 +942,7 @@ def _to_data_payload_encoding(
|
|
936
942
|
return DataPayloadEncoding.DATA_PAYLOAD_ENCODING_UTF8_TEXT
|
937
943
|
else:
|
938
944
|
logger.error(
|
939
|
-
"
|
945
|
+
"unexpected encoding for SerializedObject",
|
940
946
|
encoding=SerializedObjectEncoding.Name(encoding),
|
941
947
|
)
|
942
948
|
return DataPayloadEncoding.DATA_PAYLOAD_ENCODING_UNKNOWN
|
@@ -25,6 +25,7 @@ def validate_function_executor_description(
|
|
25
25
|
validator.required_field("customer_code_timeout_ms")
|
26
26
|
validator.required_field("graph")
|
27
27
|
validator.required_field("resources")
|
28
|
+
validator.required_field("max_concurrency")
|
28
29
|
|
29
30
|
_validate_data_payload(function_executor_description.graph)
|
30
31
|
|
@@ -65,7 +65,7 @@ async def prepare_task(
|
|
65
65
|
logger=logger,
|
66
66
|
)
|
67
67
|
logger.info(
|
68
|
-
"
|
68
|
+
"task was prepared for execution",
|
69
69
|
duration=time.monotonic() - start_time,
|
70
70
|
)
|
71
71
|
return TaskPreparationFinished(
|
@@ -76,7 +76,7 @@ async def prepare_task(
|
|
76
76
|
return TaskPreparationFinished(task_info=task_info, is_success=False)
|
77
77
|
except BaseException as e:
|
78
78
|
logger.error(
|
79
|
-
"
|
79
|
+
"failed to prepare task for execution",
|
80
80
|
exc_info=e,
|
81
81
|
duration=time.monotonic() - start_time,
|
82
82
|
)
|
@@ -176,7 +176,7 @@ async def run_task_on_function_executor(
|
|
176
176
|
# This is an unexpected exception; we believe that this
|
177
177
|
# indicates an internal error.
|
178
178
|
logger.error(
|
179
|
-
"
|
179
|
+
"unexpected internal error during task lifecycle RPC sequence", exc_info=e
|
180
180
|
)
|
181
181
|
task_info.output = TaskOutput.internal_error(
|
182
182
|
allocation=task_info.allocation,
|
@@ -357,7 +357,7 @@ def _to_task_outcome_code(
|
|
357
357
|
return TaskOutcomeCode.TASK_OUTCOME_CODE_FAILURE
|
358
358
|
else:
|
359
359
|
logger.warning(
|
360
|
-
"
|
360
|
+
"unknown TaskOutcomeCode received from Function Executor",
|
361
361
|
value=FETaskOutcomeCode.Name(fe_task_outcome_code),
|
362
362
|
)
|
363
363
|
return TaskOutcomeCode.TASK_OUTCOME_CODE_UNKNOWN
|
@@ -379,7 +379,7 @@ def _to_task_failure_reason(
|
|
379
379
|
return TaskFailureReason.TASK_FAILURE_REASON_INTERNAL_ERROR
|
380
380
|
else:
|
381
381
|
logger.warning(
|
382
|
-
"
|
382
|
+
"unknown TaskFailureReason received from Function Executor",
|
383
383
|
value=FETaskFailureReason.Name(fe_task_failure_reason),
|
384
384
|
)
|
385
385
|
return TaskFailureReason.TASK_FAILURE_REASON_UNKNOWN
|
@@ -4,6 +4,7 @@ from typing import Any, List, Optional
|
|
4
4
|
from indexify.executor.function_executor.function_executor import FunctionExecutor
|
5
5
|
from indexify.proto.executor_api_pb2 import FunctionExecutorTerminationReason
|
6
6
|
|
7
|
+
from .aio_utils import shielded_await
|
7
8
|
from .events import FunctionExecutorTerminated
|
8
9
|
|
9
10
|
|
@@ -18,7 +19,7 @@ async def terminate_function_executor(
|
|
18
19
|
|
19
20
|
The supplied lock is used to ensure that if a destroy operation is in progress,
|
20
21
|
then another caller won't return immediately assuming that the destroy is complete
|
21
|
-
due to its idempotency.
|
22
|
+
due to its idempotency. Ignores cancellations while destroying the function executor.
|
22
23
|
|
23
24
|
Doesn't raise any exceptions.
|
24
25
|
"""
|
@@ -29,9 +30,12 @@ async def terminate_function_executor(
|
|
29
30
|
logger.info(
|
30
31
|
"destroying function executor",
|
31
32
|
)
|
33
|
+
fe_destroy_task: asyncio.Task = asyncio.create_task(
|
34
|
+
function_executor.destroy(),
|
35
|
+
name="destroy function executor",
|
36
|
+
)
|
32
37
|
try:
|
33
|
-
|
34
|
-
await asyncio.shield(function_executor.destroy())
|
38
|
+
await shielded_await(fe_destroy_task, logger)
|
35
39
|
except asyncio.CancelledError:
|
36
40
|
# We actually destroyed the FE so we can return without error.
|
37
41
|
pass
|
@@ -193,6 +193,8 @@ class ExecutorStateReconciler:
|
|
193
193
|
timeout=_DESIRED_EXECUTOR_STATES_TIMEOUT_SEC,
|
194
194
|
)
|
195
195
|
except asyncio.TimeoutError:
|
196
|
+
# These log lines really help to debug networking issues. When there are
|
197
|
+
# no networking issues and the fleet is not idle we don't get excessive logging here.
|
196
198
|
self._logger.info(
|
197
199
|
f"No desired state received from Server within {_DESIRED_EXECUTOR_STATES_TIMEOUT_SEC} sec, recreating the stream to ensure it is healthy"
|
198
200
|
)
|
@@ -112,7 +112,6 @@ message FunctionExecutorDescription {
|
|
112
112
|
optional string graph_name = 3;
|
113
113
|
optional string graph_version = 4;
|
114
114
|
optional string function_name = 5;
|
115
|
-
optional string image_uri = 6;
|
116
115
|
repeated string secret_names = 7;
|
117
116
|
// Timeout for customer code duration during FE creation.
|
118
117
|
optional uint32 customer_code_timeout_ms = 9;
|
@@ -123,6 +122,7 @@ message FunctionExecutorDescription {
|
|
123
122
|
// Starts with "file://"" prefix followed by an absolute directory path if the data is stored on a local file system.
|
124
123
|
// Deprecated: most probably going to be removed once external FE logs ingestion pipeline gets implemented.
|
125
124
|
optional string output_payload_uri_prefix = 12;
|
125
|
+
optional uint32 max_concurrency = 13;
|
126
126
|
}
|
127
127
|
|
128
128
|
message FunctionExecutorState {
|
@@ -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"\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'
|
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"\xbf\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\x14\n\x0csecret_names\x18\x07 \x03(\t\x12%\n\x18\x63ustomer_code_timeout_ms\x18\t \x01(\rH\x05\x88\x01\x01\x12\x30\n\x05graph\x18\n \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x06\x88\x01\x01\x12\x42\n\tresources\x18\x0b \x01(\x0b\x32*.executor_api_pb.FunctionExecutorResourcesH\x07\x88\x01\x01\x12&\n\x19output_payload_uri_prefix\x18\x0c \x01(\tH\x08\x88\x01\x01\x12\x1c\n\x0fmax_concurrency\x18\r \x01(\rH\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\x1b\n\x19_customer_code_timeout_msB\x08\n\x06_graphB\x0c\n\n_resourcesB\x1c\n\x1a_output_payload_uri_prefixB\x12\n\x10_max_concurrency"\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,20 +31,20 @@ 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 = 5528
|
35
|
+
_globals["_DATAPAYLOADENCODING"]._serialized_end = 5737
|
36
|
+
_globals["_GPUMODEL"]._serialized_start = 5740
|
37
|
+
_globals["_GPUMODEL"]._serialized_end = 5954
|
38
|
+
_globals["_FUNCTIONEXECUTORSTATUS"]._serialized_start = 5957
|
39
|
+
_globals["_FUNCTIONEXECUTORSTATUS"]._serialized_end = 6136
|
40
|
+
_globals["_FUNCTIONEXECUTORTERMINATIONREASON"]._serialized_start = 6139
|
41
|
+
_globals["_FUNCTIONEXECUTORTERMINATIONREASON"]._serialized_end = 6671
|
42
|
+
_globals["_EXECUTORSTATUS"]._serialized_start = 6674
|
43
|
+
_globals["_EXECUTORSTATUS"]._serialized_end = 6839
|
44
|
+
_globals["_TASKOUTCOMECODE"]._serialized_start = 6841
|
45
|
+
_globals["_TASKOUTCOMECODE"]._serialized_end = 6951
|
46
|
+
_globals["_TASKFAILUREREASON"]._serialized_start = 6954
|
47
|
+
_globals["_TASKFAILUREREASON"]._serialized_end = 7264
|
48
48
|
_globals["_DATAPAYLOAD"]._serialized_start = 55
|
49
49
|
_globals["_DATAPAYLOAD"]._serialized_end = 322
|
50
50
|
_globals["_GPURESOURCES"]._serialized_start = 324
|
@@ -56,33 +56,33 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
56
56
|
_globals["_FUNCTIONEXECUTORRESOURCES"]._serialized_start = 815
|
57
57
|
_globals["_FUNCTIONEXECUTORRESOURCES"]._serialized_end = 1031
|
58
58
|
_globals["_FUNCTIONEXECUTORDESCRIPTION"]._serialized_start = 1034
|
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 =
|
59
|
+
_globals["_FUNCTIONEXECUTORDESCRIPTION"]._serialized_end = 1609
|
60
|
+
_globals["_FUNCTIONEXECUTORSTATE"]._serialized_start = 1612
|
61
|
+
_globals["_FUNCTIONEXECUTORSTATE"]._serialized_end = 1947
|
62
|
+
_globals["_FUNCTIONEXECUTORUPDATE"]._serialized_start = 1950
|
63
|
+
_globals["_FUNCTIONEXECUTORUPDATE"]._serialized_end = 2218
|
64
|
+
_globals["_EXECUTORSTATE"]._serialized_start = 2221
|
65
|
+
_globals["_EXECUTORSTATE"]._serialized_end = 2939
|
66
|
+
_globals["_EXECUTORSTATE_LABELSENTRY"]._serialized_start = 2752
|
67
|
+
_globals["_EXECUTORSTATE_LABELSENTRY"]._serialized_end = 2797
|
68
|
+
_globals["_EXECUTORUPDATE"]._serialized_start = 2942
|
69
|
+
_globals["_EXECUTORUPDATE"]._serialized_end = 3127
|
70
|
+
_globals["_REPORTEXECUTORSTATEREQUEST"]._serialized_start = 3130
|
71
|
+
_globals["_REPORTEXECUTORSTATEREQUEST"]._serialized_end = 3321
|
72
|
+
_globals["_REPORTEXECUTORSTATERESPONSE"]._serialized_start = 3323
|
73
|
+
_globals["_REPORTEXECUTORSTATERESPONSE"]._serialized_end = 3352
|
74
|
+
_globals["_TASKRETRYPOLICY"]._serialized_start = 3355
|
75
|
+
_globals["_TASKRETRYPOLICY"]._serialized_end = 3562
|
76
|
+
_globals["_TASK"]._serialized_start = 3565
|
77
|
+
_globals["_TASK"]._serialized_end = 4237
|
78
|
+
_globals["_TASKALLOCATION"]._serialized_start = 4240
|
79
|
+
_globals["_TASKALLOCATION"]._serialized_end = 4413
|
80
|
+
_globals["_GETDESIREDEXECUTORSTATESREQUEST"]._serialized_start = 4415
|
81
|
+
_globals["_GETDESIREDEXECUTORSTATESREQUEST"]._serialized_end = 4490
|
82
|
+
_globals["_DESIREDEXECUTORSTATE"]._serialized_start = 4493
|
83
|
+
_globals["_DESIREDEXECUTORSTATE"]._serialized_end = 4678
|
84
|
+
_globals["_TASKRESULT"]._serialized_start = 4681
|
85
|
+
_globals["_TASKRESULT"]._serialized_end = 5525
|
86
|
+
_globals["_EXECUTORAPI"]._serialized_start = 7267
|
87
|
+
_globals["_EXECUTORAPI"]._serialized_end = 7522
|
88
88
|
# @@protoc_insertion_point(module_scope)
|
@@ -232,35 +232,35 @@ class FunctionExecutorDescription(_message.Message):
|
|
232
232
|
"graph_name",
|
233
233
|
"graph_version",
|
234
234
|
"function_name",
|
235
|
-
"image_uri",
|
236
235
|
"secret_names",
|
237
236
|
"customer_code_timeout_ms",
|
238
237
|
"graph",
|
239
238
|
"resources",
|
240
239
|
"output_payload_uri_prefix",
|
240
|
+
"max_concurrency",
|
241
241
|
)
|
242
242
|
ID_FIELD_NUMBER: _ClassVar[int]
|
243
243
|
NAMESPACE_FIELD_NUMBER: _ClassVar[int]
|
244
244
|
GRAPH_NAME_FIELD_NUMBER: _ClassVar[int]
|
245
245
|
GRAPH_VERSION_FIELD_NUMBER: _ClassVar[int]
|
246
246
|
FUNCTION_NAME_FIELD_NUMBER: _ClassVar[int]
|
247
|
-
IMAGE_URI_FIELD_NUMBER: _ClassVar[int]
|
248
247
|
SECRET_NAMES_FIELD_NUMBER: _ClassVar[int]
|
249
248
|
CUSTOMER_CODE_TIMEOUT_MS_FIELD_NUMBER: _ClassVar[int]
|
250
249
|
GRAPH_FIELD_NUMBER: _ClassVar[int]
|
251
250
|
RESOURCES_FIELD_NUMBER: _ClassVar[int]
|
252
251
|
OUTPUT_PAYLOAD_URI_PREFIX_FIELD_NUMBER: _ClassVar[int]
|
252
|
+
MAX_CONCURRENCY_FIELD_NUMBER: _ClassVar[int]
|
253
253
|
id: str
|
254
254
|
namespace: str
|
255
255
|
graph_name: str
|
256
256
|
graph_version: str
|
257
257
|
function_name: str
|
258
|
-
image_uri: str
|
259
258
|
secret_names: _containers.RepeatedScalarFieldContainer[str]
|
260
259
|
customer_code_timeout_ms: int
|
261
260
|
graph: DataPayload
|
262
261
|
resources: FunctionExecutorResources
|
263
262
|
output_payload_uri_prefix: str
|
263
|
+
max_concurrency: int
|
264
264
|
def __init__(
|
265
265
|
self,
|
266
266
|
id: _Optional[str] = ...,
|
@@ -268,12 +268,12 @@ class FunctionExecutorDescription(_message.Message):
|
|
268
268
|
graph_name: _Optional[str] = ...,
|
269
269
|
graph_version: _Optional[str] = ...,
|
270
270
|
function_name: _Optional[str] = ...,
|
271
|
-
image_uri: _Optional[str] = ...,
|
272
271
|
secret_names: _Optional[_Iterable[str]] = ...,
|
273
272
|
customer_code_timeout_ms: _Optional[int] = ...,
|
274
273
|
graph: _Optional[_Union[DataPayload, _Mapping]] = ...,
|
275
274
|
resources: _Optional[_Union[FunctionExecutorResources, _Mapping]] = ...,
|
276
275
|
output_payload_uri_prefix: _Optional[str] = ...,
|
276
|
+
max_concurrency: _Optional[int] = ...,
|
277
277
|
) -> None: ...
|
278
278
|
|
279
279
|
class FunctionExecutorState(_message.Message):
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: indexify
|
3
|
-
Version: 0.4.
|
3
|
+
Version: 0.4.28
|
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
|
@@ -14,16 +14,16 @@ Classifier: Programming Language :: Python :: 3.11
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.12
|
15
15
|
Classifier: Programming Language :: Python :: 3.13
|
16
16
|
Requires-Dist: aiohttp (>=3.12.15,<4.0.0)
|
17
|
-
Requires-Dist: boto3 (>=1.40.
|
17
|
+
Requires-Dist: boto3 (>=1.40.12,<2.0.0)
|
18
18
|
Requires-Dist: docker (>=7.1.0,<8.0.0)
|
19
19
|
Requires-Dist: httpx[http2] (==0.27.2)
|
20
20
|
Requires-Dist: nanoid (>=2.0.0,<3.0.0)
|
21
21
|
Requires-Dist: prometheus-client (>=0.22.1,<0.23.0)
|
22
22
|
Requires-Dist: psutil (>=7.0.0,<8.0.0)
|
23
23
|
Requires-Dist: pydantic (>=2.11,<3.0)
|
24
|
-
Requires-Dist: requests (>=2.32.
|
24
|
+
Requires-Dist: requests (>=2.32.5,<3.0.0)
|
25
25
|
Requires-Dist: structlog (==25.4.0)
|
26
|
-
Requires-Dist: tensorlake (==0.2.
|
26
|
+
Requires-Dist: tensorlake (==0.2.42)
|
27
27
|
Requires-Dist: urllib3 (>=2.5.0,<3.0.0)
|
28
28
|
Project-URL: Repository, https://github.com/tensorlakeai/indexify
|
29
29
|
Description-Content-Type: text/markdown
|
@@ -10,7 +10,7 @@ indexify/executor/blob_store/s3_blob_store.py,sha256=wJlDBTTaq48Vp1I0LvP2958b1Xe
|
|
10
10
|
indexify/executor/channel_manager.py,sha256=ihKfWJmUqQvh4UKXewZLzyJWW_f50P4fnwPqPonrozw,6651
|
11
11
|
indexify/executor/executor.py,sha256=rM7BmJDqC_YwdwPfDGFGiFO2WxOW3Nj8Z7rwRw8UcFk,6353
|
12
12
|
indexify/executor/function_allowlist.py,sha256=PCelCW6qIe_2sH11BCKr7LDqarRV5kwNsrfB2EV7Zwo,1772
|
13
|
-
indexify/executor/function_executor/function_executor.py,sha256=
|
13
|
+
indexify/executor/function_executor/function_executor.py,sha256=dTZ8y15ifu7GKmNLU-SQH5M3COa1_8ec_2439h67Pd8,12381
|
14
14
|
indexify/executor/function_executor/health_checker.py,sha256=IxE0jnC99K_lvnizFLjXqS1942H8-FNAN4AlhLIjg2Y,6373
|
15
15
|
indexify/executor/function_executor/invocation_state_client.py,sha256=q3YWnoTCYCtBrCOBlLd3b13_vwzibFOJJBHHami28Yc,11269
|
16
16
|
indexify/executor/function_executor/metrics/function_executor.py,sha256=TDksxLRJr-P9ZKhF2Orsaxzzb4lVIBxFEjd_9Zv53Ng,6313
|
@@ -22,27 +22,28 @@ indexify/executor/function_executor/server/function_executor_server_factory.py,s
|
|
22
22
|
indexify/executor/function_executor/server/subprocess_function_executor_server.py,sha256=JekDOqF7oFD4J6zcN3xB0Dxd1cgpEXMOsb_rKZOeBlI,668
|
23
23
|
indexify/executor/function_executor/server/subprocess_function_executor_server_factory.py,sha256=w5aGQPHWLpixlP9-BbZu6oL_muMA95-hr7WKVxiEL7Q,4303
|
24
24
|
indexify/executor/function_executor_controller/__init__.py,sha256=VPuuBEYOKf7OWyPPjy-jGOv-d5xJqHvkJfFT_oj-AsE,492
|
25
|
+
indexify/executor/function_executor_controller/aio_utils.py,sha256=nohPk9k38FpZ87y5jgbb-UhUNvf-GRETkyyRBp7WnVw,804
|
25
26
|
indexify/executor/function_executor_controller/completed_task_metrics.py,sha256=MhnC-ddgmTK4yTsuZxgTKnqZ-YSVeWn2EhbbiggsSKk,3664
|
26
|
-
indexify/executor/function_executor_controller/create_function_executor.py,sha256=
|
27
|
+
indexify/executor/function_executor_controller/create_function_executor.py,sha256=_VLmT9zmo0Hvt4K4WkC8PCB9qNgTv8k9QkwTSAOQRDU,11158
|
27
28
|
indexify/executor/function_executor_controller/debug_event_loop.py,sha256=VJOKe_c9HjIDVCjhMY3Yqyeq1tAM1eVa2chZa6CMf-U,1016
|
28
29
|
indexify/executor/function_executor_controller/downloads.py,sha256=B2dbaa6osp1_vCQ6WY_9znAca3Z2qqVzQAF2av3v8Pg,5304
|
29
30
|
indexify/executor/function_executor_controller/events.py,sha256=M3taTBSxHG5CYWXfvk-BPtcV9bX-VDmSQDaNdGKK7Hk,5633
|
30
31
|
indexify/executor/function_executor_controller/finalize_task.py,sha256=letfBqGXPTubvOfbRg7cvdgtvrwkSnSezx4XRknYvKM,6624
|
31
|
-
indexify/executor/function_executor_controller/function_executor_controller.py,sha256=
|
32
|
+
indexify/executor/function_executor_controller/function_executor_controller.py,sha256=euQWkm3JFKaZFE28hwr-3vnbBnlSQuQbd3R7zApkvIU,39810
|
32
33
|
indexify/executor/function_executor_controller/loggers.py,sha256=zEY2nt15gboX3SX6Kh1xjeCljZJZSE4lp27qNrg8yPY,3637
|
33
|
-
indexify/executor/function_executor_controller/message_validators.py,sha256=
|
34
|
+
indexify/executor/function_executor_controller/message_validators.py,sha256=24T3Nm8tkyo2XXlcIg6b2e0P5_M26O62jcI8o7nsnVo,3176
|
34
35
|
indexify/executor/function_executor_controller/metrics/completed_task_metrics.py,sha256=53EGBCLwCEV-RBBeyLPTElrtcveaEM0Fwxs9NmC1Hn8,2724
|
35
36
|
indexify/executor/function_executor_controller/metrics/downloads.py,sha256=G8UUDfnzmiK_26OvZYTqH0KgNb3kI-0TgzGLFEuSEFc,892
|
36
37
|
indexify/executor/function_executor_controller/metrics/finalize_task.py,sha256=KlJ9o3DQ8VSWNBpMrugr0CT7sSZm2J1LH6lvZhzsQ6E,743
|
37
38
|
indexify/executor/function_executor_controller/metrics/function_executor_controller.py,sha256=gyIZHbdsNSnrA6z4WDaRAunNolFrbbg1pa8JaL_ODNE,2666
|
38
39
|
indexify/executor/function_executor_controller/metrics/prepare_task.py,sha256=7nHuerFWGqRCRqtgpL3vJVs-DHwxwFhBZaGjrtfOlys,764
|
39
40
|
indexify/executor/function_executor_controller/metrics/run_task.py,sha256=ZFv_nw5_pKUJoTaavSyzdglQKW4uvC2XyK8S6xi9xLQ,1064
|
40
|
-
indexify/executor/function_executor_controller/prepare_task.py,sha256=
|
41
|
-
indexify/executor/function_executor_controller/run_task.py,sha256=
|
41
|
+
indexify/executor/function_executor_controller/prepare_task.py,sha256=EPdqidd4MpCvpvgTZKQsJJL3iwfhpwaz37_EY3z_XS0,9170
|
42
|
+
indexify/executor/function_executor_controller/run_task.py,sha256=eaESmOz7IQWFT6Q6VbZV_uSB3mjy47s4ihw2BBD3Oa4,15483
|
42
43
|
indexify/executor/function_executor_controller/task_info.py,sha256=ufhb4PvQuXyY4JUlddNyN2bJQdUeGlMTMIRlKz_WzXc,1015
|
43
44
|
indexify/executor/function_executor_controller/task_input.py,sha256=PHCzqpjzTzw4TJTn6wncon3P08EiTVRJazEYRbTqDu8,876
|
44
45
|
indexify/executor/function_executor_controller/task_output.py,sha256=_uf0Wi1K-kaKPXED1RmKQZ9rpmjXFA4ONLn6ZOj2-UE,7127
|
45
|
-
indexify/executor/function_executor_controller/terminate_function_executor.py,sha256=
|
46
|
+
indexify/executor/function_executor_controller/terminate_function_executor.py,sha256=GHkMEidd4zbkulFWAeLGX1HsXtZvPJXh4dEusgy2ioA,1731
|
46
47
|
indexify/executor/host_resources/host_resources.py,sha256=eUyP05EX7QdOtQ5vbX_KCpvnBS2B7fl06UWeF9Oigns,3813
|
47
48
|
indexify/executor/host_resources/nvidia_gpu.py,sha256=uTCkLXnozZSpax8VApt0QMMM9YcBUK9eggYpwmLz09I,3308
|
48
49
|
indexify/executor/host_resources/nvidia_gpu_allocator.py,sha256=AOcXKglLyRD-GrZzyCoi_oDRJoaOhFKWBSlUOxHeAP8,2114
|
@@ -60,13 +61,13 @@ indexify/executor/monitoring/metrics.py,sha256=5BpNqDBDQiL2K962WDPQU2eSo5zD6I9vF
|
|
60
61
|
indexify/executor/monitoring/prometheus_metrics_handler.py,sha256=KiGqSf7rkXTfbDwThyXFpFe2jnuZD5q-5SBP_0GDo8Y,591
|
61
62
|
indexify/executor/monitoring/server.py,sha256=yzdYhcxnmY6uTQUMt3vatF5jilN52ZtfFseOmHyQpTo,1254
|
62
63
|
indexify/executor/monitoring/startup_probe_handler.py,sha256=zXXsBU15SMlBx1bSFpxWDfed1VHtKKnwvLQ8-frpG98,425
|
63
|
-
indexify/executor/state_reconciler.py,sha256=
|
64
|
+
indexify/executor/state_reconciler.py,sha256=8l4O0IjovnQNI39AQsst4qPb2qFdEncZiEvVl8nLjYI,20248
|
64
65
|
indexify/executor/state_reporter.py,sha256=zf5UBhBZVv9SQ1Ju_bY8w6D_t1hBZ5YVXhjeFMEgRms,15208
|
65
|
-
indexify/proto/executor_api.proto,sha256=
|
66
|
-
indexify/proto/executor_api_pb2.py,sha256=
|
67
|
-
indexify/proto/executor_api_pb2.pyi,sha256
|
66
|
+
indexify/proto/executor_api.proto,sha256=YwLeLjyLHhs5qoWLA50uHY2KdKRGfBQBKZwE8VXmzeo,12871
|
67
|
+
indexify/proto/executor_api_pb2.py,sha256=vTG1-2Pp4OnTWFD4GYphgJ3cUbTbDjCOKstKrLBXB-E,16472
|
68
|
+
indexify/proto/executor_api_pb2.pyi,sha256=-6P-ef-fBJF0CTc4UucIzrDLCBVZpIEhEz2qhexvwjk,23175
|
68
69
|
indexify/proto/executor_api_pb2_grpc.py,sha256=u9GEQV4nm_GvApRxjVo806CkgBMBVReb5IVrcaDaliY,7520
|
69
|
-
indexify-0.4.
|
70
|
-
indexify-0.4.
|
71
|
-
indexify-0.4.
|
72
|
-
indexify-0.4.
|
70
|
+
indexify-0.4.28.dist-info/METADATA,sha256=gtwcTBq-IRRXsCSEXv4hO2SJuFWQyC_bTJ5MeJEV-f8,1390
|
71
|
+
indexify-0.4.28.dist-info/WHEEL,sha256=RaoafKOydTQ7I_I3JTrPCg6kUmTgtm4BornzOqyEfJ8,88
|
72
|
+
indexify-0.4.28.dist-info/entry_points.txt,sha256=rMJqbE5KPZIXTPIfAtVIM4zpUElqYVgEYd6i7N23zzg,49
|
73
|
+
indexify-0.4.28.dist-info/RECORD,,
|
File without changes
|
File without changes
|