indexify 0.4.27__py3-none-any.whl → 0.4.29__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.
@@ -23,9 +23,11 @@ from .metrics.executor import (
23
23
  metric_executor_info,
24
24
  metric_executor_state,
25
25
  )
26
+ from .monitoring.desired_state_handler import DesiredStateHandler
26
27
  from .monitoring.health_check_handler import HealthCheckHandler
27
28
  from .monitoring.health_checker.health_checker import HealthChecker
28
29
  from .monitoring.prometheus_metrics_handler import PrometheusMetricsHandler
30
+ from .monitoring.reported_state_handler import ReportedStateHandler
29
31
  from .monitoring.server import MonitoringServer
30
32
  from .monitoring.startup_probe_handler import StartupProbeHandler
31
33
  from .state_reconciler import ExecutorStateReconciler
@@ -59,13 +61,6 @@ class Executor:
59
61
  protocol = "https"
60
62
 
61
63
  self._startup_probe_handler = StartupProbeHandler()
62
- self._monitoring_server = MonitoringServer(
63
- host=monitoring_server_host,
64
- port=monitoring_server_port,
65
- startup_probe_handler=self._startup_probe_handler,
66
- health_probe_handler=HealthCheckHandler(health_checker),
67
- metrics_handler=PrometheusMetricsHandler(),
68
- )
69
64
  self._channel_manager = ChannelManager(
70
65
  server_address=grpc_server_addr,
71
66
  config_path=config_path,
@@ -96,6 +91,15 @@ class Executor:
96
91
  state_reporter=self._state_reporter,
97
92
  logger=self._logger,
98
93
  )
94
+ self._monitoring_server = MonitoringServer(
95
+ host=monitoring_server_host,
96
+ port=monitoring_server_port,
97
+ startup_probe_handler=self._startup_probe_handler,
98
+ health_probe_handler=HealthCheckHandler(health_checker),
99
+ metrics_handler=PrometheusMetricsHandler(),
100
+ reported_state_handler=ReportedStateHandler(self._state_reporter),
101
+ desired_state_handler=DesiredStateHandler(self._state_reconciler),
102
+ )
99
103
  self._run_aio_task: Optional[asyncio.Task] = None
100
104
  self._shutdown_aio_task: Optional[asyncio.Task] = None
101
105
 
@@ -137,7 +137,7 @@ class FunctionExecutorController:
137
137
  self._tasks: Dict[str, TaskInfo] = {}
138
138
  # Tracking of task execution on Function Executor.
139
139
  self._runnable_tasks: List[TaskInfo] = []
140
- self._running_task: Optional[TaskInfo] = None
140
+ self._running_tasks: List[TaskInfo] = []
141
141
 
142
142
  def function_executor_id(self) -> str:
143
143
  return self._fe_description.id
@@ -538,11 +538,9 @@ class FunctionExecutorController:
538
538
 
539
539
  self._start_termination(
540
540
  fe_termination_reason=FunctionExecutorTerminationReason.FUNCTION_EXECUTOR_TERMINATION_REASON_UNHEALTHY,
541
- allocation_ids_caused_termination=(
542
- []
543
- if self._running_task is None
544
- else [self._running_task.allocation.allocation_id]
545
- ),
541
+ allocation_ids_caused_termination=[
542
+ task.allocation.allocation_id for task in self._running_tasks
543
+ ],
546
544
  )
547
545
 
548
546
  def _handle_event_task_preparation_finished(
@@ -601,7 +599,7 @@ class FunctionExecutorController:
601
599
 
602
600
  if (
603
601
  self._internal_state == _FE_CONTROLLER_STATE.RUNNING
604
- and self._running_task is not None
602
+ and len(self._running_tasks) == self._fe_description.max_concurrency
605
603
  ):
606
604
  return
607
605
 
@@ -626,13 +624,13 @@ class FunctionExecutorController:
626
624
  _FE_CONTROLLER_STATE.TERMINATED,
627
625
  ]:
628
626
  if task_info.output is None:
629
- # The output can be set already by FE startup failure handler.
627
+ # The output could be set already by FE startup failure handler.
630
628
  task_info.output = TaskOutput.function_executor_terminated(
631
629
  task_info.allocation
632
630
  )
633
631
  self._start_task_finalization(task_info)
634
632
  elif self._internal_state == _FE_CONTROLLER_STATE.RUNNING:
635
- self._running_task = task_info
633
+ self._running_tasks.append(task_info)
636
634
  next_aio = run_task_on_function_executor(
637
635
  task_info=task_info,
638
636
  function_executor=self._fe,
@@ -667,7 +665,8 @@ class FunctionExecutorController:
667
665
 
668
666
  Doesn't raise any exceptions. Doesn't block.
669
667
  """
670
- self._running_task = None
668
+ task_info: TaskInfo = event.task_info
669
+ self._running_tasks.remove(task_info)
671
670
 
672
671
  if event.function_executor_termination_reason is None:
673
672
  self._add_event(
@@ -681,7 +680,6 @@ class FunctionExecutorController:
681
680
  ],
682
681
  )
683
682
 
684
- task_info: TaskInfo = event.task_info
685
683
  if task_info.output is None:
686
684
  # `run_task_on_function_executor` guarantees that the output is set in
687
685
  # all cases including task cancellations. If this didn't happen then some
@@ -944,7 +942,7 @@ def _to_data_payload_encoding(
944
942
  return DataPayloadEncoding.DATA_PAYLOAD_ENCODING_UTF8_TEXT
945
943
  else:
946
944
  logger.error(
947
- "Unexpected encoding for SerializedObject",
945
+ "unexpected encoding for SerializedObject",
948
946
  encoding=SerializedObjectEncoding.Name(encoding),
949
947
  )
950
948
  return DataPayloadEncoding.DATA_PAYLOAD_ENCODING_UNKNOWN
@@ -25,6 +25,7 @@ def validate_function_executor_description(
25
25
  validator.required_field("customer_code_timeout_ms")
26
26
  validator.required_field("graph")
27
27
  validator.required_field("resources")
28
+ validator.required_field("max_concurrency")
28
29
 
29
30
  _validate_data_payload(function_executor_description.graph)
30
31
 
@@ -65,7 +65,7 @@ async def prepare_task(
65
65
  logger=logger,
66
66
  )
67
67
  logger.info(
68
- "Task was prepared for execution",
68
+ "task was prepared for execution",
69
69
  duration=time.monotonic() - start_time,
70
70
  )
71
71
  return TaskPreparationFinished(
@@ -76,7 +76,7 @@ async def prepare_task(
76
76
  return TaskPreparationFinished(task_info=task_info, is_success=False)
77
77
  except BaseException as e:
78
78
  logger.error(
79
- "Failed to prepare task for execution",
79
+ "failed to prepare task for execution",
80
80
  exc_info=e,
81
81
  duration=time.monotonic() - start_time,
82
82
  )
@@ -176,7 +176,7 @@ async def run_task_on_function_executor(
176
176
  # This is an unexpected exception; we believe that this
177
177
  # indicates an internal error.
178
178
  logger.error(
179
- "Unexpected internal error during task lifecycle RPC sequence", exc_info=e
179
+ "unexpected internal error during task lifecycle RPC sequence", exc_info=e
180
180
  )
181
181
  task_info.output = TaskOutput.internal_error(
182
182
  allocation=task_info.allocation,
@@ -357,7 +357,7 @@ def _to_task_outcome_code(
357
357
  return TaskOutcomeCode.TASK_OUTCOME_CODE_FAILURE
358
358
  else:
359
359
  logger.warning(
360
- "Unknown TaskOutcomeCode received from Function Executor",
360
+ "unknown TaskOutcomeCode received from Function Executor",
361
361
  value=FETaskOutcomeCode.Name(fe_task_outcome_code),
362
362
  )
363
363
  return TaskOutcomeCode.TASK_OUTCOME_CODE_UNKNOWN
@@ -379,7 +379,7 @@ def _to_task_failure_reason(
379
379
  return TaskFailureReason.TASK_FAILURE_REASON_INTERNAL_ERROR
380
380
  else:
381
381
  logger.warning(
382
- "Unknown TaskFailureReason received from Function Executor",
382
+ "unknown TaskFailureReason received from Function Executor",
383
383
  value=FETaskFailureReason.Name(fe_task_failure_reason),
384
384
  )
385
385
  return TaskFailureReason.TASK_FAILURE_REASON_UNKNOWN
@@ -0,0 +1,24 @@
1
+ from aiohttp import web
2
+
3
+ from indexify.proto.executor_api_pb2 import (
4
+ DesiredExecutorState,
5
+ )
6
+
7
+ from ..state_reconciler import ExecutorStateReconciler
8
+ from .handler import Handler
9
+
10
+
11
+ class DesiredStateHandler(Handler):
12
+ def __init__(self, state_reconciler: ExecutorStateReconciler):
13
+ self._state_reconciler = state_reconciler
14
+
15
+ async def handle(self, request: web.Request) -> web.Response:
16
+ desired_state: DesiredExecutorState | None = (
17
+ self._state_reconciler.get_desired_state()
18
+ )
19
+ if desired_state is None:
20
+ return web.Response(
21
+ status=200, text="No desired state received from Server yet"
22
+ )
23
+ else:
24
+ return web.Response(text=str(desired_state))
@@ -0,0 +1,22 @@
1
+ from aiohttp import web
2
+
3
+ from indexify.proto.executor_api_pb2 import (
4
+ ReportExecutorStateRequest,
5
+ )
6
+
7
+ from ..state_reporter import ExecutorStateReporter
8
+ from .handler import Handler
9
+
10
+
11
+ class ReportedStateHandler(Handler):
12
+ def __init__(self, state_reporter: ExecutorStateReporter):
13
+ self._state_reporter = state_reporter
14
+
15
+ async def handle(self, request: web.Request) -> web.Response:
16
+ request: ReportExecutorStateRequest | None = (
17
+ self._state_reporter.last_state_report_request()
18
+ )
19
+ if request is None:
20
+ return web.Response(status=200, text="No state reported so far")
21
+ else:
22
+ return web.Response(text=str(request))
@@ -11,6 +11,8 @@ class MonitoringServer:
11
11
  startup_probe_handler: Handler,
12
12
  health_probe_handler: Handler,
13
13
  metrics_handler: Handler,
14
+ reported_state_handler: Handler,
15
+ desired_state_handler: Handler,
14
16
  ):
15
17
  self._host = host
16
18
  self._port = port
@@ -20,6 +22,8 @@ class MonitoringServer:
20
22
  web.get("/monitoring/startup", startup_probe_handler.handle),
21
23
  web.get("/monitoring/health", health_probe_handler.handle),
22
24
  web.get("/monitoring/metrics", metrics_handler.handle),
25
+ web.get("/state/reported", reported_state_handler.handle),
26
+ web.get("/state/desired", desired_state_handler.handle),
23
27
  ]
24
28
  )
25
29
  self._app_runner: web.AppRunner = web.AppRunner(self._app)
@@ -88,6 +88,9 @@ class ExecutorStateReconciler:
88
88
  )
89
89
  self._last_desired_state: Optional[DesiredExecutorState] = None
90
90
 
91
+ def get_desired_state(self) -> Optional[DesiredExecutorState]:
92
+ return self._last_desired_state
93
+
91
94
  def run(self):
92
95
  """Runs the state reconciler.
93
96
 
@@ -89,6 +89,10 @@ class ExecutorStateReporter:
89
89
  self._pending_task_results: List[TaskResult] = []
90
90
  self._pending_fe_updates: List[FunctionExecutorUpdate] = []
91
91
  self._function_executor_states: Dict[str, FunctionExecutorState] = {}
92
+ self._last_state_report_request: Optional[ReportExecutorStateRequest] = None
93
+
94
+ def last_state_report_request(self) -> Optional[ReportExecutorStateRequest]:
95
+ return self._last_state_report_request
92
96
 
93
97
  def update_executor_status(self, value: ExecutorStatus) -> None:
94
98
  self._executor_status = value
@@ -203,7 +207,11 @@ class ExecutorStateReporter:
203
207
  try:
204
208
  state: ExecutorState = self._current_executor_state()
205
209
  update: ExecutorUpdate = self._remove_pending_update()
210
+ request: ReportExecutorStateRequest = ReportExecutorStateRequest(
211
+ executor_state=state, executor_update=update
212
+ )
206
213
  _log_reported_executor_update(update, self._logger)
214
+ self._last_state_report_request = request
207
215
 
208
216
  with (
209
217
  metric_state_report_rpc_errors.count_exceptions(),
@@ -211,10 +219,7 @@ class ExecutorStateReporter:
211
219
  ):
212
220
  metric_state_report_rpcs.inc()
213
221
  await stub.report_executor_state(
214
- ReportExecutorStateRequest(
215
- executor_state=state, executor_update=update
216
- ),
217
- timeout=_REPORT_RPC_TIMEOUT_SEC,
222
+ request, timeout=_REPORT_RPC_TIMEOUT_SEC
218
223
  )
219
224
  self._state_reported_event.set()
220
225
  self._health_checker.server_connection_state_changed(
@@ -112,7 +112,6 @@ message FunctionExecutorDescription {
112
112
  optional string graph_name = 3;
113
113
  optional string graph_version = 4;
114
114
  optional string function_name = 5;
115
- optional string image_uri = 6;
116
115
  repeated string secret_names = 7;
117
116
  // Timeout for customer code duration during FE creation.
118
117
  optional uint32 customer_code_timeout_ms = 9;
@@ -123,6 +122,7 @@ message FunctionExecutorDescription {
123
122
  // Starts with "file://"" prefix followed by an absolute directory path if the data is stored on a local file system.
124
123
  // Deprecated: most probably going to be removed once external FE logs ingestion pipeline gets implemented.
125
124
  optional string output_payload_uri_prefix = 12;
125
+ optional uint32 max_concurrency = 13;
126
126
  }
127
127
 
128
128
  message FunctionExecutorState {
@@ -19,7 +19,7 @@ _sym_db = _symbol_database.Default()
19
19
 
20
20
 
21
21
  DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(
22
- b'\n!indexify/proto/executor_api.proto\x12\x0f\x65xecutor_api_pb"\x8b\x02\n\x0b\x44\x61taPayload\x12\x11\n\x04size\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x18\n\x0bsha256_hash\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x03uri\x18\x04 \x01(\tH\x02\x88\x01\x01\x12;\n\x08\x65ncoding\x18\x05 \x01(\x0e\x32$.executor_api_pb.DataPayloadEncodingH\x03\x88\x01\x01\x12\x1d\n\x10\x65ncoding_version\x18\x06 \x01(\x04H\x04\x88\x01\x01\x12\x13\n\x06offset\x18\x07 \x01(\x04H\x05\x88\x01\x01\x42\x07\n\x05_sizeB\x0e\n\x0c_sha256_hashB\x06\n\x04_uriB\x0b\n\t_encodingB\x13\n\x11_encoding_versionB\t\n\x07_offset"e\n\x0cGPUResources\x12\x12\n\x05\x63ount\x18\x01 \x01(\rH\x00\x88\x01\x01\x12-\n\x05model\x18\x02 \x01(\x0e\x32\x19.executor_api_pb.GPUModelH\x01\x88\x01\x01\x42\x08\n\x06_countB\x08\n\x06_model"\xc2\x01\n\rHostResources\x12\x16\n\tcpu_count\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x19\n\x0cmemory_bytes\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x17\n\ndisk_bytes\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12/\n\x03gpu\x18\x04 \x01(\x0b\x32\x1d.executor_api_pb.GPUResourcesH\x03\x88\x01\x01\x42\x0c\n\n_cpu_countB\x0f\n\r_memory_bytesB\r\n\x0b_disk_bytesB\x06\n\x04_gpu"\xbb\x01\n\x0f\x41llowedFunction\x12\x16\n\tnamespace\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x17\n\ngraph_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\rfunction_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rgraph_version\x18\x04 \x01(\tH\x03\x88\x01\x01\x42\x0c\n\n_namespaceB\r\n\x0b_graph_nameB\x10\n\x0e_function_nameB\x10\n\x0e_graph_version"\xd8\x01\n\x19\x46unctionExecutorResources\x12\x1b\n\x0e\x63pu_ms_per_sec\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x19\n\x0cmemory_bytes\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x17\n\ndisk_bytes\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12/\n\x03gpu\x18\x04 \x01(\x0b\x32\x1d.executor_api_pb.GPUResourcesH\x03\x88\x01\x01\x42\x11\n\x0f_cpu_ms_per_secB\x0f\n\r_memory_bytesB\r\n\x0b_disk_bytesB\x06\n\x04_gpu"\xb3\x04\n\x1b\x46unctionExecutorDescription\x12\x0f\n\x02id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x17\n\ngraph_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rgraph_version\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x1a\n\rfunction_name\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x16\n\timage_uri\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x14\n\x0csecret_names\x18\x07 \x03(\t\x12%\n\x18\x63ustomer_code_timeout_ms\x18\t \x01(\rH\x06\x88\x01\x01\x12\x30\n\x05graph\x18\n \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x07\x88\x01\x01\x12\x42\n\tresources\x18\x0b \x01(\x0b\x32*.executor_api_pb.FunctionExecutorResourcesH\x08\x88\x01\x01\x12&\n\x19output_payload_uri_prefix\x18\x0c \x01(\tH\t\x88\x01\x01\x42\x05\n\x03_idB\x0c\n\n_namespaceB\r\n\x0b_graph_nameB\x10\n\x0e_graph_versionB\x10\n\x0e_function_nameB\x0c\n\n_image_uriB\x1b\n\x19_customer_code_timeout_msB\x08\n\x06_graphB\x0c\n\n_resourcesB\x1c\n\x1a_output_payload_uri_prefix"\xcf\x02\n\x15\x46unctionExecutorState\x12\x46\n\x0b\x64\x65scription\x18\x01 \x01(\x0b\x32,.executor_api_pb.FunctionExecutorDescriptionH\x00\x88\x01\x01\x12<\n\x06status\x18\x02 \x01(\x0e\x32\'.executor_api_pb.FunctionExecutorStatusH\x01\x88\x01\x01\x12S\n\x12termination_reason\x18\x03 \x01(\x0e\x32\x32.executor_api_pb.FunctionExecutorTerminationReasonH\x02\x88\x01\x01\x12)\n!allocation_ids_caused_termination\x18\x04 \x03(\tB\x0e\n\x0c_descriptionB\t\n\x07_statusB\x15\n\x13_termination_reason"\x8c\x02\n\x16\x46unctionExecutorUpdate\x12\x46\n\x0b\x64\x65scription\x18\x01 \x01(\x0b\x32,.executor_api_pb.FunctionExecutorDescriptionH\x00\x88\x01\x01\x12\x39\n\x0estartup_stdout\x18\x02 \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x01\x88\x01\x01\x12\x39\n\x0estartup_stderr\x18\x03 \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x02\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x11\n\x0f_startup_stdoutB\x11\n\x0f_startup_stderr"\xce\x05\n\rExecutorState\x12\x18\n\x0b\x65xecutor_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08hostname\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07version\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x34\n\x06status\x18\x06 \x01(\x0e\x32\x1f.executor_api_pb.ExecutorStatusH\x03\x88\x01\x01\x12<\n\x0ftotal_resources\x18\r \x01(\x0b\x32\x1e.executor_api_pb.HostResourcesH\x04\x88\x01\x01\x12N\n!total_function_executor_resources\x18\x07 \x01(\x0b\x32\x1e.executor_api_pb.HostResourcesH\x05\x88\x01\x01\x12;\n\x11\x61llowed_functions\x18\x08 \x03(\x0b\x32 .executor_api_pb.AllowedFunction\x12H\n\x18\x66unction_executor_states\x18\t \x03(\x0b\x32&.executor_api_pb.FunctionExecutorState\x12:\n\x06labels\x18\n \x03(\x0b\x32*.executor_api_pb.ExecutorState.LabelsEntry\x12\x17\n\nstate_hash\x18\x0b \x01(\tH\x06\x88\x01\x01\x12\x19\n\x0cserver_clock\x18\x0c \x01(\x04H\x07\x88\x01\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0e\n\x0c_executor_idB\x0b\n\t_hostnameB\n\n\x08_versionB\t\n\x07_statusB\x12\n\x10_total_resourcesB$\n"_total_function_executor_resourcesB\r\n\x0b_state_hashB\x0f\n\r_server_clock"\xb9\x01\n\x0e\x45xecutorUpdate\x12\x18\n\x0b\x65xecutor_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x31\n\x0ctask_results\x18\x02 \x03(\x0b\x32\x1b.executor_api_pb.TaskResult\x12J\n\x19\x66unction_executor_updates\x18\x03 \x03(\x0b\x32\'.executor_api_pb.FunctionExecutorUpdateB\x0e\n\x0c_executor_id"\xbf\x01\n\x1aReportExecutorStateRequest\x12;\n\x0e\x65xecutor_state\x18\x01 \x01(\x0b\x32\x1e.executor_api_pb.ExecutorStateH\x00\x88\x01\x01\x12=\n\x0f\x65xecutor_update\x18\x02 \x01(\x0b\x32\x1f.executor_api_pb.ExecutorUpdateH\x01\x88\x01\x01\x42\x11\n\x0f_executor_stateB\x12\n\x10_executor_update"\x1d\n\x1bReportExecutorStateResponse"\xcf\x01\n\x0fTaskRetryPolicy\x12\x18\n\x0bmax_retries\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1d\n\x10initial_delay_ms\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0cmax_delay_ms\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1d\n\x10\x64\x65lay_multiplier\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x0e\n\x0c_max_retriesB\x13\n\x11_initial_delay_msB\x0f\n\r_max_delay_msB\x13\n\x11_delay_multiplier"\xa0\x05\n\x04Task\x12\x0f\n\x02id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x17\n\ngraph_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rgraph_version\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x1a\n\rfunction_name\x18\x05 \x01(\tH\x04\x88\x01\x01\x12 \n\x13graph_invocation_id\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x17\n\ntimeout_ms\x18\n \x01(\rH\x06\x88\x01\x01\x12\x30\n\x05input\x18\x0b \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x07\x88\x01\x01\x12\x38\n\rreducer_input\x18\x0c \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x08\x88\x01\x01\x12&\n\x19output_payload_uri_prefix\x18\r \x01(\tH\t\x88\x01\x01\x12;\n\x0cretry_policy\x18\x0e \x01(\x0b\x32 .executor_api_pb.TaskRetryPolicyH\n\x88\x01\x01\x12\x30\n#invocation_error_payload_uri_prefix\x18\x0f \x01(\tH\x0b\x88\x01\x01\x42\x05\n\x03_idB\x0c\n\n_namespaceB\r\n\x0b_graph_nameB\x10\n\x0e_graph_versionB\x10\n\x0e_function_nameB\x16\n\x14_graph_invocation_idB\r\n\x0b_timeout_msB\x08\n\x06_inputB\x10\n\x0e_reducer_inputB\x1c\n\x1a_output_payload_uri_prefixB\x0f\n\r_retry_policyB&\n$_invocation_error_payload_uri_prefix"\xad\x01\n\x0eTaskAllocation\x12!\n\x14\x66unction_executor_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\x04task\x18\x02 \x01(\x0b\x32\x15.executor_api_pb.TaskH\x01\x88\x01\x01\x12\x1a\n\rallocation_id\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x17\n\x15_function_executor_idB\x07\n\x05_taskB\x10\n\x0e_allocation_id"K\n\x1fGetDesiredExecutorStatesRequest\x12\x18\n\x0b\x65xecutor_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_executor_id"\xb9\x01\n\x14\x44\x65siredExecutorState\x12H\n\x12\x66unction_executors\x18\x01 \x03(\x0b\x32,.executor_api_pb.FunctionExecutorDescription\x12\x39\n\x10task_allocations\x18\x02 \x03(\x0b\x32\x1f.executor_api_pb.TaskAllocation\x12\x12\n\x05\x63lock\x18\x03 \x01(\x04H\x00\x88\x01\x01\x42\x08\n\x06_clock"\xcc\x06\n\nTaskResult\x12\x14\n\x07task_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rallocation_id\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x16\n\tnamespace\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\ngraph_name\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x1a\n\rgraph_version\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\rfunction_name\x18\x06 \x01(\tH\x05\x88\x01\x01\x12 \n\x13graph_invocation_id\x18\x07 \x01(\tH\x06\x88\x01\x01\x12;\n\x0coutcome_code\x18\t \x01(\x0e\x32 .executor_api_pb.TaskOutcomeCodeH\x07\x88\x01\x01\x12?\n\x0e\x66\x61ilure_reason\x18\n \x01(\x0e\x32".executor_api_pb.TaskFailureReasonH\x08\x88\x01\x01\x12\x16\n\x0enext_functions\x18\x0b \x03(\t\x12\x36\n\x10\x66unction_outputs\x18\x0c \x03(\x0b\x32\x1c.executor_api_pb.DataPayload\x12\x31\n\x06stdout\x18\r \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\t\x88\x01\x01\x12\x31\n\x06stderr\x18\x0e \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\n\x88\x01\x01\x12\x42\n\x17invocation_error_output\x18\x0f \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x0b\x88\x01\x01\x12"\n\x15\x65xecution_duration_ms\x18\x10 \x01(\x04H\x0c\x88\x01\x01\x42\n\n\x08_task_idB\x10\n\x0e_allocation_idB\x0c\n\n_namespaceB\r\n\x0b_graph_nameB\x10\n\x0e_graph_versionB\x10\n\x0e_function_nameB\x16\n\x14_graph_invocation_idB\x0f\n\r_outcome_codeB\x11\n\x0f_failure_reasonB\t\n\x07_stdoutB\t\n\x07_stderrB\x1a\n\x18_invocation_error_outputB\x18\n\x16_execution_duration_ms*\xd1\x01\n\x13\x44\x61taPayloadEncoding\x12!\n\x1d\x44\x41TA_PAYLOAD_ENCODING_UNKNOWN\x10\x00\x12#\n\x1f\x44\x41TA_PAYLOAD_ENCODING_UTF8_JSON\x10\x01\x12#\n\x1f\x44\x41TA_PAYLOAD_ENCODING_UTF8_TEXT\x10\x02\x12\'\n#DATA_PAYLOAD_ENCODING_BINARY_PICKLE\x10\x03\x12$\n DATA_PAYLOAD_ENCODING_BINARY_ZIP\x10\x04*\xd6\x01\n\x08GPUModel\x12\x15\n\x11GPU_MODEL_UNKNOWN\x10\x00\x12\x1e\n\x1aGPU_MODEL_NVIDIA_A100_40GB\x10\x01\x12\x1e\n\x1aGPU_MODEL_NVIDIA_A100_80GB\x10\x02\x12\x1e\n\x1aGPU_MODEL_NVIDIA_H100_80GB\x10\x03\x12\x1d\n\x19GPU_MODEL_NVIDIA_TESLA_T4\x10\x04\x12\x1a\n\x16GPU_MODEL_NVIDIA_A6000\x10\x05\x12\x18\n\x14GPU_MODEL_NVIDIA_A10\x10\x06*\xb3\x01\n\x16\x46unctionExecutorStatus\x12$\n FUNCTION_EXECUTOR_STATUS_UNKNOWN\x10\x00\x12$\n FUNCTION_EXECUTOR_STATUS_PENDING\x10\x01\x12$\n FUNCTION_EXECUTOR_STATUS_RUNNING\x10\x02\x12\'\n#FUNCTION_EXECUTOR_STATUS_TERMINATED\x10\x03*\x94\x04\n!FunctionExecutorTerminationReason\x12\x30\n,FUNCTION_EXECUTOR_TERMINATION_REASON_UNKNOWN\x10\x00\x12\x46\nBFUNCTION_EXECUTOR_TERMINATION_REASON_STARTUP_FAILED_INTERNAL_ERROR\x10\x01\x12\x46\nBFUNCTION_EXECUTOR_TERMINATION_REASON_STARTUP_FAILED_FUNCTION_ERROR\x10\x02\x12H\nDFUNCTION_EXECUTOR_TERMINATION_REASON_STARTUP_FAILED_FUNCTION_TIMEOUT\x10\x03\x12\x32\n.FUNCTION_EXECUTOR_TERMINATION_REASON_UNHEALTHY\x10\x0c\x12\x37\n3FUNCTION_EXECUTOR_TERMINATION_REASON_INTERNAL_ERROR\x10\r\x12\x39\n5FUNCTION_EXECUTOR_TERMINATION_REASON_FUNCTION_TIMEOUT\x10\x0e\x12;\n7FUNCTION_EXECUTOR_TERMINATION_REASON_FUNCTION_CANCELLED\x10\x0f*\xa5\x01\n\x0e\x45xecutorStatus\x12\x1b\n\x17\x45XECUTOR_STATUS_UNKNOWN\x10\x00\x12\x1f\n\x1b\x45XECUTOR_STATUS_STARTING_UP\x10\x01\x12\x1b\n\x17\x45XECUTOR_STATUS_RUNNING\x10\x02\x12\x1b\n\x17\x45XECUTOR_STATUS_DRAINED\x10\x03\x12\x1b\n\x17\x45XECUTOR_STATUS_STOPPED\x10\x04*n\n\x0fTaskOutcomeCode\x12\x1d\n\x19TASK_OUTCOME_CODE_UNKNOWN\x10\x00\x12\x1d\n\x19TASK_OUTCOME_CODE_SUCCESS\x10\x01\x12\x1d\n\x19TASK_OUTCOME_CODE_FAILURE\x10\x02*\xb6\x02\n\x11TaskFailureReason\x12\x1f\n\x1bTASK_FAILURE_REASON_UNKNOWN\x10\x00\x12&\n"TASK_FAILURE_REASON_INTERNAL_ERROR\x10\x01\x12&\n"TASK_FAILURE_REASON_FUNCTION_ERROR\x10\x02\x12(\n$TASK_FAILURE_REASON_FUNCTION_TIMEOUT\x10\x03\x12(\n$TASK_FAILURE_REASON_INVOCATION_ERROR\x10\x04\x12&\n"TASK_FAILURE_REASON_TASK_CANCELLED\x10\x05\x12\x34\n0TASK_FAILURE_REASON_FUNCTION_EXECUTOR_TERMINATED\x10\x06\x32\xff\x01\n\x0b\x45xecutorAPI\x12t\n\x15report_executor_state\x12+.executor_api_pb.ReportExecutorStateRequest\x1a,.executor_api_pb.ReportExecutorStateResponse"\x00\x12z\n\x1bget_desired_executor_states\x12\x30.executor_api_pb.GetDesiredExecutorStatesRequest\x1a%.executor_api_pb.DesiredExecutorState"\x00\x30\x01\x62\x06proto3'
22
+ b'\n!indexify/proto/executor_api.proto\x12\x0f\x65xecutor_api_pb"\x8b\x02\n\x0b\x44\x61taPayload\x12\x11\n\x04size\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x18\n\x0bsha256_hash\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x03uri\x18\x04 \x01(\tH\x02\x88\x01\x01\x12;\n\x08\x65ncoding\x18\x05 \x01(\x0e\x32$.executor_api_pb.DataPayloadEncodingH\x03\x88\x01\x01\x12\x1d\n\x10\x65ncoding_version\x18\x06 \x01(\x04H\x04\x88\x01\x01\x12\x13\n\x06offset\x18\x07 \x01(\x04H\x05\x88\x01\x01\x42\x07\n\x05_sizeB\x0e\n\x0c_sha256_hashB\x06\n\x04_uriB\x0b\n\t_encodingB\x13\n\x11_encoding_versionB\t\n\x07_offset"e\n\x0cGPUResources\x12\x12\n\x05\x63ount\x18\x01 \x01(\rH\x00\x88\x01\x01\x12-\n\x05model\x18\x02 \x01(\x0e\x32\x19.executor_api_pb.GPUModelH\x01\x88\x01\x01\x42\x08\n\x06_countB\x08\n\x06_model"\xc2\x01\n\rHostResources\x12\x16\n\tcpu_count\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x19\n\x0cmemory_bytes\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x17\n\ndisk_bytes\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12/\n\x03gpu\x18\x04 \x01(\x0b\x32\x1d.executor_api_pb.GPUResourcesH\x03\x88\x01\x01\x42\x0c\n\n_cpu_countB\x0f\n\r_memory_bytesB\r\n\x0b_disk_bytesB\x06\n\x04_gpu"\xbb\x01\n\x0f\x41llowedFunction\x12\x16\n\tnamespace\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x17\n\ngraph_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\rfunction_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rgraph_version\x18\x04 \x01(\tH\x03\x88\x01\x01\x42\x0c\n\n_namespaceB\r\n\x0b_graph_nameB\x10\n\x0e_function_nameB\x10\n\x0e_graph_version"\xd8\x01\n\x19\x46unctionExecutorResources\x12\x1b\n\x0e\x63pu_ms_per_sec\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x19\n\x0cmemory_bytes\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x17\n\ndisk_bytes\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12/\n\x03gpu\x18\x04 \x01(\x0b\x32\x1d.executor_api_pb.GPUResourcesH\x03\x88\x01\x01\x42\x11\n\x0f_cpu_ms_per_secB\x0f\n\r_memory_bytesB\r\n\x0b_disk_bytesB\x06\n\x04_gpu"\xbf\x04\n\x1b\x46unctionExecutorDescription\x12\x0f\n\x02id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x17\n\ngraph_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rgraph_version\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x1a\n\rfunction_name\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x14\n\x0csecret_names\x18\x07 \x03(\t\x12%\n\x18\x63ustomer_code_timeout_ms\x18\t \x01(\rH\x05\x88\x01\x01\x12\x30\n\x05graph\x18\n \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x06\x88\x01\x01\x12\x42\n\tresources\x18\x0b \x01(\x0b\x32*.executor_api_pb.FunctionExecutorResourcesH\x07\x88\x01\x01\x12&\n\x19output_payload_uri_prefix\x18\x0c \x01(\tH\x08\x88\x01\x01\x12\x1c\n\x0fmax_concurrency\x18\r \x01(\rH\t\x88\x01\x01\x42\x05\n\x03_idB\x0c\n\n_namespaceB\r\n\x0b_graph_nameB\x10\n\x0e_graph_versionB\x10\n\x0e_function_nameB\x1b\n\x19_customer_code_timeout_msB\x08\n\x06_graphB\x0c\n\n_resourcesB\x1c\n\x1a_output_payload_uri_prefixB\x12\n\x10_max_concurrency"\xcf\x02\n\x15\x46unctionExecutorState\x12\x46\n\x0b\x64\x65scription\x18\x01 \x01(\x0b\x32,.executor_api_pb.FunctionExecutorDescriptionH\x00\x88\x01\x01\x12<\n\x06status\x18\x02 \x01(\x0e\x32\'.executor_api_pb.FunctionExecutorStatusH\x01\x88\x01\x01\x12S\n\x12termination_reason\x18\x03 \x01(\x0e\x32\x32.executor_api_pb.FunctionExecutorTerminationReasonH\x02\x88\x01\x01\x12)\n!allocation_ids_caused_termination\x18\x04 \x03(\tB\x0e\n\x0c_descriptionB\t\n\x07_statusB\x15\n\x13_termination_reason"\x8c\x02\n\x16\x46unctionExecutorUpdate\x12\x46\n\x0b\x64\x65scription\x18\x01 \x01(\x0b\x32,.executor_api_pb.FunctionExecutorDescriptionH\x00\x88\x01\x01\x12\x39\n\x0estartup_stdout\x18\x02 \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x01\x88\x01\x01\x12\x39\n\x0estartup_stderr\x18\x03 \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x02\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x11\n\x0f_startup_stdoutB\x11\n\x0f_startup_stderr"\xce\x05\n\rExecutorState\x12\x18\n\x0b\x65xecutor_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08hostname\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07version\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x34\n\x06status\x18\x06 \x01(\x0e\x32\x1f.executor_api_pb.ExecutorStatusH\x03\x88\x01\x01\x12<\n\x0ftotal_resources\x18\r \x01(\x0b\x32\x1e.executor_api_pb.HostResourcesH\x04\x88\x01\x01\x12N\n!total_function_executor_resources\x18\x07 \x01(\x0b\x32\x1e.executor_api_pb.HostResourcesH\x05\x88\x01\x01\x12;\n\x11\x61llowed_functions\x18\x08 \x03(\x0b\x32 .executor_api_pb.AllowedFunction\x12H\n\x18\x66unction_executor_states\x18\t \x03(\x0b\x32&.executor_api_pb.FunctionExecutorState\x12:\n\x06labels\x18\n \x03(\x0b\x32*.executor_api_pb.ExecutorState.LabelsEntry\x12\x17\n\nstate_hash\x18\x0b \x01(\tH\x06\x88\x01\x01\x12\x19\n\x0cserver_clock\x18\x0c \x01(\x04H\x07\x88\x01\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0e\n\x0c_executor_idB\x0b\n\t_hostnameB\n\n\x08_versionB\t\n\x07_statusB\x12\n\x10_total_resourcesB$\n"_total_function_executor_resourcesB\r\n\x0b_state_hashB\x0f\n\r_server_clock"\xb9\x01\n\x0e\x45xecutorUpdate\x12\x18\n\x0b\x65xecutor_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x31\n\x0ctask_results\x18\x02 \x03(\x0b\x32\x1b.executor_api_pb.TaskResult\x12J\n\x19\x66unction_executor_updates\x18\x03 \x03(\x0b\x32\'.executor_api_pb.FunctionExecutorUpdateB\x0e\n\x0c_executor_id"\xbf\x01\n\x1aReportExecutorStateRequest\x12;\n\x0e\x65xecutor_state\x18\x01 \x01(\x0b\x32\x1e.executor_api_pb.ExecutorStateH\x00\x88\x01\x01\x12=\n\x0f\x65xecutor_update\x18\x02 \x01(\x0b\x32\x1f.executor_api_pb.ExecutorUpdateH\x01\x88\x01\x01\x42\x11\n\x0f_executor_stateB\x12\n\x10_executor_update"\x1d\n\x1bReportExecutorStateResponse"\xcf\x01\n\x0fTaskRetryPolicy\x12\x18\n\x0bmax_retries\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1d\n\x10initial_delay_ms\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0cmax_delay_ms\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x1d\n\x10\x64\x65lay_multiplier\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x0e\n\x0c_max_retriesB\x13\n\x11_initial_delay_msB\x0f\n\r_max_delay_msB\x13\n\x11_delay_multiplier"\xa0\x05\n\x04Task\x12\x0f\n\x02id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tnamespace\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x17\n\ngraph_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rgraph_version\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x1a\n\rfunction_name\x18\x05 \x01(\tH\x04\x88\x01\x01\x12 \n\x13graph_invocation_id\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x17\n\ntimeout_ms\x18\n \x01(\rH\x06\x88\x01\x01\x12\x30\n\x05input\x18\x0b \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x07\x88\x01\x01\x12\x38\n\rreducer_input\x18\x0c \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x08\x88\x01\x01\x12&\n\x19output_payload_uri_prefix\x18\r \x01(\tH\t\x88\x01\x01\x12;\n\x0cretry_policy\x18\x0e \x01(\x0b\x32 .executor_api_pb.TaskRetryPolicyH\n\x88\x01\x01\x12\x30\n#invocation_error_payload_uri_prefix\x18\x0f \x01(\tH\x0b\x88\x01\x01\x42\x05\n\x03_idB\x0c\n\n_namespaceB\r\n\x0b_graph_nameB\x10\n\x0e_graph_versionB\x10\n\x0e_function_nameB\x16\n\x14_graph_invocation_idB\r\n\x0b_timeout_msB\x08\n\x06_inputB\x10\n\x0e_reducer_inputB\x1c\n\x1a_output_payload_uri_prefixB\x0f\n\r_retry_policyB&\n$_invocation_error_payload_uri_prefix"\xad\x01\n\x0eTaskAllocation\x12!\n\x14\x66unction_executor_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\x04task\x18\x02 \x01(\x0b\x32\x15.executor_api_pb.TaskH\x01\x88\x01\x01\x12\x1a\n\rallocation_id\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x17\n\x15_function_executor_idB\x07\n\x05_taskB\x10\n\x0e_allocation_id"K\n\x1fGetDesiredExecutorStatesRequest\x12\x18\n\x0b\x65xecutor_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_executor_id"\xb9\x01\n\x14\x44\x65siredExecutorState\x12H\n\x12\x66unction_executors\x18\x01 \x03(\x0b\x32,.executor_api_pb.FunctionExecutorDescription\x12\x39\n\x10task_allocations\x18\x02 \x03(\x0b\x32\x1f.executor_api_pb.TaskAllocation\x12\x12\n\x05\x63lock\x18\x03 \x01(\x04H\x00\x88\x01\x01\x42\x08\n\x06_clock"\xcc\x06\n\nTaskResult\x12\x14\n\x07task_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rallocation_id\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x16\n\tnamespace\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\ngraph_name\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x1a\n\rgraph_version\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\rfunction_name\x18\x06 \x01(\tH\x05\x88\x01\x01\x12 \n\x13graph_invocation_id\x18\x07 \x01(\tH\x06\x88\x01\x01\x12;\n\x0coutcome_code\x18\t \x01(\x0e\x32 .executor_api_pb.TaskOutcomeCodeH\x07\x88\x01\x01\x12?\n\x0e\x66\x61ilure_reason\x18\n \x01(\x0e\x32".executor_api_pb.TaskFailureReasonH\x08\x88\x01\x01\x12\x16\n\x0enext_functions\x18\x0b \x03(\t\x12\x36\n\x10\x66unction_outputs\x18\x0c \x03(\x0b\x32\x1c.executor_api_pb.DataPayload\x12\x31\n\x06stdout\x18\r \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\t\x88\x01\x01\x12\x31\n\x06stderr\x18\x0e \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\n\x88\x01\x01\x12\x42\n\x17invocation_error_output\x18\x0f \x01(\x0b\x32\x1c.executor_api_pb.DataPayloadH\x0b\x88\x01\x01\x12"\n\x15\x65xecution_duration_ms\x18\x10 \x01(\x04H\x0c\x88\x01\x01\x42\n\n\x08_task_idB\x10\n\x0e_allocation_idB\x0c\n\n_namespaceB\r\n\x0b_graph_nameB\x10\n\x0e_graph_versionB\x10\n\x0e_function_nameB\x16\n\x14_graph_invocation_idB\x0f\n\r_outcome_codeB\x11\n\x0f_failure_reasonB\t\n\x07_stdoutB\t\n\x07_stderrB\x1a\n\x18_invocation_error_outputB\x18\n\x16_execution_duration_ms*\xd1\x01\n\x13\x44\x61taPayloadEncoding\x12!\n\x1d\x44\x41TA_PAYLOAD_ENCODING_UNKNOWN\x10\x00\x12#\n\x1f\x44\x41TA_PAYLOAD_ENCODING_UTF8_JSON\x10\x01\x12#\n\x1f\x44\x41TA_PAYLOAD_ENCODING_UTF8_TEXT\x10\x02\x12\'\n#DATA_PAYLOAD_ENCODING_BINARY_PICKLE\x10\x03\x12$\n DATA_PAYLOAD_ENCODING_BINARY_ZIP\x10\x04*\xd6\x01\n\x08GPUModel\x12\x15\n\x11GPU_MODEL_UNKNOWN\x10\x00\x12\x1e\n\x1aGPU_MODEL_NVIDIA_A100_40GB\x10\x01\x12\x1e\n\x1aGPU_MODEL_NVIDIA_A100_80GB\x10\x02\x12\x1e\n\x1aGPU_MODEL_NVIDIA_H100_80GB\x10\x03\x12\x1d\n\x19GPU_MODEL_NVIDIA_TESLA_T4\x10\x04\x12\x1a\n\x16GPU_MODEL_NVIDIA_A6000\x10\x05\x12\x18\n\x14GPU_MODEL_NVIDIA_A10\x10\x06*\xb3\x01\n\x16\x46unctionExecutorStatus\x12$\n FUNCTION_EXECUTOR_STATUS_UNKNOWN\x10\x00\x12$\n FUNCTION_EXECUTOR_STATUS_PENDING\x10\x01\x12$\n FUNCTION_EXECUTOR_STATUS_RUNNING\x10\x02\x12\'\n#FUNCTION_EXECUTOR_STATUS_TERMINATED\x10\x03*\x94\x04\n!FunctionExecutorTerminationReason\x12\x30\n,FUNCTION_EXECUTOR_TERMINATION_REASON_UNKNOWN\x10\x00\x12\x46\nBFUNCTION_EXECUTOR_TERMINATION_REASON_STARTUP_FAILED_INTERNAL_ERROR\x10\x01\x12\x46\nBFUNCTION_EXECUTOR_TERMINATION_REASON_STARTUP_FAILED_FUNCTION_ERROR\x10\x02\x12H\nDFUNCTION_EXECUTOR_TERMINATION_REASON_STARTUP_FAILED_FUNCTION_TIMEOUT\x10\x03\x12\x32\n.FUNCTION_EXECUTOR_TERMINATION_REASON_UNHEALTHY\x10\x0c\x12\x37\n3FUNCTION_EXECUTOR_TERMINATION_REASON_INTERNAL_ERROR\x10\r\x12\x39\n5FUNCTION_EXECUTOR_TERMINATION_REASON_FUNCTION_TIMEOUT\x10\x0e\x12;\n7FUNCTION_EXECUTOR_TERMINATION_REASON_FUNCTION_CANCELLED\x10\x0f*\xa5\x01\n\x0e\x45xecutorStatus\x12\x1b\n\x17\x45XECUTOR_STATUS_UNKNOWN\x10\x00\x12\x1f\n\x1b\x45XECUTOR_STATUS_STARTING_UP\x10\x01\x12\x1b\n\x17\x45XECUTOR_STATUS_RUNNING\x10\x02\x12\x1b\n\x17\x45XECUTOR_STATUS_DRAINED\x10\x03\x12\x1b\n\x17\x45XECUTOR_STATUS_STOPPED\x10\x04*n\n\x0fTaskOutcomeCode\x12\x1d\n\x19TASK_OUTCOME_CODE_UNKNOWN\x10\x00\x12\x1d\n\x19TASK_OUTCOME_CODE_SUCCESS\x10\x01\x12\x1d\n\x19TASK_OUTCOME_CODE_FAILURE\x10\x02*\xb6\x02\n\x11TaskFailureReason\x12\x1f\n\x1bTASK_FAILURE_REASON_UNKNOWN\x10\x00\x12&\n"TASK_FAILURE_REASON_INTERNAL_ERROR\x10\x01\x12&\n"TASK_FAILURE_REASON_FUNCTION_ERROR\x10\x02\x12(\n$TASK_FAILURE_REASON_FUNCTION_TIMEOUT\x10\x03\x12(\n$TASK_FAILURE_REASON_INVOCATION_ERROR\x10\x04\x12&\n"TASK_FAILURE_REASON_TASK_CANCELLED\x10\x05\x12\x34\n0TASK_FAILURE_REASON_FUNCTION_EXECUTOR_TERMINATED\x10\x06\x32\xff\x01\n\x0b\x45xecutorAPI\x12t\n\x15report_executor_state\x12+.executor_api_pb.ReportExecutorStateRequest\x1a,.executor_api_pb.ReportExecutorStateResponse"\x00\x12z\n\x1bget_desired_executor_states\x12\x30.executor_api_pb.GetDesiredExecutorStatesRequest\x1a%.executor_api_pb.DesiredExecutorState"\x00\x30\x01\x62\x06proto3'
23
23
  )
24
24
 
25
25
  _globals = globals()
@@ -31,20 +31,20 @@ if not _descriptor._USE_C_DESCRIPTORS:
31
31
  DESCRIPTOR._loaded_options = None
32
32
  _globals["_EXECUTORSTATE_LABELSENTRY"]._loaded_options = None
33
33
  _globals["_EXECUTORSTATE_LABELSENTRY"]._serialized_options = b"8\001"
34
- _globals["_DATAPAYLOADENCODING"]._serialized_start = 5516
35
- _globals["_DATAPAYLOADENCODING"]._serialized_end = 5725
36
- _globals["_GPUMODEL"]._serialized_start = 5728
37
- _globals["_GPUMODEL"]._serialized_end = 5942
38
- _globals["_FUNCTIONEXECUTORSTATUS"]._serialized_start = 5945
39
- _globals["_FUNCTIONEXECUTORSTATUS"]._serialized_end = 6124
40
- _globals["_FUNCTIONEXECUTORTERMINATIONREASON"]._serialized_start = 6127
41
- _globals["_FUNCTIONEXECUTORTERMINATIONREASON"]._serialized_end = 6659
42
- _globals["_EXECUTORSTATUS"]._serialized_start = 6662
43
- _globals["_EXECUTORSTATUS"]._serialized_end = 6827
44
- _globals["_TASKOUTCOMECODE"]._serialized_start = 6829
45
- _globals["_TASKOUTCOMECODE"]._serialized_end = 6939
46
- _globals["_TASKFAILUREREASON"]._serialized_start = 6942
47
- _globals["_TASKFAILUREREASON"]._serialized_end = 7252
34
+ _globals["_DATAPAYLOADENCODING"]._serialized_start = 5528
35
+ _globals["_DATAPAYLOADENCODING"]._serialized_end = 5737
36
+ _globals["_GPUMODEL"]._serialized_start = 5740
37
+ _globals["_GPUMODEL"]._serialized_end = 5954
38
+ _globals["_FUNCTIONEXECUTORSTATUS"]._serialized_start = 5957
39
+ _globals["_FUNCTIONEXECUTORSTATUS"]._serialized_end = 6136
40
+ _globals["_FUNCTIONEXECUTORTERMINATIONREASON"]._serialized_start = 6139
41
+ _globals["_FUNCTIONEXECUTORTERMINATIONREASON"]._serialized_end = 6671
42
+ _globals["_EXECUTORSTATUS"]._serialized_start = 6674
43
+ _globals["_EXECUTORSTATUS"]._serialized_end = 6839
44
+ _globals["_TASKOUTCOMECODE"]._serialized_start = 6841
45
+ _globals["_TASKOUTCOMECODE"]._serialized_end = 6951
46
+ _globals["_TASKFAILUREREASON"]._serialized_start = 6954
47
+ _globals["_TASKFAILUREREASON"]._serialized_end = 7264
48
48
  _globals["_DATAPAYLOAD"]._serialized_start = 55
49
49
  _globals["_DATAPAYLOAD"]._serialized_end = 322
50
50
  _globals["_GPURESOURCES"]._serialized_start = 324
@@ -56,33 +56,33 @@ if not _descriptor._USE_C_DESCRIPTORS:
56
56
  _globals["_FUNCTIONEXECUTORRESOURCES"]._serialized_start = 815
57
57
  _globals["_FUNCTIONEXECUTORRESOURCES"]._serialized_end = 1031
58
58
  _globals["_FUNCTIONEXECUTORDESCRIPTION"]._serialized_start = 1034
59
- _globals["_FUNCTIONEXECUTORDESCRIPTION"]._serialized_end = 1597
60
- _globals["_FUNCTIONEXECUTORSTATE"]._serialized_start = 1600
61
- _globals["_FUNCTIONEXECUTORSTATE"]._serialized_end = 1935
62
- _globals["_FUNCTIONEXECUTORUPDATE"]._serialized_start = 1938
63
- _globals["_FUNCTIONEXECUTORUPDATE"]._serialized_end = 2206
64
- _globals["_EXECUTORSTATE"]._serialized_start = 2209
65
- _globals["_EXECUTORSTATE"]._serialized_end = 2927
66
- _globals["_EXECUTORSTATE_LABELSENTRY"]._serialized_start = 2740
67
- _globals["_EXECUTORSTATE_LABELSENTRY"]._serialized_end = 2785
68
- _globals["_EXECUTORUPDATE"]._serialized_start = 2930
69
- _globals["_EXECUTORUPDATE"]._serialized_end = 3115
70
- _globals["_REPORTEXECUTORSTATEREQUEST"]._serialized_start = 3118
71
- _globals["_REPORTEXECUTORSTATEREQUEST"]._serialized_end = 3309
72
- _globals["_REPORTEXECUTORSTATERESPONSE"]._serialized_start = 3311
73
- _globals["_REPORTEXECUTORSTATERESPONSE"]._serialized_end = 3340
74
- _globals["_TASKRETRYPOLICY"]._serialized_start = 3343
75
- _globals["_TASKRETRYPOLICY"]._serialized_end = 3550
76
- _globals["_TASK"]._serialized_start = 3553
77
- _globals["_TASK"]._serialized_end = 4225
78
- _globals["_TASKALLOCATION"]._serialized_start = 4228
79
- _globals["_TASKALLOCATION"]._serialized_end = 4401
80
- _globals["_GETDESIREDEXECUTORSTATESREQUEST"]._serialized_start = 4403
81
- _globals["_GETDESIREDEXECUTORSTATESREQUEST"]._serialized_end = 4478
82
- _globals["_DESIREDEXECUTORSTATE"]._serialized_start = 4481
83
- _globals["_DESIREDEXECUTORSTATE"]._serialized_end = 4666
84
- _globals["_TASKRESULT"]._serialized_start = 4669
85
- _globals["_TASKRESULT"]._serialized_end = 5513
86
- _globals["_EXECUTORAPI"]._serialized_start = 7255
87
- _globals["_EXECUTORAPI"]._serialized_end = 7510
59
+ _globals["_FUNCTIONEXECUTORDESCRIPTION"]._serialized_end = 1609
60
+ _globals["_FUNCTIONEXECUTORSTATE"]._serialized_start = 1612
61
+ _globals["_FUNCTIONEXECUTORSTATE"]._serialized_end = 1947
62
+ _globals["_FUNCTIONEXECUTORUPDATE"]._serialized_start = 1950
63
+ _globals["_FUNCTIONEXECUTORUPDATE"]._serialized_end = 2218
64
+ _globals["_EXECUTORSTATE"]._serialized_start = 2221
65
+ _globals["_EXECUTORSTATE"]._serialized_end = 2939
66
+ _globals["_EXECUTORSTATE_LABELSENTRY"]._serialized_start = 2752
67
+ _globals["_EXECUTORSTATE_LABELSENTRY"]._serialized_end = 2797
68
+ _globals["_EXECUTORUPDATE"]._serialized_start = 2942
69
+ _globals["_EXECUTORUPDATE"]._serialized_end = 3127
70
+ _globals["_REPORTEXECUTORSTATEREQUEST"]._serialized_start = 3130
71
+ _globals["_REPORTEXECUTORSTATEREQUEST"]._serialized_end = 3321
72
+ _globals["_REPORTEXECUTORSTATERESPONSE"]._serialized_start = 3323
73
+ _globals["_REPORTEXECUTORSTATERESPONSE"]._serialized_end = 3352
74
+ _globals["_TASKRETRYPOLICY"]._serialized_start = 3355
75
+ _globals["_TASKRETRYPOLICY"]._serialized_end = 3562
76
+ _globals["_TASK"]._serialized_start = 3565
77
+ _globals["_TASK"]._serialized_end = 4237
78
+ _globals["_TASKALLOCATION"]._serialized_start = 4240
79
+ _globals["_TASKALLOCATION"]._serialized_end = 4413
80
+ _globals["_GETDESIREDEXECUTORSTATESREQUEST"]._serialized_start = 4415
81
+ _globals["_GETDESIREDEXECUTORSTATESREQUEST"]._serialized_end = 4490
82
+ _globals["_DESIREDEXECUTORSTATE"]._serialized_start = 4493
83
+ _globals["_DESIREDEXECUTORSTATE"]._serialized_end = 4678
84
+ _globals["_TASKRESULT"]._serialized_start = 4681
85
+ _globals["_TASKRESULT"]._serialized_end = 5525
86
+ _globals["_EXECUTORAPI"]._serialized_start = 7267
87
+ _globals["_EXECUTORAPI"]._serialized_end = 7522
88
88
  # @@protoc_insertion_point(module_scope)
@@ -232,35 +232,35 @@ class FunctionExecutorDescription(_message.Message):
232
232
  "graph_name",
233
233
  "graph_version",
234
234
  "function_name",
235
- "image_uri",
236
235
  "secret_names",
237
236
  "customer_code_timeout_ms",
238
237
  "graph",
239
238
  "resources",
240
239
  "output_payload_uri_prefix",
240
+ "max_concurrency",
241
241
  )
242
242
  ID_FIELD_NUMBER: _ClassVar[int]
243
243
  NAMESPACE_FIELD_NUMBER: _ClassVar[int]
244
244
  GRAPH_NAME_FIELD_NUMBER: _ClassVar[int]
245
245
  GRAPH_VERSION_FIELD_NUMBER: _ClassVar[int]
246
246
  FUNCTION_NAME_FIELD_NUMBER: _ClassVar[int]
247
- IMAGE_URI_FIELD_NUMBER: _ClassVar[int]
248
247
  SECRET_NAMES_FIELD_NUMBER: _ClassVar[int]
249
248
  CUSTOMER_CODE_TIMEOUT_MS_FIELD_NUMBER: _ClassVar[int]
250
249
  GRAPH_FIELD_NUMBER: _ClassVar[int]
251
250
  RESOURCES_FIELD_NUMBER: _ClassVar[int]
252
251
  OUTPUT_PAYLOAD_URI_PREFIX_FIELD_NUMBER: _ClassVar[int]
252
+ MAX_CONCURRENCY_FIELD_NUMBER: _ClassVar[int]
253
253
  id: str
254
254
  namespace: str
255
255
  graph_name: str
256
256
  graph_version: str
257
257
  function_name: str
258
- image_uri: str
259
258
  secret_names: _containers.RepeatedScalarFieldContainer[str]
260
259
  customer_code_timeout_ms: int
261
260
  graph: DataPayload
262
261
  resources: FunctionExecutorResources
263
262
  output_payload_uri_prefix: str
263
+ max_concurrency: int
264
264
  def __init__(
265
265
  self,
266
266
  id: _Optional[str] = ...,
@@ -268,12 +268,12 @@ class FunctionExecutorDescription(_message.Message):
268
268
  graph_name: _Optional[str] = ...,
269
269
  graph_version: _Optional[str] = ...,
270
270
  function_name: _Optional[str] = ...,
271
- image_uri: _Optional[str] = ...,
272
271
  secret_names: _Optional[_Iterable[str]] = ...,
273
272
  customer_code_timeout_ms: _Optional[int] = ...,
274
273
  graph: _Optional[_Union[DataPayload, _Mapping]] = ...,
275
274
  resources: _Optional[_Union[FunctionExecutorResources, _Mapping]] = ...,
276
275
  output_payload_uri_prefix: _Optional[str] = ...,
276
+ max_concurrency: _Optional[int] = ...,
277
277
  ) -> None: ...
278
278
 
279
279
  class FunctionExecutorState(_message.Message):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: indexify
3
- Version: 0.4.27
3
+ Version: 0.4.29
4
4
  Summary: Open Source Indexify components and helper tools
5
5
  Home-page: https://github.com/tensorlakeai/indexify
6
6
  License: Apache 2.0
@@ -14,16 +14,16 @@ Classifier: Programming Language :: Python :: 3.11
14
14
  Classifier: Programming Language :: Python :: 3.12
15
15
  Classifier: Programming Language :: Python :: 3.13
16
16
  Requires-Dist: aiohttp (>=3.12.15,<4.0.0)
17
- Requires-Dist: boto3 (>=1.40.6,<2.0.0)
17
+ Requires-Dist: boto3 (>=1.40.12,<2.0.0)
18
18
  Requires-Dist: docker (>=7.1.0,<8.0.0)
19
19
  Requires-Dist: httpx[http2] (==0.27.2)
20
20
  Requires-Dist: nanoid (>=2.0.0,<3.0.0)
21
21
  Requires-Dist: prometheus-client (>=0.22.1,<0.23.0)
22
22
  Requires-Dist: psutil (>=7.0.0,<8.0.0)
23
23
  Requires-Dist: pydantic (>=2.11,<3.0)
24
- Requires-Dist: requests (>=2.32.4,<3.0.0)
24
+ Requires-Dist: requests (>=2.32.5,<3.0.0)
25
25
  Requires-Dist: structlog (==25.4.0)
26
- Requires-Dist: tensorlake (==0.2.39)
26
+ Requires-Dist: tensorlake (==0.2.42)
27
27
  Requires-Dist: urllib3 (>=2.5.0,<3.0.0)
28
28
  Project-URL: Repository, https://github.com/tensorlakeai/indexify
29
29
  Description-Content-Type: text/markdown
@@ -8,7 +8,7 @@ indexify/executor/blob_store/local_fs_blob_store.py,sha256=nRFawLMbOCCFlCIx2ccmh
8
8
  indexify/executor/blob_store/metrics/blob_store.py,sha256=3lmLU8q4Yx87RIYcy56nmFiNQTPY94pB12ht7X6MyhA,3811
9
9
  indexify/executor/blob_store/s3_blob_store.py,sha256=wJlDBTTaq48Vp1I0LvP2958b1Xe8esvarkr5PVRawU0,7609
10
10
  indexify/executor/channel_manager.py,sha256=ihKfWJmUqQvh4UKXewZLzyJWW_f50P4fnwPqPonrozw,6651
11
- indexify/executor/executor.py,sha256=rM7BmJDqC_YwdwPfDGFGiFO2WxOW3Nj8Z7rwRw8UcFk,6353
11
+ indexify/executor/executor.py,sha256=--qzHfQnbP70hsV7Y1L6dlgsORAi-Ugwu0W795NgYyc,6645
12
12
  indexify/executor/function_allowlist.py,sha256=PCelCW6qIe_2sH11BCKr7LDqarRV5kwNsrfB2EV7Zwo,1772
13
13
  indexify/executor/function_executor/function_executor.py,sha256=dTZ8y15ifu7GKmNLU-SQH5M3COa1_8ec_2439h67Pd8,12381
14
14
  indexify/executor/function_executor/health_checker.py,sha256=IxE0jnC99K_lvnizFLjXqS1942H8-FNAN4AlhLIjg2Y,6373
@@ -29,17 +29,17 @@ indexify/executor/function_executor_controller/debug_event_loop.py,sha256=VJOKe_
29
29
  indexify/executor/function_executor_controller/downloads.py,sha256=B2dbaa6osp1_vCQ6WY_9znAca3Z2qqVzQAF2av3v8Pg,5304
30
30
  indexify/executor/function_executor_controller/events.py,sha256=M3taTBSxHG5CYWXfvk-BPtcV9bX-VDmSQDaNdGKK7Hk,5633
31
31
  indexify/executor/function_executor_controller/finalize_task.py,sha256=letfBqGXPTubvOfbRg7cvdgtvrwkSnSezx4XRknYvKM,6624
32
- indexify/executor/function_executor_controller/function_executor_controller.py,sha256=WeetrN34i6YPA3z1VQvd_zw0bpodwiSArCb7-rYlm7M,39814
32
+ indexify/executor/function_executor_controller/function_executor_controller.py,sha256=euQWkm3JFKaZFE28hwr-3vnbBnlSQuQbd3R7zApkvIU,39810
33
33
  indexify/executor/function_executor_controller/loggers.py,sha256=zEY2nt15gboX3SX6Kh1xjeCljZJZSE4lp27qNrg8yPY,3637
34
- indexify/executor/function_executor_controller/message_validators.py,sha256=7Hgu6GItKU5_zz_YHtHT5NlWIHnvof2P-o_21pto9vU,3128
34
+ indexify/executor/function_executor_controller/message_validators.py,sha256=24T3Nm8tkyo2XXlcIg6b2e0P5_M26O62jcI8o7nsnVo,3176
35
35
  indexify/executor/function_executor_controller/metrics/completed_task_metrics.py,sha256=53EGBCLwCEV-RBBeyLPTElrtcveaEM0Fwxs9NmC1Hn8,2724
36
36
  indexify/executor/function_executor_controller/metrics/downloads.py,sha256=G8UUDfnzmiK_26OvZYTqH0KgNb3kI-0TgzGLFEuSEFc,892
37
37
  indexify/executor/function_executor_controller/metrics/finalize_task.py,sha256=KlJ9o3DQ8VSWNBpMrugr0CT7sSZm2J1LH6lvZhzsQ6E,743
38
38
  indexify/executor/function_executor_controller/metrics/function_executor_controller.py,sha256=gyIZHbdsNSnrA6z4WDaRAunNolFrbbg1pa8JaL_ODNE,2666
39
39
  indexify/executor/function_executor_controller/metrics/prepare_task.py,sha256=7nHuerFWGqRCRqtgpL3vJVs-DHwxwFhBZaGjrtfOlys,764
40
40
  indexify/executor/function_executor_controller/metrics/run_task.py,sha256=ZFv_nw5_pKUJoTaavSyzdglQKW4uvC2XyK8S6xi9xLQ,1064
41
- indexify/executor/function_executor_controller/prepare_task.py,sha256=9vUPrbaz5AQVSbe0LvTOD7lkn-02P_UvMQyjZmjhGHo,9170
42
- indexify/executor/function_executor_controller/run_task.py,sha256=kbQGhopCzbARczzZ4zXAvWkgWLlI9kMXSVXSOOrssos,15483
41
+ indexify/executor/function_executor_controller/prepare_task.py,sha256=EPdqidd4MpCvpvgTZKQsJJL3iwfhpwaz37_EY3z_XS0,9170
42
+ indexify/executor/function_executor_controller/run_task.py,sha256=eaESmOz7IQWFT6Q6VbZV_uSB3mjy47s4ihw2BBD3Oa4,15483
43
43
  indexify/executor/function_executor_controller/task_info.py,sha256=ufhb4PvQuXyY4JUlddNyN2bJQdUeGlMTMIRlKz_WzXc,1015
44
44
  indexify/executor/function_executor_controller/task_input.py,sha256=PHCzqpjzTzw4TJTn6wncon3P08EiTVRJazEYRbTqDu8,876
45
45
  indexify/executor/function_executor_controller/task_output.py,sha256=_uf0Wi1K-kaKPXED1RmKQZ9rpmjXFA4ONLn6ZOj2-UE,7127
@@ -52,6 +52,7 @@ indexify/executor/metrics/channel_manager.py,sha256=1dU9bzF3xqBy1nY9Sc66GfQQWnWZ
52
52
  indexify/executor/metrics/executor.py,sha256=8dJXmyGqKlBSrPuyWXW7O2I21uxQ687l-2dYTvz4fmk,398
53
53
  indexify/executor/metrics/state_reconciler.py,sha256=BSlRgvgtwih6QcYrsFU5P2ylaXAsC_X70DbzDuv9NsU,584
54
54
  indexify/executor/metrics/state_reporter.py,sha256=JvyP_IUfJQetEjzmoWe9q6HCA4Ao1GLocaa7Od_jl2g,550
55
+ indexify/executor/monitoring/desired_state_handler.py,sha256=jmpTSQY6VyDbPFGKMpj-dAv0un5dtQmYc1tonQDBWL8,755
55
56
  indexify/executor/monitoring/handler.py,sha256=Cj1cu_LcsAP0tdviqNhoEtGm4h0OJAxxzW9C2YdNXYU,240
56
57
  indexify/executor/monitoring/health_check_handler.py,sha256=e1pEtWFKaVs6H57Z4YLejNECrJtC38PweZc7xTJeqVw,695
57
58
  indexify/executor/monitoring/health_checker/generic_health_checker.py,sha256=vJRV879GrdZFqwTnM9pRLA97LRMutGz2sWRy-KS-tfg,1493
@@ -59,15 +60,16 @@ indexify/executor/monitoring/health_checker/health_checker.py,sha256=B-Q4KM1iEUS
59
60
  indexify/executor/monitoring/health_checker/metrics/health_checker.py,sha256=50JS4JaOdAgSk7iYaBV4J3tGXkRTzmIVR_jVOV66YOc,129
60
61
  indexify/executor/monitoring/metrics.py,sha256=5BpNqDBDQiL2K962WDPQU2eSo5zD6I9vF2flGyBejts,7388
61
62
  indexify/executor/monitoring/prometheus_metrics_handler.py,sha256=KiGqSf7rkXTfbDwThyXFpFe2jnuZD5q-5SBP_0GDo8Y,591
62
- indexify/executor/monitoring/server.py,sha256=yzdYhcxnmY6uTQUMt3vatF5jilN52ZtfFseOmHyQpTo,1254
63
+ indexify/executor/monitoring/reported_state_handler.py,sha256=R1C3tk8CF2xh7pbBgKzM1ADReDMEV9CyIRlAZ9NFado,697
64
+ indexify/executor/monitoring/server.py,sha256=aAKzL9J243Q9_41JY-4tSBdFKXR_ZOMz-DEJNtxfYC4,1483
63
65
  indexify/executor/monitoring/startup_probe_handler.py,sha256=zXXsBU15SMlBx1bSFpxWDfed1VHtKKnwvLQ8-frpG98,425
64
- indexify/executor/state_reconciler.py,sha256=8l4O0IjovnQNI39AQsst4qPb2qFdEncZiEvVl8nLjYI,20248
65
- indexify/executor/state_reporter.py,sha256=zf5UBhBZVv9SQ1Ju_bY8w6D_t1hBZ5YVXhjeFMEgRms,15208
66
- indexify/proto/executor_api.proto,sha256=yYLx3LTx2hGDFJX8myCosS3_eAWUMWdsWt59PH7O-QQ,12864
67
- indexify/proto/executor_api_pb2.py,sha256=ZrJg5ivsv-Kn8QRRsFWupdKCo6Eru6UNR8iYRqo5AhE,16458
68
- indexify/proto/executor_api_pb2.pyi,sha256=YfKsaIYaePZkpLTk_toAsWfH50xOOYfjjU3aWsci9w0,23151
66
+ indexify/executor/state_reconciler.py,sha256=SUhzcazNmVoJMLYTFWcP911irN3zVzugNx11afiUyws,20356
67
+ indexify/executor/state_reporter.py,sha256=zXb6SvD1yA4tMDWxT_p995y8l490hifXRHX4LjN6WOA,15505
68
+ indexify/proto/executor_api.proto,sha256=YwLeLjyLHhs5qoWLA50uHY2KdKRGfBQBKZwE8VXmzeo,12871
69
+ indexify/proto/executor_api_pb2.py,sha256=vTG1-2Pp4OnTWFD4GYphgJ3cUbTbDjCOKstKrLBXB-E,16472
70
+ indexify/proto/executor_api_pb2.pyi,sha256=-6P-ef-fBJF0CTc4UucIzrDLCBVZpIEhEz2qhexvwjk,23175
69
71
  indexify/proto/executor_api_pb2_grpc.py,sha256=u9GEQV4nm_GvApRxjVo806CkgBMBVReb5IVrcaDaliY,7520
70
- indexify-0.4.27.dist-info/METADATA,sha256=oBpQeVTH9cqACfgnpRxemwOHt5Y70tqbw-5bPNVB_NQ,1389
71
- indexify-0.4.27.dist-info/WHEEL,sha256=RaoafKOydTQ7I_I3JTrPCg6kUmTgtm4BornzOqyEfJ8,88
72
- indexify-0.4.27.dist-info/entry_points.txt,sha256=rMJqbE5KPZIXTPIfAtVIM4zpUElqYVgEYd6i7N23zzg,49
73
- indexify-0.4.27.dist-info/RECORD,,
72
+ indexify-0.4.29.dist-info/METADATA,sha256=kF8bbOI0OHcO7tHtlyUAsEvFfrlfymHKqlNR9lt6yuM,1390
73
+ indexify-0.4.29.dist-info/WHEEL,sha256=RaoafKOydTQ7I_I3JTrPCg6kUmTgtm4BornzOqyEfJ8,88
74
+ indexify-0.4.29.dist-info/entry_points.txt,sha256=rMJqbE5KPZIXTPIfAtVIM4zpUElqYVgEYd6i7N23zzg,49
75
+ indexify-0.4.29.dist-info/RECORD,,