indexify 0.4.13__tar.gz → 0.4.15__tar.gz
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-0.4.13 → indexify-0.4.15}/PKG-INFO +5 -5
- {indexify-0.4.13 → indexify-0.4.15}/pyproject.toml +7 -7
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor_controller/function_executor_controller.py +3 -5
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor_controller/run_task.py +0 -2
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor_controller/task_output.py +0 -2
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/state_reconciler.py +26 -6
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/state_reporter.py +4 -4
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/proto/executor_api.proto +0 -1
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/proto/executor_api_pb2.py +18 -18
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/proto/executor_api_pb2.pyi +0 -4
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/proto/executor_api_pb2_grpc.py +1 -1
- {indexify-0.4.13 → indexify-0.4.15}/README.md +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/cli/__init__.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/cli/build_image.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/cli/deploy.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/cli/executor.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/README.md +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/blob_store/blob_store.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/blob_store/local_fs_blob_store.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/blob_store/metrics/blob_store.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/blob_store/s3_blob_store.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/channel_manager.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/executor.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_allowlist.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor/function_executor.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor/health_checker.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor/invocation_state_client.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor/metrics/function_executor.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor/metrics/health_checker.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor/metrics/invocation_state_client.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor/server/client_configuration.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor/server/function_executor_server.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor/server/function_executor_server_factory.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor/server/subprocess_function_executor_server.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor/server/subprocess_function_executor_server_factory.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor_controller/__init__.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor_controller/completed_task_metrics.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor_controller/create_function_executor.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor_controller/debug_event_loop.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor_controller/downloads.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor_controller/events.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor_controller/function_executor_startup_output.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor_controller/loggers.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor_controller/message_validators.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor_controller/metrics/completed_task_metrics.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor_controller/metrics/downloads.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor_controller/metrics/function_executor_controller.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor_controller/metrics/run_task.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor_controller/metrics/upload_task_output.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor_controller/prepare_task.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor_controller/task_info.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor_controller/terminate_function_executor.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor_controller/upload_task_output.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/host_resources/host_resources.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/host_resources/nvidia_gpu.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/host_resources/nvidia_gpu_allocator.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/metrics/channel_manager.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/metrics/executor.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/metrics/state_reconciler.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/metrics/state_reporter.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/monitoring/handler.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/monitoring/health_check_handler.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/monitoring/health_checker/generic_health_checker.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/monitoring/health_checker/health_checker.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/monitoring/metrics.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/monitoring/prometheus_metrics_handler.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/monitoring/server.py +0 -0
- {indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/monitoring/startup_probe_handler.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: indexify
|
3
|
-
Version: 0.4.
|
3
|
+
Version: 0.4.15
|
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
|
@@ -13,11 +13,11 @@ Classifier: Programming Language :: Python :: 3.10
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.11
|
14
14
|
Classifier: Programming Language :: Python :: 3.12
|
15
15
|
Classifier: Programming Language :: Python :: 3.13
|
16
|
-
Requires-Dist: aiohttp (>=3.
|
17
|
-
Requires-Dist: boto3 (>=1.
|
18
|
-
Requires-Dist: prometheus-client (>=0.
|
16
|
+
Requires-Dist: aiohttp (>=3.12.14,<4.0.0)
|
17
|
+
Requires-Dist: boto3 (>=1.39.4,<2.0.0)
|
18
|
+
Requires-Dist: prometheus-client (>=0.22.1,<0.23.0)
|
19
19
|
Requires-Dist: psutil (>=7.0.0,<8.0.0)
|
20
|
-
Requires-Dist: tensorlake (==0.2.
|
20
|
+
Requires-Dist: tensorlake (==0.2.24)
|
21
21
|
Project-URL: Repository, https://github.com/tensorlakeai/indexify
|
22
22
|
Description-Content-Type: text/markdown
|
23
23
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
[tool.poetry]
|
2
2
|
name = "indexify"
|
3
3
|
# Incremented if any of the components provided in this packages are updated.
|
4
|
-
version = "0.4.
|
4
|
+
version = "0.4.15"
|
5
5
|
description = "Open Source Indexify components and helper tools"
|
6
6
|
authors = ["Tensorlake Inc. <support@tensorlake.ai>"]
|
7
7
|
license = "Apache 2.0"
|
@@ -20,12 +20,13 @@ python = "^3.10"
|
|
20
20
|
# httpx is provided by tensorlake
|
21
21
|
|
22
22
|
# Executor only
|
23
|
-
aiohttp = "^3.
|
24
|
-
prometheus-client = "^0.
|
23
|
+
aiohttp = "^3.12.14"
|
24
|
+
prometheus-client = "^0.22.1"
|
25
25
|
psutil = "^7.0.0"
|
26
|
+
boto3 = "^1.39.4"
|
26
27
|
# Adds function-executor binary, utils lib, sdk used in indexify-cli commands.
|
27
28
|
# We need to specify the tensorlake version exactly because pip install doesn't respect poetry.lock files.
|
28
|
-
tensorlake = "0.2.
|
29
|
+
tensorlake = "0.2.24"
|
29
30
|
# Uncomment the next line to use local tensorlake package (only for development!)
|
30
31
|
# tensorlake = { path = "../tensorlake", develop = true }
|
31
32
|
# pydantic is provided by tensorlake
|
@@ -35,11 +36,10 @@ tensorlake = "0.2.12"
|
|
35
36
|
# CLI only
|
36
37
|
# nanoid is provided by tensorlake
|
37
38
|
# click is provided by tensorlake
|
38
|
-
boto3 = "^1.37.30"
|
39
39
|
|
40
40
|
[tool.poetry.group.dev.dependencies]
|
41
|
-
black = "
|
42
|
-
|
41
|
+
black = "25.1.0"
|
42
|
+
isort = "^6.0.1"
|
43
43
|
parameterized = "^0.9.0"
|
44
44
|
|
45
45
|
[build-system]
|
@@ -252,7 +252,7 @@ class FunctionExecutorController:
|
|
252
252
|
"""Shutsdown the Function Executor and frees all of its resources.
|
253
253
|
|
254
254
|
No task outcomes and outputs are getting reported to Server after this call.
|
255
|
-
Doesn't raise any exceptions. Blocks until the shutdown is complete.
|
255
|
+
Doesn't raise any exceptions. Blocks until the shutdown is complete. Idempotent.
|
256
256
|
"""
|
257
257
|
self._add_event(ShutdownInitiated(), source="shutdown")
|
258
258
|
try:
|
@@ -261,10 +261,9 @@ class FunctionExecutorController:
|
|
261
261
|
pass # Expected exception on shutdown
|
262
262
|
except Exception as e:
|
263
263
|
self._logger.error(
|
264
|
-
"function executor controller control loop raised unexpected exception",
|
264
|
+
"function executor controller control loop task raised unexpected exception",
|
265
265
|
exc_info=e,
|
266
266
|
)
|
267
|
-
self._logger.info("function executor controller shutdown finished")
|
268
267
|
|
269
268
|
def _update_internal_state(self, new_state: _FE_CONTROLLER_STATE) -> None:
|
270
269
|
"""Updates the internal state of the Function Executor Controller.
|
@@ -802,7 +801,7 @@ class FunctionExecutorController:
|
|
802
801
|
self._state_reporter.remove_function_executor_state(self.function_executor_id())
|
803
802
|
self._state_reporter.schedule_state_report()
|
804
803
|
|
805
|
-
self._logger.info("function executor controller
|
804
|
+
self._logger.info("function executor controller shutdown finished")
|
806
805
|
debug_print_events(events=self._events, logger=self._logger)
|
807
806
|
|
808
807
|
|
@@ -854,7 +853,6 @@ def _to_task_result_proto(output: TaskOutput) -> TaskResult:
|
|
854
853
|
graph_version=output.allocation.task.graph_version,
|
855
854
|
function_name=output.allocation.task.function_name,
|
856
855
|
graph_invocation_id=output.allocation.task.graph_invocation_id,
|
857
|
-
reducer=output.reducer,
|
858
856
|
outcome_code=output.outcome_code,
|
859
857
|
failure_reason=output.failure_reason,
|
860
858
|
next_functions=output.next_functions,
|
{indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor_controller/run_task.py
RENAMED
@@ -159,7 +159,6 @@ def _task_output_from_function_executor_response(
|
|
159
159
|
response_validator = MessageValidator(response)
|
160
160
|
response_validator.required_field("stdout")
|
161
161
|
response_validator.required_field("stderr")
|
162
|
-
response_validator.required_field("is_reducer")
|
163
162
|
response_validator.required_field("outcome_code")
|
164
163
|
|
165
164
|
metrics = TaskMetrics(counters={}, timers={})
|
@@ -200,7 +199,6 @@ def _task_output_from_function_executor_response(
|
|
200
199
|
next_functions=response.next_functions,
|
201
200
|
stdout=response.stdout,
|
202
201
|
stderr=response.stderr,
|
203
|
-
reducer=response.is_reducer,
|
204
202
|
metrics=metrics,
|
205
203
|
)
|
206
204
|
|
@@ -37,7 +37,6 @@ class TaskOutput:
|
|
37
37
|
next_functions: List[str] = [],
|
38
38
|
stdout: Optional[str] = None,
|
39
39
|
stderr: Optional[str] = None,
|
40
|
-
reducer: bool = False,
|
41
40
|
metrics: Optional[TaskMetrics] = None,
|
42
41
|
):
|
43
42
|
self.task = allocation.task
|
@@ -46,7 +45,6 @@ class TaskOutput:
|
|
46
45
|
self.next_functions = next_functions
|
47
46
|
self.stdout = stdout
|
48
47
|
self.stderr = stderr
|
49
|
-
self.reducer = reducer
|
50
48
|
self.outcome_code = outcome_code
|
51
49
|
self.failure_reason = failure_reason
|
52
50
|
self.invocation_error_output = invocation_error_output
|
@@ -66,6 +66,7 @@ class ExecutorStateReconciler:
|
|
66
66
|
self._desired_states_reader_task: Optional[asyncio.Task] = None
|
67
67
|
self._reconciliation_loop_task: Optional[asyncio.Task] = None
|
68
68
|
self._function_executor_controllers: Dict[str, FunctionExecutorController] = {}
|
69
|
+
self._shutting_down_fe_ids: Set[str] = set()
|
69
70
|
self._last_server_clock: Optional[int] = None
|
70
71
|
|
71
72
|
self._last_desired_state_lock = asyncio.Lock()
|
@@ -320,14 +321,35 @@ class ExecutorStateReconciler:
|
|
320
321
|
logger.error("failed adding Function Executor", exc_info=e)
|
321
322
|
|
322
323
|
def _remove_function_executor_controller(self, function_executor_id: str) -> None:
|
323
|
-
|
324
|
-
|
325
|
-
|
324
|
+
# Don't remove the FE controller from self._function_executor_controllers until
|
325
|
+
# its shutdown is complete. Otherwise, if Server re-adds the FE to desired state
|
326
|
+
# before FE shutdown completes then we'll have two FE controllers for the same
|
327
|
+
# FE ID which results in many bugs.
|
328
|
+
if function_executor_id in self._shutting_down_fe_ids:
|
329
|
+
return
|
330
|
+
|
331
|
+
self._shutting_down_fe_ids.add(function_executor_id)
|
326
332
|
asyncio.create_task(
|
327
|
-
|
333
|
+
self._shutdown_function_executor_controller(function_executor_id),
|
328
334
|
name=f"Shutdown Function Executor {function_executor_id}",
|
329
335
|
)
|
330
336
|
|
337
|
+
async def _shutdown_function_executor_controller(
|
338
|
+
self, function_executor_id: str
|
339
|
+
) -> None:
|
340
|
+
# We are not cancelling this aio task in self.shutdown(). Because of this the code here should
|
341
|
+
# not fail if the FE controller is not found in internal data structures. It can be removed
|
342
|
+
# by self.shutdown() at any time while we're running this aio task.
|
343
|
+
fe_controller: Optional[FunctionExecutorController] = (
|
344
|
+
self._function_executor_controllers.get(function_executor_id)
|
345
|
+
)
|
346
|
+
if fe_controller is None:
|
347
|
+
return
|
348
|
+
|
349
|
+
await fe_controller.shutdown()
|
350
|
+
self._function_executor_controllers.pop(function_executor_id, None)
|
351
|
+
self._shutting_down_fe_ids.discard(function_executor_id)
|
352
|
+
|
331
353
|
def _reconcile_tasks(self, task_allocations: Iterable[TaskAllocation]):
|
332
354
|
valid_task_allocations: List[TaskAllocation] = self._valid_task_allocations(
|
333
355
|
task_allocations
|
@@ -393,8 +415,6 @@ class ExecutorStateReconciler:
|
|
393
415
|
task_allocation.function_executor_id
|
394
416
|
not in self._function_executor_controllers
|
395
417
|
):
|
396
|
-
# Current policy: don't report task outcomes for tasks that didn't run.
|
397
|
-
# This is required to simplify the protocol so Server doesn't need to care about task states.
|
398
418
|
logger.error(
|
399
419
|
"received TaskAllocation for a Function Executor that doesn't exist, dropping it from desired state"
|
400
420
|
)
|
@@ -36,6 +36,7 @@ from .metrics.state_reporter import (
|
|
36
36
|
)
|
37
37
|
|
38
38
|
_REPORTING_INTERVAL_SEC = 5
|
39
|
+
_REPORTING_BACKOFF_SEC = 5
|
39
40
|
_REPORT_RPC_TIMEOUT_SEC = 5
|
40
41
|
|
41
42
|
|
@@ -49,7 +50,6 @@ class ExecutorStateReporter:
|
|
49
50
|
channel_manager: ChannelManager,
|
50
51
|
host_resources_provider: HostResourcesProvider,
|
51
52
|
logger: Any,
|
52
|
-
reporting_interval_sec: int = _REPORTING_INTERVAL_SEC,
|
53
53
|
):
|
54
54
|
self._executor_id: str = executor_id
|
55
55
|
self._version: str = version
|
@@ -58,7 +58,6 @@ class ExecutorStateReporter:
|
|
58
58
|
self._hostname: str = gethostname()
|
59
59
|
self._channel_manager = channel_manager
|
60
60
|
self._logger: Any = logger.bind(module=__name__)
|
61
|
-
self._reporting_interval_sec: int = reporting_interval_sec
|
62
61
|
self._allowed_functions: List[AllowedFunction] = _to_allowed_function_protos(
|
63
62
|
function_allowlist
|
64
63
|
)
|
@@ -180,7 +179,7 @@ class ExecutorStateReporter:
|
|
180
179
|
async def _periodic_state_report_scheduler_loop(self) -> None:
|
181
180
|
while True:
|
182
181
|
self._state_report_scheduled_event.set()
|
183
|
-
await asyncio.sleep(
|
182
|
+
await asyncio.sleep(_REPORTING_INTERVAL_SEC)
|
184
183
|
|
185
184
|
async def _state_report_worker_loop(self) -> None:
|
186
185
|
"""Runs the state reporter.
|
@@ -202,9 +201,10 @@ class ExecutorStateReporter:
|
|
202
201
|
self._state_reported_event.set()
|
203
202
|
except Exception as e:
|
204
203
|
self._logger.error(
|
205
|
-
f"failed to report state to the server,
|
204
|
+
f"failed to report state to the server, backing-off for {_REPORTING_BACKOFF_SEC} sec.",
|
206
205
|
exc_info=e,
|
207
206
|
)
|
207
|
+
await asyncio.sleep(_REPORTING_BACKOFF_SEC)
|
208
208
|
break # exit the inner loop to recreate the channel if needed
|
209
209
|
|
210
210
|
async def _report_state(self, stub: ExecutorAPIStub):
|
@@ -262,7 +262,6 @@ message TaskResult {
|
|
262
262
|
optional string graph_version = 5;
|
263
263
|
optional string function_name = 6;
|
264
264
|
optional string graph_invocation_id = 7;
|
265
|
-
optional bool reducer = 8;
|
266
265
|
optional TaskOutcomeCode outcome_code = 9;
|
267
266
|
optional TaskFailureReason failure_reason = 10;
|
268
267
|
// Edges that the function wants the invocation to be routed to.
|
@@ -19,7 +19,7 @@ _sym_db = _symbol_database.Default()
|
|
19
19
|
|
20
20
|
|
21
21
|
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(
|
22
|
-
b'\n!indexify/proto/executor_api.proto\x12\x0f\x65xecutor_api_pb"\xeb\x01\n\x0b\x44\x61taPayload\x12\x11\n\x04size\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x18\n\x0bsha256_hash\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x03uri\x18\x04 \x01(\tH\x02\x88\x01\x01\x12;\n\x08\x65ncoding\x18\x05 \x01(\x0e\x32$.executor_api_pb.DataPayloadEncodingH\x03\x88\x01\x01\x12\x1d\n\x10\x65ncoding_version\x18\x06 \x01(\x04H\x04\x88\x01\x01\x42\x07\n\x05_sizeB\x0e\n\x0c_sha256_hashB\x06\n\x04_uriB\x0b\n\t_encodingB\x13\n\x11_encoding_version"e\n\x0cGPUResources\x12\x12\n\x05\x63ount\x18\x01 \x01(\rH\x00\x88\x01\x01\x12-\n\x05model\x18\x02 \x01(\x0e\x32\x19.executor_api_pb.GPUModelH\x01\x88\x01\x01\x42\x08\n\x06_countB\x08\n\x06_model"\xc2\x01\n\rHostResources\x12\x16\n\tcpu_count\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x19\n\x0cmemory_bytes\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x17\n\ndisk_bytes\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12/\n\x03gpu\x18\x04 \x01(\x0b\x32\x1d.executor_api_pb.GPUResourcesH\x03\x88\x01\x01\x42\x0c\n\n_cpu_countB\x0f\n\r_memory_bytesB\r\n\x0b_disk_bytesB\x06\n\x04_gpu"\xbb\x01\n\x0f\x41llowedFunction\x12\x16\n\tnamespace\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x17\n\ngraph_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\rfunction_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rgraph_version\x18\x04 \x01(\tH\x03\x88\x01\x01\x42\x0c\n\n_namespaceB\r\n\x0b_graph_nameB\x10\n\x0e_function_nameB\x10\n\x0e_graph_version"\xd8\x01\n\x19\x46unctionExecutorResources\x12\x1b\n\x0e\x63pu_ms_per_sec\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x19\n\x0cmemory_bytes\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x17\n\ndisk_bytes\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12/\n\x03gpu\x18\x04 \x01(\x0b\x32\x1d.executor_api_pb.GPUResourcesH\x03\x88\x01\x01\x42\x11\n\x0f_cpu_ms_per_secB\x0f\n\r_memory_bytesB\r\n\x0b_disk_bytesB\x06\n\x04_gpu"\xb3\x04\n\x1b\x46unctionExecutorDescription\x12\x0f\n\x02id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x17\n\ngraph_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rgraph_version\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x1a\n\rfunction_name\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x16\n\timage_uri\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x14\n\x0csecret_names\x18\x07 \x03(\t\x12%\n\x18\x63ustomer_code_timeout_ms\x18\t \x01(\rH\x06\x88\x01\x01\x12\x30\n\x05graph\x18\n \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x07\x88\x01\x01\x12\x42\n\tresources\x18\x0b \x01(\x0b\x32*.executor_api_pb.FunctionExecutorResourcesH\x08\x88\x01\x01\x12&\n\x19output_payload_uri_prefix\x18\x0c \x01(\tH\t\x88\x01\x01\x42\x05\n\x03_idB\x0c\n\n_namespaceB\r\n\x0b_graph_nameB\x10\n\x0e_graph_versionB\x10\n\x0e_function_nameB\x0c\n\n_image_uriB\x1b\n\x19_customer_code_timeout_msB\x08\n\x06_graphB\x0c\n\n_resourcesB\x1c\n\x1a_output_payload_uri_prefix"\xcf\x02\n\x15\x46unctionExecutorState\x12\x46\n\x0b\x64\x65scription\x18\x01 \x01(\x0b\x32,.executor_api_pb.FunctionExecutorDescriptionH\x00\x88\x01\x01\x12<\n\x06status\x18\x02 \x01(\x0e\x32\'.executor_api_pb.FunctionExecutorStatusH\x01\x88\x01\x01\x12S\n\x12termination_reason\x18\x03 \x01(\x0e\x32\x32.executor_api_pb.FunctionExecutorTerminationReasonH\x02\x88\x01\x01\x12)\n!allocation_ids_caused_termination\x18\x04 \x03(\tB\x0e\n\x0c_descriptionB\t\n\x07_statusB\x15\n\x13_termination_reason"\x8c\x02\n\x16\x46unctionExecutorUpdate\x12\x46\n\x0b\x64\x65scription\x18\x01 \x01(\x0b\x32,.executor_api_pb.FunctionExecutorDescriptionH\x00\x88\x01\x01\x12\x39\n\x0estartup_stdout\x18\x02 \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x01\x88\x01\x01\x12\x39\n\x0estartup_stderr\x18\x03 \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x02\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x11\n\x0f_startup_stdoutB\x11\n\x0f_startup_stderr"\xce\x05\n\rExecutorState\x12\x18\n\x0b\x65xecutor_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08hostname\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07version\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x34\n\x06status\x18\x06 \x01(\x0e\x32\x1f.executor_api_pb.ExecutorStatusH\x03\x88\x01\x01\x12<\n\x0ftotal_resources\x18\r \x01(\x0b\x32\x1e.executor_api_pb.HostResourcesH\x04\x88\x01\x01\x12N\n!total_function_executor_resources\x18\x07 \x01(\x0b\x32\x1e.executor_api_pb.HostResourcesH\x05\x88\x01\x01\x12;\n\x11\x61llowed_functions\x18\x08 \x03(\x0b\x32 .executor_api_pb.AllowedFunction\x12H\n\x18\x66unction_executor_states\x18\t \x03(\x0b\x32&.executor_api_pb.FunctionExecutorState\x12:\n\x06labels\x18\n \x03(\x0b\x32*.executor_api_pb.ExecutorState.LabelsEntry\x12\x17\n\nstate_hash\x18\x0b \x01(\tH\x06\x88\x01\x01\x12\x19\n\x0cserver_clock\x18\x0c \x01(\x04H\x07\x88\x01\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0e\n\x0c_executor_idB\x0b\n\t_hostnameB\n\n\x08_versionB\t\n\x07_statusB\x12\n\x10_total_resourcesB$\n"_total_function_executor_resourcesB\r\n\x0b_state_hashB\x0f\n\r_server_clock"\xb9\x01\n\x0e\x45xecutorUpdate\x12\x18\n\x0b\x65xecutor_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x31\n\x0ctask_results\x18\x02 \x03(\x0b\x32\x1b.executor_api_pb.TaskResult\x12J\n\x19\x66unction_executor_updates\x18\x03 \x03(\x0b\x32\'.executor_api_pb.FunctionExecutorUpdateB\x0e\n\x0c_executor_id"\xbf\x01\n\x1aReportExecutorStateRequest\x12;\n\x0e\x65xecutor_state\x18\x01 \x01(\x0b\x32\x1e.executor_api_pb.ExecutorStateH\x00\x88\x01\x01\x12=\n\x0f\x65xecutor_update\x18\x02 \x01(\x0b\x32\x1f.executor_api_pb.ExecutorUpdateH\x01\x88\x01\x01\x42\x11\n\x0f_executor_stateB\x12\n\x10_executor_update"\x1d\n\x1bReportExecutorStateResponse"\xcf\x01\n\x0fTaskRetryPolicy\x12\x18\n\x0bmax_retries\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1d\n\x10initial_delay_ms\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0cmax_delay_ms\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1d\n\x10\x64\x65lay_multiplier\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x0e\n\x0c_max_retriesB\x13\n\x11_initial_delay_msB\x0f\n\r_max_delay_msB\x13\n\x11_delay_multiplier"\xc6\x04\n\x04Task\x12\x0f\n\x02id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x17\n\ngraph_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rgraph_version\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x1a\n\rfunction_name\x18\x05 \x01(\tH\x04\x88\x01\x01\x12 \n\x13graph_invocation_id\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x17\n\ntimeout_ms\x18\n \x01(\rH\x06\x88\x01\x01\x12\x30\n\x05input\x18\x0b \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x07\x88\x01\x01\x12\x38\n\rreducer_input\x18\x0c \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x08\x88\x01\x01\x12&\n\x19output_payload_uri_prefix\x18\r \x01(\tH\t\x88\x01\x01\x12;\n\x0cretry_policy\x18\x0e \x01(\x0b\x32 .executor_api_pb.TaskRetryPolicyH\n\x88\x01\x01\x42\x05\n\x03_idB\x0c\n\n_namespaceB\r\n\x0b_graph_nameB\x10\n\x0e_graph_versionB\x10\n\x0e_function_nameB\x16\n\x14_graph_invocation_idB\r\n\x0b_timeout_msB\x08\n\x06_inputB\x10\n\x0e_reducer_inputB\x1c\n\x1a_output_payload_uri_prefixB\x0f\n\r_retry_policy"\xad\x01\n\x0eTaskAllocation\x12!\n\x14\x66unction_executor_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\x04task\x18\x02 \x01(\x0b\x32\x15.executor_api_pb.TaskH\x01\x88\x01\x01\x12\x1a\n\rallocation_id\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x17\n\x15_function_executor_idB\x07\n\x05_taskB\x10\n\x0e_allocation_id"K\n\x1fGetDesiredExecutorStatesRequest\x12\x18\n\x0b\x65xecutor_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_executor_id"\xb9\x01\n\x14\x44\x65siredExecutorState\x12H\n\x12\x66unction_executors\x18\x01 \x03(\x0b\x32,.executor_api_pb.FunctionExecutorDescription\x12\x39\n\x10task_allocations\x18\x02 \x03(\x0b\x32\x1f.executor_api_pb.TaskAllocation\x12\x12\n\x05\x63lock\x18\x03 \x01(\x04H\x00\x88\x01\x01\x42\x08\n\x06_clock"\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"\x8e\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\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_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 = 5332
|
35
|
+
_globals["_DATAPAYLOADENCODING"]._serialized_end = 5541
|
36
|
+
_globals["_GPUMODEL"]._serialized_start = 5544
|
37
|
+
_globals["_GPUMODEL"]._serialized_end = 5758
|
38
|
+
_globals["_FUNCTIONEXECUTORSTATUS"]._serialized_start = 5761
|
39
|
+
_globals["_FUNCTIONEXECUTORSTATUS"]._serialized_end = 5940
|
40
|
+
_globals["_FUNCTIONEXECUTORTERMINATIONREASON"]._serialized_start = 5943
|
41
|
+
_globals["_FUNCTIONEXECUTORTERMINATIONREASON"]._serialized_end = 6475
|
42
|
+
_globals["_EXECUTORSTATUS"]._serialized_start = 6478
|
43
|
+
_globals["_EXECUTORSTATUS"]._serialized_end = 6643
|
44
|
+
_globals["_TASKOUTCOMECODE"]._serialized_start = 6645
|
45
|
+
_globals["_TASKOUTCOMECODE"]._serialized_end = 6755
|
46
|
+
_globals["_TASKFAILUREREASON"]._serialized_start = 6758
|
47
|
+
_globals["_TASKFAILUREREASON"]._serialized_end = 7068
|
48
48
|
_globals["_DATAPAYLOAD"]._serialized_start = 55
|
49
49
|
_globals["_DATAPAYLOAD"]._serialized_end = 290
|
50
50
|
_globals["_GPURESOURCES"]._serialized_start = 292
|
@@ -82,7 +82,7 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
82
82
|
_globals["_DESIREDEXECUTORSTATE"]._serialized_start = 4359
|
83
83
|
_globals["_DESIREDEXECUTORSTATE"]._serialized_end = 4544
|
84
84
|
_globals["_TASKRESULT"]._serialized_start = 4547
|
85
|
-
_globals["_TASKRESULT"]._serialized_end =
|
86
|
-
_globals["_EXECUTORAPI"]._serialized_start =
|
87
|
-
_globals["_EXECUTORAPI"]._serialized_end =
|
85
|
+
_globals["_TASKRESULT"]._serialized_end = 5329
|
86
|
+
_globals["_EXECUTORAPI"]._serialized_start = 7071
|
87
|
+
_globals["_EXECUTORAPI"]._serialized_end = 7326
|
88
88
|
# @@protoc_insertion_point(module_scope)
|
@@ -536,7 +536,6 @@ class TaskResult(_message.Message):
|
|
536
536
|
"graph_version",
|
537
537
|
"function_name",
|
538
538
|
"graph_invocation_id",
|
539
|
-
"reducer",
|
540
539
|
"outcome_code",
|
541
540
|
"failure_reason",
|
542
541
|
"next_functions",
|
@@ -552,7 +551,6 @@ class TaskResult(_message.Message):
|
|
552
551
|
GRAPH_VERSION_FIELD_NUMBER: _ClassVar[int]
|
553
552
|
FUNCTION_NAME_FIELD_NUMBER: _ClassVar[int]
|
554
553
|
GRAPH_INVOCATION_ID_FIELD_NUMBER: _ClassVar[int]
|
555
|
-
REDUCER_FIELD_NUMBER: _ClassVar[int]
|
556
554
|
OUTCOME_CODE_FIELD_NUMBER: _ClassVar[int]
|
557
555
|
FAILURE_REASON_FIELD_NUMBER: _ClassVar[int]
|
558
556
|
NEXT_FUNCTIONS_FIELD_NUMBER: _ClassVar[int]
|
@@ -567,7 +565,6 @@ class TaskResult(_message.Message):
|
|
567
565
|
graph_version: str
|
568
566
|
function_name: str
|
569
567
|
graph_invocation_id: str
|
570
|
-
reducer: bool
|
571
568
|
outcome_code: TaskOutcomeCode
|
572
569
|
failure_reason: TaskFailureReason
|
573
570
|
next_functions: _containers.RepeatedScalarFieldContainer[str]
|
@@ -584,7 +581,6 @@ class TaskResult(_message.Message):
|
|
584
581
|
graph_version: _Optional[str] = ...,
|
585
582
|
function_name: _Optional[str] = ...,
|
586
583
|
graph_invocation_id: _Optional[str] = ...,
|
587
|
-
reducer: bool = ...,
|
588
584
|
outcome_code: _Optional[_Union[TaskOutcomeCode, str]] = ...,
|
589
585
|
failure_reason: _Optional[_Union[TaskFailureReason, str]] = ...,
|
590
586
|
next_functions: _Optional[_Iterable[str]] = ...,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor/function_executor.py
RENAMED
File without changes
|
{indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor/health_checker.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor_controller/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor_controller/downloads.py
RENAMED
File without changes
|
{indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor_controller/events.py
RENAMED
File without changes
|
File without changes
|
{indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor_controller/loggers.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/function_executor_controller/task_info.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/host_resources/nvidia_gpu_allocator.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/monitoring/health_check_handler.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/monitoring/prometheus_metrics_handler.py
RENAMED
File without changes
|
File without changes
|
{indexify-0.4.13 → indexify-0.4.15}/src/indexify/executor/monitoring/startup_probe_handler.py
RENAMED
File without changes
|