indexify 0.4.11__py3-none-any.whl → 0.4.12__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_controller/events.py +23 -7
- indexify/executor/function_executor_controller/function_executor_controller.py +49 -22
- indexify/executor/function_executor_controller/{destroy_function_executor.py → terminate_function_executor.py} +12 -5
- indexify/proto/executor_api.proto +1 -0
- indexify/proto/executor_api_pb2.py +42 -42
- indexify/proto/executor_api_pb2.pyi +9 -1
- {indexify-0.4.11.dist-info → indexify-0.4.12.dist-info}/METADATA +1 -1
- {indexify-0.4.11.dist-info → indexify-0.4.12.dist-info}/RECORD +10 -10
- {indexify-0.4.11.dist-info → indexify-0.4.12.dist-info}/WHEEL +0 -0
- {indexify-0.4.11.dist-info → indexify-0.4.12.dist-info}/entry_points.txt +0 -0
@@ -1,5 +1,5 @@
|
|
1
1
|
from enum import Enum
|
2
|
-
from typing import Optional
|
2
|
+
from typing import List, Optional
|
3
3
|
|
4
4
|
from indexify.executor.function_executor.function_executor import (
|
5
5
|
FunctionExecutor,
|
@@ -12,7 +12,7 @@ from .task_info import TaskInfo
|
|
12
12
|
|
13
13
|
class EventType(Enum):
|
14
14
|
FUNCTION_EXECUTOR_CREATED = 1
|
15
|
-
|
15
|
+
FUNCTION_EXECUTOR_TERMINATED = 2
|
16
16
|
SHUTDOWN_INITIATED = 3
|
17
17
|
TASK_PREPARATION_FINISHED = 4
|
18
18
|
SCHEDULE_TASK_EXECUTION = 5
|
@@ -50,17 +50,33 @@ class FunctionExecutorCreated(BaseEvent):
|
|
50
50
|
self.output: FunctionExecutorStartupOutput = output
|
51
51
|
|
52
52
|
|
53
|
-
class
|
53
|
+
class FunctionExecutorTerminated(BaseEvent):
|
54
54
|
"""
|
55
|
-
Event indicating that Function Executor has been destroyed.
|
55
|
+
Event indicating that Function Executor has been terminated (destroyed).
|
56
56
|
"""
|
57
57
|
|
58
|
-
def __init__(
|
59
|
-
|
58
|
+
def __init__(
|
59
|
+
self,
|
60
|
+
is_success: bool,
|
61
|
+
fe_termination_reason: FunctionExecutorTerminationReason,
|
62
|
+
allocation_ids_caused_termination: List[str],
|
63
|
+
):
|
64
|
+
super().__init__(EventType.FUNCTION_EXECUTOR_TERMINATED)
|
60
65
|
self.is_success: bool = is_success
|
66
|
+
self.fe_termination_reason: FunctionExecutorTerminationReason = (
|
67
|
+
fe_termination_reason
|
68
|
+
)
|
69
|
+
self.allocation_ids_caused_termination: List[str] = (
|
70
|
+
allocation_ids_caused_termination
|
71
|
+
)
|
61
72
|
|
62
73
|
def __str__(self) -> str:
|
63
|
-
return
|
74
|
+
return (
|
75
|
+
f"Event(type={self.event_type.name}, "
|
76
|
+
f"is_success={self.is_success}, "
|
77
|
+
f"fe_termination_reason={FunctionExecutorTerminationReason.Name(self.fe_termination_reason)}, "
|
78
|
+
f"allocation_ids_caused_termination={self.allocation_ids_caused_termination})"
|
79
|
+
)
|
64
80
|
|
65
81
|
|
66
82
|
class ShutdownInitiated(BaseEvent):
|
@@ -29,12 +29,11 @@ from .debug_event_loop import (
|
|
29
29
|
debug_print_events,
|
30
30
|
debug_print_processing_event,
|
31
31
|
)
|
32
|
-
from .destroy_function_executor import destroy_function_executor
|
33
32
|
from .events import (
|
34
33
|
BaseEvent,
|
35
34
|
EventType,
|
36
35
|
FunctionExecutorCreated,
|
37
|
-
|
36
|
+
FunctionExecutorTerminated,
|
38
37
|
ScheduleTaskExecution,
|
39
38
|
ShutdownInitiated,
|
40
39
|
TaskExecutionFinished,
|
@@ -61,6 +60,7 @@ from .prepare_task import prepare_task
|
|
61
60
|
from .run_task import run_task_on_function_executor
|
62
61
|
from .task_info import TaskInfo
|
63
62
|
from .task_output import TaskOutput
|
63
|
+
from .terminate_function_executor import terminate_function_executor
|
64
64
|
from .upload_task_output import upload_task_output
|
65
65
|
|
66
66
|
|
@@ -110,7 +110,6 @@ class FunctionExecutorController:
|
|
110
110
|
self._destroy_lock: asyncio.Lock = asyncio.Lock()
|
111
111
|
# Mutable state. No lock needed as it's modified by async tasks running in the same event loop.
|
112
112
|
self._fe: Optional[FunctionExecutor] = None
|
113
|
-
self._fe_termination_reason: Optional[FunctionExecutorTerminationReason] = None
|
114
113
|
self._internal_state = _FE_CONTROLLER_STATE.NOT_STARTED
|
115
114
|
metric_function_executors_with_state.labels(
|
116
115
|
state=_to_fe_state_metric_label(self._internal_state, self._logger)
|
@@ -347,8 +346,8 @@ class FunctionExecutorController:
|
|
347
346
|
"""
|
348
347
|
if event.event_type == EventType.FUNCTION_EXECUTOR_CREATED:
|
349
348
|
return self._handle_event_function_executor_created(event)
|
350
|
-
elif event.event_type == EventType.
|
351
|
-
return self.
|
349
|
+
elif event.event_type == EventType.FUNCTION_EXECUTOR_TERMINATED:
|
350
|
+
return self._handle_event_function_executor_terminated(event)
|
352
351
|
elif event.event_type == EventType.TASK_PREPARATION_FINISHED:
|
353
352
|
return self._handle_event_task_preparation_finished(event)
|
354
353
|
elif event.event_type == EventType.SCHEDULE_TASK_EXECUTION:
|
@@ -460,7 +459,15 @@ class FunctionExecutorController:
|
|
460
459
|
self._state_reporter.schedule_state_report()
|
461
460
|
|
462
461
|
if event.function_executor is None:
|
463
|
-
|
462
|
+
# Server needs to increment attempts counter for all the tasks that were pending while FE was starting up.
|
463
|
+
# This prevents infinite retries if FEs consistently fail to start up.
|
464
|
+
self._start_termination(
|
465
|
+
fe_termination_reason=event.output.termination_reason,
|
466
|
+
allocation_ids_caused_termination=[
|
467
|
+
task_info.allocation.allocation_id
|
468
|
+
for task_info in self._tasks.values()
|
469
|
+
],
|
470
|
+
)
|
464
471
|
return
|
465
472
|
|
466
473
|
self._fe = event.function_executor
|
@@ -478,16 +485,16 @@ class FunctionExecutorController:
|
|
478
485
|
source="_handle_event_function_executor_created",
|
479
486
|
)
|
480
487
|
|
481
|
-
def
|
482
|
-
self, event:
|
488
|
+
def _handle_event_function_executor_terminated(
|
489
|
+
self, event: FunctionExecutorTerminated
|
483
490
|
) -> None:
|
484
|
-
"""Handles the Function Executor
|
491
|
+
"""Handles the Function Executor terminated event.
|
485
492
|
|
486
493
|
Doesn't raise any exceptions. Doesn't block.
|
487
494
|
"""
|
488
495
|
if not event.is_success:
|
489
496
|
self._logger.error(
|
490
|
-
"Function Executor
|
497
|
+
"Function Executor termination failed unexpectedly, this should never happen",
|
491
498
|
)
|
492
499
|
|
493
500
|
self._fe = None
|
@@ -496,7 +503,8 @@ class FunctionExecutorController:
|
|
496
503
|
FunctionExecutorState(
|
497
504
|
description=self._fe_description,
|
498
505
|
status=FunctionExecutorStatus.FUNCTION_EXECUTOR_STATUS_TERMINATED,
|
499
|
-
termination_reason=
|
506
|
+
termination_reason=event.fe_termination_reason,
|
507
|
+
allocation_ids_caused_termination=event.allocation_ids_caused_termination,
|
500
508
|
)
|
501
509
|
)
|
502
510
|
self._update_internal_state(_FE_CONTROLLER_STATE.TERMINATED)
|
@@ -512,8 +520,14 @@ class FunctionExecutorController:
|
|
512
520
|
"Function Executor health check failed, terminating Function Executor",
|
513
521
|
reason=result.reason,
|
514
522
|
)
|
523
|
+
|
515
524
|
self._start_termination(
|
516
|
-
|
525
|
+
fe_termination_reason=FunctionExecutorTerminationReason.FUNCTION_EXECUTOR_TERMINATION_REASON_UNHEALTHY,
|
526
|
+
allocation_ids_caused_termination=(
|
527
|
+
[]
|
528
|
+
if self._running_task is None
|
529
|
+
else [self._running_task.allocation.allocation_id]
|
530
|
+
),
|
517
531
|
)
|
518
532
|
|
519
533
|
def _handle_event_task_preparation_finished(
|
@@ -627,7 +641,10 @@ class FunctionExecutorController:
|
|
627
641
|
)
|
628
642
|
else:
|
629
643
|
self._start_termination(
|
630
|
-
|
644
|
+
fe_termination_reason=event.function_executor_termination_reason,
|
645
|
+
allocation_ids_caused_termination=[
|
646
|
+
event.task_info.allocation.allocation_id
|
647
|
+
],
|
631
648
|
)
|
632
649
|
|
633
650
|
# Ignore is_cancelled because cancelling a task still involves uploading its output.
|
@@ -684,7 +701,9 @@ class FunctionExecutorController:
|
|
684
701
|
self._state_reporter.schedule_state_report()
|
685
702
|
|
686
703
|
def _start_termination(
|
687
|
-
self,
|
704
|
+
self,
|
705
|
+
fe_termination_reason: FunctionExecutorTerminationReason,
|
706
|
+
allocation_ids_caused_termination: List[str],
|
688
707
|
) -> None:
|
689
708
|
"""Starts termination of the Function Executor if it's not started yet.
|
690
709
|
|
@@ -698,16 +717,21 @@ class FunctionExecutorController:
|
|
698
717
|
# when the FE is unhealthy. Dedup the calls to keep state machine consistent.
|
699
718
|
return
|
700
719
|
|
701
|
-
self._fe_termination_reason = termination_reason
|
702
720
|
self._update_internal_state(_FE_CONTROLLER_STATE.TERMINATING)
|
703
|
-
next_aio =
|
721
|
+
next_aio = terminate_function_executor(
|
704
722
|
function_executor=self._fe,
|
705
723
|
lock=self._destroy_lock,
|
724
|
+
fe_termination_reason=fe_termination_reason,
|
725
|
+
allocation_ids_caused_termination=allocation_ids_caused_termination,
|
706
726
|
logger=self._logger,
|
707
727
|
)
|
708
728
|
self._spawn_aio_for_fe(
|
709
729
|
aio=next_aio,
|
710
|
-
on_exception=
|
730
|
+
on_exception=FunctionExecutorTerminated(
|
731
|
+
is_success=False,
|
732
|
+
fe_termination_reason=fe_termination_reason,
|
733
|
+
allocation_ids_caused_termination=allocation_ids_caused_termination,
|
734
|
+
),
|
711
735
|
)
|
712
736
|
|
713
737
|
async def _shutdown_no_exceptions(self, event: ShutdownInitiated) -> None:
|
@@ -746,11 +770,14 @@ class FunctionExecutorController:
|
|
746
770
|
# BaseException includes asyncio.CancelledError which is always raised here.
|
747
771
|
pass
|
748
772
|
|
749
|
-
|
750
|
-
|
751
|
-
|
752
|
-
|
753
|
-
|
773
|
+
# Makes sure we don't run fe destroy concurrently with an event loop task.
|
774
|
+
# FE destroy uses asyncio.to_thread() calls so it doesn't get cancelled with all the tasks above.
|
775
|
+
async with self._destroy_lock:
|
776
|
+
if self._fe is not None:
|
777
|
+
self._logger.info(
|
778
|
+
"destroying function executor",
|
779
|
+
)
|
780
|
+
await self._fe.destroy()
|
754
781
|
|
755
782
|
# Cleanup the metric from this FE.
|
756
783
|
metric_function_executors_with_state.labels(
|
@@ -1,16 +1,19 @@
|
|
1
1
|
import asyncio
|
2
|
-
from typing import Any, Optional
|
2
|
+
from typing import Any, List, Optional
|
3
3
|
|
4
4
|
from indexify.executor.function_executor.function_executor import FunctionExecutor
|
5
|
+
from indexify.proto.executor_api_pb2 import FunctionExecutorTerminationReason
|
5
6
|
|
6
|
-
from .events import
|
7
|
+
from .events import FunctionExecutorTerminated
|
7
8
|
|
8
9
|
|
9
|
-
async def
|
10
|
+
async def terminate_function_executor(
|
10
11
|
function_executor: Optional[FunctionExecutor],
|
11
12
|
lock: asyncio.Lock,
|
13
|
+
fe_termination_reason: FunctionExecutorTerminationReason,
|
14
|
+
allocation_ids_caused_termination: List[str],
|
12
15
|
logger: Any,
|
13
|
-
) ->
|
16
|
+
) -> FunctionExecutorTerminated:
|
14
17
|
"""Destroys the function executor if it's not None.
|
15
18
|
|
16
19
|
The supplied lock is used to ensure that if a destroy operation is in progress,
|
@@ -28,4 +31,8 @@ async def destroy_function_executor(
|
|
28
31
|
)
|
29
32
|
await function_executor.destroy()
|
30
33
|
|
31
|
-
return
|
34
|
+
return FunctionExecutorTerminated(
|
35
|
+
is_success=True,
|
36
|
+
fe_termination_reason=fe_termination_reason,
|
37
|
+
allocation_ids_caused_termination=allocation_ids_caused_termination,
|
38
|
+
)
|
@@ -125,6 +125,7 @@ message FunctionExecutorState {
|
|
125
125
|
optional FunctionExecutorDescription description = 1;
|
126
126
|
optional FunctionExecutorStatus status = 2;
|
127
127
|
optional FunctionExecutorTerminationReason termination_reason = 3;
|
128
|
+
repeated string allocation_ids_caused_termination = 4;
|
128
129
|
}
|
129
130
|
|
130
131
|
message FunctionExecutorUpdate {
|
@@ -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"\xa4\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\x42\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"\xb0\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\x14\n\x07reducer\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12;\n\x0coutcome_code\x18\t \x01(\x0e\x32 .executor_api_pb.TaskOutcomeCodeH\x08\x88\x01\x01\x12?\n\x0e\x66\x61ilure_reason\x18\n \x01(\x0e\x32".executor_api_pb.TaskFailureReasonH\t\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\n\x88\x01\x01\x12\x31\n\x06stderr\x18\x0e \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x0b\x88\x01\x01\x12\x42\n\x17invocation_error_output\x18\x0f \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\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\n\n\x08_reducerB\x0f\n\r_outcome_codeB\x11\n\x0f_failure_reasonB\t\n\x07_stdoutB\t\n\x07_stderrB\x1a\n\x18_invocation_error_output*\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"\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"\xb0\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\x14\n\x07reducer\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12;\n\x0coutcome_code\x18\t \x01(\x0e\x32 .executor_api_pb.TaskOutcomeCodeH\x08\x88\x01\x01\x12?\n\x0e\x66\x61ilure_reason\x18\n \x01(\x0e\x32".executor_api_pb.TaskFailureReasonH\t\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\n\x88\x01\x01\x12\x31\n\x06stderr\x18\x0e \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x0b\x88\x01\x01\x12\x42\n\x17invocation_error_output\x18\x0f \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\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\n\n\x08_reducerB\x0f\n\r_outcome_codeB\x11\n\x0f_failure_reasonB\t\n\x07_stdoutB\t\n\x07_stderrB\x1a\n\x18_invocation_error_output*\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 = 5366
|
35
|
+
_globals["_DATAPAYLOADENCODING"]._serialized_end = 5575
|
36
|
+
_globals["_GPUMODEL"]._serialized_start = 5578
|
37
|
+
_globals["_GPUMODEL"]._serialized_end = 5792
|
38
|
+
_globals["_FUNCTIONEXECUTORSTATUS"]._serialized_start = 5795
|
39
|
+
_globals["_FUNCTIONEXECUTORSTATUS"]._serialized_end = 5974
|
40
|
+
_globals["_FUNCTIONEXECUTORTERMINATIONREASON"]._serialized_start = 5977
|
41
|
+
_globals["_FUNCTIONEXECUTORTERMINATIONREASON"]._serialized_end = 6509
|
42
|
+
_globals["_EXECUTORSTATUS"]._serialized_start = 6512
|
43
|
+
_globals["_EXECUTORSTATUS"]._serialized_end = 6677
|
44
|
+
_globals["_TASKOUTCOMECODE"]._serialized_start = 6679
|
45
|
+
_globals["_TASKOUTCOMECODE"]._serialized_end = 6789
|
46
|
+
_globals["_TASKFAILUREREASON"]._serialized_start = 6792
|
47
|
+
_globals["_TASKFAILUREREASON"]._serialized_end = 7102
|
48
48
|
_globals["_DATAPAYLOAD"]._serialized_start = 55
|
49
49
|
_globals["_DATAPAYLOAD"]._serialized_end = 290
|
50
50
|
_globals["_GPURESOURCES"]._serialized_start = 292
|
@@ -58,31 +58,31 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
58
58
|
_globals["_FUNCTIONEXECUTORDESCRIPTION"]._serialized_start = 1002
|
59
59
|
_globals["_FUNCTIONEXECUTORDESCRIPTION"]._serialized_end = 1565
|
60
60
|
_globals["_FUNCTIONEXECUTORSTATE"]._serialized_start = 1568
|
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 =
|
61
|
+
_globals["_FUNCTIONEXECUTORSTATE"]._serialized_end = 1903
|
62
|
+
_globals["_FUNCTIONEXECUTORUPDATE"]._serialized_start = 1906
|
63
|
+
_globals["_FUNCTIONEXECUTORUPDATE"]._serialized_end = 2174
|
64
|
+
_globals["_EXECUTORSTATE"]._serialized_start = 2177
|
65
|
+
_globals["_EXECUTORSTATE"]._serialized_end = 2895
|
66
|
+
_globals["_EXECUTORSTATE_LABELSENTRY"]._serialized_start = 2708
|
67
|
+
_globals["_EXECUTORSTATE_LABELSENTRY"]._serialized_end = 2753
|
68
|
+
_globals["_EXECUTORUPDATE"]._serialized_start = 2898
|
69
|
+
_globals["_EXECUTORUPDATE"]._serialized_end = 3083
|
70
|
+
_globals["_REPORTEXECUTORSTATEREQUEST"]._serialized_start = 3086
|
71
|
+
_globals["_REPORTEXECUTORSTATEREQUEST"]._serialized_end = 3277
|
72
|
+
_globals["_REPORTEXECUTORSTATERESPONSE"]._serialized_start = 3279
|
73
|
+
_globals["_REPORTEXECUTORSTATERESPONSE"]._serialized_end = 3308
|
74
|
+
_globals["_TASKRETRYPOLICY"]._serialized_start = 3311
|
75
|
+
_globals["_TASKRETRYPOLICY"]._serialized_end = 3518
|
76
|
+
_globals["_TASK"]._serialized_start = 3521
|
77
|
+
_globals["_TASK"]._serialized_end = 4103
|
78
|
+
_globals["_TASKALLOCATION"]._serialized_start = 4106
|
79
|
+
_globals["_TASKALLOCATION"]._serialized_end = 4279
|
80
|
+
_globals["_GETDESIREDEXECUTORSTATESREQUEST"]._serialized_start = 4281
|
81
|
+
_globals["_GETDESIREDEXECUTORSTATESREQUEST"]._serialized_end = 4356
|
82
|
+
_globals["_DESIREDEXECUTORSTATE"]._serialized_start = 4359
|
83
|
+
_globals["_DESIREDEXECUTORSTATE"]._serialized_end = 4544
|
84
|
+
_globals["_TASKRESULT"]._serialized_start = 4547
|
85
|
+
_globals["_TASKRESULT"]._serialized_end = 5363
|
86
|
+
_globals["_EXECUTORAPI"]._serialized_start = 7105
|
87
|
+
_globals["_EXECUTORAPI"]._serialized_end = 7360
|
88
88
|
# @@protoc_insertion_point(module_scope)
|
@@ -274,13 +274,20 @@ class FunctionExecutorDescription(_message.Message):
|
|
274
274
|
) -> None: ...
|
275
275
|
|
276
276
|
class FunctionExecutorState(_message.Message):
|
277
|
-
__slots__ = (
|
277
|
+
__slots__ = (
|
278
|
+
"description",
|
279
|
+
"status",
|
280
|
+
"termination_reason",
|
281
|
+
"allocation_ids_caused_termination",
|
282
|
+
)
|
278
283
|
DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
|
279
284
|
STATUS_FIELD_NUMBER: _ClassVar[int]
|
280
285
|
TERMINATION_REASON_FIELD_NUMBER: _ClassVar[int]
|
286
|
+
ALLOCATION_IDS_CAUSED_TERMINATION_FIELD_NUMBER: _ClassVar[int]
|
281
287
|
description: FunctionExecutorDescription
|
282
288
|
status: FunctionExecutorStatus
|
283
289
|
termination_reason: FunctionExecutorTerminationReason
|
290
|
+
allocation_ids_caused_termination: _containers.RepeatedScalarFieldContainer[str]
|
284
291
|
def __init__(
|
285
292
|
self,
|
286
293
|
description: _Optional[_Union[FunctionExecutorDescription, _Mapping]] = ...,
|
@@ -288,6 +295,7 @@ class FunctionExecutorState(_message.Message):
|
|
288
295
|
termination_reason: _Optional[
|
289
296
|
_Union[FunctionExecutorTerminationReason, str]
|
290
297
|
] = ...,
|
298
|
+
allocation_ids_caused_termination: _Optional[_Iterable[str]] = ...,
|
291
299
|
) -> None: ...
|
292
300
|
|
293
301
|
class FunctionExecutorUpdate(_message.Message):
|
@@ -25,10 +25,9 @@ indexify/executor/function_executor_controller/__init__.py,sha256=VPuuBEYOKf7OWy
|
|
25
25
|
indexify/executor/function_executor_controller/completed_task_metrics.py,sha256=MhnC-ddgmTK4yTsuZxgTKnqZ-YSVeWn2EhbbiggsSKk,3664
|
26
26
|
indexify/executor/function_executor_controller/create_function_executor.py,sha256=qQ_xBQRYUwz8SbNH7-H6D9GP-NJM3OlxPaIuLnPpbRM,9996
|
27
27
|
indexify/executor/function_executor_controller/debug_event_loop.py,sha256=VJOKe_c9HjIDVCjhMY3Yqyeq1tAM1eVa2chZa6CMf-U,1016
|
28
|
-
indexify/executor/function_executor_controller/destroy_function_executor.py,sha256=QOmScyQ30uGSd31ugbgujkqTRplmbsYu0_doeYeuOqk,935
|
29
28
|
indexify/executor/function_executor_controller/downloads.py,sha256=XjCUmLY_jrI3AlnXC7aDwwKWTvsQjV7I9AXzrbIeY6c,7063
|
30
|
-
indexify/executor/function_executor_controller/events.py,sha256=
|
31
|
-
indexify/executor/function_executor_controller/function_executor_controller.py,sha256=
|
29
|
+
indexify/executor/function_executor_controller/events.py,sha256=r2K3k9Nnkzh0j6HHZC0DxOdQ3HtCmzt4eN2DIwTa7NM,5456
|
30
|
+
indexify/executor/function_executor_controller/function_executor_controller.py,sha256=OgPlcYELVehuDVd1mzo2-LMzvIKBsYMZDGUaGDwkigc,35454
|
32
31
|
indexify/executor/function_executor_controller/function_executor_startup_output.py,sha256=PXg2r440kqHI3oHGZbb58ehuAuW_fmEdxLTAa-0V3p4,715
|
33
32
|
indexify/executor/function_executor_controller/loggers.py,sha256=zEY2nt15gboX3SX6Kh1xjeCljZJZSE4lp27qNrg8yPY,3637
|
34
33
|
indexify/executor/function_executor_controller/message_validators.py,sha256=aNiZhYA87pnxUJtZKvKGDt40rfox-TYH2J6mW7o-Pkw,2981
|
@@ -41,6 +40,7 @@ indexify/executor/function_executor_controller/prepare_task.py,sha256=AKbo_H_5pO
|
|
41
40
|
indexify/executor/function_executor_controller/run_task.py,sha256=ARa-OgqgJ1o_LmO1FIhkXBvqLWXCzYLiSiG2jGw_NR8,10448
|
42
41
|
indexify/executor/function_executor_controller/task_info.py,sha256=ZEdypd8QVmYbrLt1186Ed9YEQwrO0Sx_hKH0QLg1DVY,1181
|
43
42
|
indexify/executor/function_executor_controller/task_output.py,sha256=A5KJh60OI1FdHw6ABX3KxL9OMrC6ZADJHeo0W5iZpz8,3764
|
43
|
+
indexify/executor/function_executor_controller/terminate_function_executor.py,sha256=YLDlKoanfUBcy7A9ydCYdUsDwApjcTTn1o4tjNVN_QA,1281
|
44
44
|
indexify/executor/function_executor_controller/upload_task_output.py,sha256=fEZm5eodx5rNLQYFhmdkMDD9qjX3_wKo64x4aUKTu34,10403
|
45
45
|
indexify/executor/host_resources/host_resources.py,sha256=ZSfox24jaz1IIaQWUmciOoev0l35rk8LHbnb_koJWno,3810
|
46
46
|
indexify/executor/host_resources/nvidia_gpu.py,sha256=BIxBcWenyhZe0fuPQT9I0g6zAWMDPcm_oZEfgOoYsFU,3306
|
@@ -59,11 +59,11 @@ indexify/executor/monitoring/server.py,sha256=yzdYhcxnmY6uTQUMt3vatF5jilN52ZtfFs
|
|
59
59
|
indexify/executor/monitoring/startup_probe_handler.py,sha256=zXXsBU15SMlBx1bSFpxWDfed1VHtKKnwvLQ8-frpG98,425
|
60
60
|
indexify/executor/state_reconciler.py,sha256=pZ4a0OHeLkPHTuqiwh1G8YXvh23kERVUWZemol6F5E8,17787
|
61
61
|
indexify/executor/state_reporter.py,sha256=0qs9n2n8bWn77hdW8qsuUqHS7G8iyW7-9_-s8l6aJSU,14195
|
62
|
-
indexify/proto/executor_api.proto,sha256=
|
63
|
-
indexify/proto/executor_api_pb2.py,sha256=
|
64
|
-
indexify/proto/executor_api_pb2.pyi,sha256=
|
62
|
+
indexify/proto/executor_api.proto,sha256=MEsBzpL5tlBd6Yc3ZfheQ60DbXAZWQWGM1dlldhH4i8,12240
|
63
|
+
indexify/proto/executor_api_pb2.py,sha256=w2Wj1MEtTihNZ4TvPKPYDjMryO52fPa7A4dKv7vb__s,16236
|
64
|
+
indexify/proto/executor_api_pb2.pyi,sha256=AEHW4YFm5FT8f66qKGkPH36szlWgCgXrH3CQ8rgxSps,22754
|
65
65
|
indexify/proto/executor_api_pb2_grpc.py,sha256=JpT5K6jiS0NJVNyTt1mAPpyJMXuEGeNN2V6R3KmLHZ4,7607
|
66
|
-
indexify-0.4.
|
67
|
-
indexify-0.4.
|
68
|
-
indexify-0.4.
|
69
|
-
indexify-0.4.
|
66
|
+
indexify-0.4.12.dist-info/METADATA,sha256=r21ToO5MZ3_RK7w-iSaXuwXjHSCwx_8-JdTF8_a9lTc,1115
|
67
|
+
indexify-0.4.12.dist-info/WHEEL,sha256=RaoafKOydTQ7I_I3JTrPCg6kUmTgtm4BornzOqyEfJ8,88
|
68
|
+
indexify-0.4.12.dist-info/entry_points.txt,sha256=rMJqbE5KPZIXTPIfAtVIM4zpUElqYVgEYd6i7N23zzg,49
|
69
|
+
indexify-0.4.12.dist-info/RECORD,,
|
File without changes
|
File without changes
|