opengris-scaler 1.12.13__cp310-cp310-manylinux_2_28_x86_64.whl → 1.12.25__cp310-cp310-manylinux_2_28_x86_64.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.
Potentially problematic release.
This version of opengris-scaler might be problematic. Click here for more details.
- {opengris_scaler-1.12.13.dist-info → opengris_scaler-1.12.25.dist-info}/METADATA +14 -22
- opengris_scaler-1.12.25.dist-info/RECORD +185 -0
- {opengris_scaler-1.12.13.dist-info → opengris_scaler-1.12.25.dist-info}/entry_points.txt +1 -0
- opengris_scaler.libs/{libcapnp-1-b787335c.1.0.so → libcapnp-1-137b6426.0.1.so} +0 -0
- opengris_scaler.libs/{libkj-1-094aa318.1.0.so → libkj-1-c3197b44.0.1.so} +0 -0
- scaler/client/agent/client_agent.py +7 -7
- scaler/client/agent/heartbeat_manager.py +5 -5
- scaler/client/client.py +6 -6
- scaler/cluster/cluster.py +4 -4
- scaler/cluster/combo.py +15 -13
- scaler/cluster/object_storage_server.py +7 -7
- scaler/cluster/scheduler.py +8 -5
- scaler/config/defaults.py +7 -0
- scaler/config/loader.py +1 -1
- scaler/config/section/cluster.py +2 -3
- scaler/config/section/ecs_worker_adapter.py +85 -0
- scaler/config/section/native_worker_adapter.py +2 -3
- scaler/config/section/object_storage_server.py +1 -0
- scaler/config/section/scheduler.py +8 -7
- scaler/config/section/symphony_worker_adapter.py +3 -3
- scaler/config/section/webui.py +5 -0
- scaler/config/types/network_backend.py +12 -0
- scaler/config/types/worker.py +1 -1
- scaler/entry_points/cluster.py +3 -3
- scaler/entry_points/scheduler.py +16 -7
- scaler/entry_points/top.py +1 -1
- scaler/entry_points/webui.py +23 -1
- scaler/entry_points/worker_adapter_ecs.py +191 -0
- scaler/entry_points/worker_adapter_native.py +1 -1
- scaler/entry_points/worker_adapter_symphony.py +5 -9
- scaler/io/async_binder.py +9 -5
- scaler/io/async_connector.py +1 -1
- scaler/io/async_object_storage_connector.py +74 -34
- scaler/io/sync_connector.py +1 -1
- scaler/io/sync_object_storage_connector.py +93 -31
- scaler/io/sync_subscriber.py +1 -1
- scaler/io/utility.py +50 -1
- scaler/io/ymq/_ymq.pyi +4 -5
- scaler/io/ymq/ymq.py +24 -16
- scaler/io/ymq_async_object_storage_connector.py +184 -0
- scaler/io/ymq_sync_object_storage_connector.py +184 -0
- scaler/object_storage/object_storage_server.so +0 -0
- scaler/protocol/capnp/common.capnp +5 -0
- scaler/protocol/capnp/message.capnp +4 -2
- scaler/protocol/capnp/object_storage.capnp +5 -0
- scaler/protocol/python/common.py +5 -0
- scaler/protocol/python/message.py +30 -5
- scaler/scheduler/allocate_policy/capability_allocate_policy.py +1 -1
- scaler/scheduler/controllers/information_controller.py +1 -1
- scaler/scheduler/controllers/mixins.py +0 -7
- scaler/scheduler/controllers/scaling_policies/__init__.py +0 -0
- scaler/scheduler/controllers/scaling_policies/fixed_elastic.py +145 -0
- scaler/scheduler/controllers/scaling_policies/mixins.py +10 -0
- scaler/scheduler/controllers/scaling_policies/null.py +14 -0
- scaler/scheduler/controllers/scaling_policies/types.py +9 -0
- scaler/scheduler/controllers/scaling_policies/utility.py +20 -0
- scaler/scheduler/controllers/{scaling_controller.py → scaling_policies/vanilla.py} +25 -16
- scaler/scheduler/controllers/task_controller.py +4 -1
- scaler/scheduler/controllers/worker_controller.py +3 -2
- scaler/scheduler/scheduler.py +10 -12
- scaler/ui/live_display.py +32 -3
- scaler/ui/memory_window.py +14 -14
- scaler/ui/setting_page.py +7 -15
- scaler/ui/task_graph.py +653 -191
- scaler/ui/task_log.py +47 -23
- scaler/ui/utility.py +36 -5
- scaler/ui/webui.py +38 -16
- scaler/ui/worker_processors.py +23 -4
- scaler/utility/identifiers.py +7 -5
- scaler/version.txt +1 -1
- scaler/worker/agent/heartbeat_manager.py +8 -8
- scaler/worker/agent/mixins.py +2 -2
- scaler/worker/agent/processor/processor.py +5 -5
- scaler/worker/agent/processor_holder.py +5 -5
- scaler/worker/agent/processor_manager.py +4 -3
- scaler/worker/worker.py +8 -8
- scaler/worker_adapter/common.py +26 -0
- scaler/worker_adapter/ecs.py +269 -0
- scaler/worker_adapter/native.py +17 -16
- scaler/worker_adapter/symphony/heartbeat_manager.py +7 -7
- scaler/worker_adapter/symphony/task_manager.py +2 -1
- scaler/worker_adapter/symphony/worker.py +7 -8
- scaler/worker_adapter/symphony/worker_adapter.py +12 -15
- src/scaler/io/ymq/_ymq.so +0 -0
- opengris_scaler-1.12.13.dist-info/RECORD +0 -231
- scaler/CMakeLists.txt +0 -11
- scaler/io/ymq/CMakeLists.txt +0 -97
- scaler/io/ymq/_ymq.so +0 -0
- scaler/io/ymq/bytes.h +0 -114
- scaler/io/ymq/common.h +0 -29
- scaler/io/ymq/configuration.h +0 -60
- scaler/io/ymq/epoll_context.cpp +0 -185
- scaler/io/ymq/epoll_context.h +0 -84
- scaler/io/ymq/error.h +0 -132
- scaler/io/ymq/event_loop.h +0 -55
- scaler/io/ymq/event_loop_thread.cpp +0 -64
- scaler/io/ymq/event_loop_thread.h +0 -52
- scaler/io/ymq/event_manager.h +0 -81
- scaler/io/ymq/interruptive_concurrent_queue.h +0 -169
- scaler/io/ymq/io_context.cpp +0 -97
- scaler/io/ymq/io_context.h +0 -44
- scaler/io/ymq/io_socket.cpp +0 -298
- scaler/io/ymq/io_socket.h +0 -121
- scaler/io/ymq/iocp_context.cpp +0 -102
- scaler/io/ymq/iocp_context.h +0 -83
- scaler/io/ymq/logging.h +0 -163
- scaler/io/ymq/message.h +0 -15
- scaler/io/ymq/message_connection.h +0 -16
- scaler/io/ymq/message_connection_tcp.cpp +0 -675
- scaler/io/ymq/message_connection_tcp.h +0 -97
- scaler/io/ymq/network_utils.h +0 -179
- scaler/io/ymq/pymod_ymq/bytes.h +0 -113
- scaler/io/ymq/pymod_ymq/exception.h +0 -124
- scaler/io/ymq/pymod_ymq/gil.h +0 -15
- scaler/io/ymq/pymod_ymq/io_context.h +0 -167
- scaler/io/ymq/pymod_ymq/io_socket.h +0 -295
- scaler/io/ymq/pymod_ymq/message.h +0 -99
- scaler/io/ymq/pymod_ymq/python.h +0 -153
- scaler/io/ymq/pymod_ymq/ymq.cpp +0 -23
- scaler/io/ymq/pymod_ymq/ymq.h +0 -357
- scaler/io/ymq/readme.md +0 -114
- scaler/io/ymq/simple_interface.cpp +0 -80
- scaler/io/ymq/simple_interface.h +0 -24
- scaler/io/ymq/tcp_client.cpp +0 -367
- scaler/io/ymq/tcp_client.h +0 -75
- scaler/io/ymq/tcp_operations.h +0 -41
- scaler/io/ymq/tcp_server.cpp +0 -410
- scaler/io/ymq/tcp_server.h +0 -79
- scaler/io/ymq/third_party/concurrentqueue.h +0 -3747
- scaler/io/ymq/timed_queue.h +0 -272
- scaler/io/ymq/timestamp.h +0 -102
- scaler/io/ymq/typedefs.h +0 -20
- scaler/io/ymq/utils.h +0 -34
- scaler/object_storage/CMakeLists.txt +0 -46
- scaler/object_storage/constants.h +0 -11
- scaler/object_storage/defs.h +0 -14
- scaler/object_storage/io_helper.cpp +0 -44
- scaler/object_storage/io_helper.h +0 -9
- scaler/object_storage/message.cpp +0 -56
- scaler/object_storage/message.h +0 -130
- scaler/object_storage/object_manager.cpp +0 -126
- scaler/object_storage/object_manager.h +0 -52
- scaler/object_storage/object_storage_server.cpp +0 -368
- scaler/object_storage/object_storage_server.h +0 -125
- scaler/object_storage/pymod_object_storage_server.cpp +0 -115
- {opengris_scaler-1.12.13.dist-info → opengris_scaler-1.12.25.dist-info}/WHEEL +0 -0
- {opengris_scaler-1.12.13.dist-info → opengris_scaler-1.12.25.dist-info}/licenses/LICENSE +0 -0
- {opengris_scaler-1.12.13.dist-info → opengris_scaler-1.12.25.dist-info}/licenses/LICENSE.spdx +0 -0
- {opengris_scaler-1.12.13.dist-info → opengris_scaler-1.12.25.dist-info}/licenses/NOTICE +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: opengris-scaler
|
|
3
|
-
Version: 1.12.
|
|
3
|
+
Version: 1.12.25
|
|
4
4
|
Summary: OpenGRIS Scaler Distribution Framework
|
|
5
5
|
Author-Email: Citi <opensource@citi.com>
|
|
6
6
|
License: Apache 2.0
|
|
@@ -9,11 +9,11 @@ Classifier: License :: OSI Approved :: Apache Software License
|
|
|
9
9
|
Classifier: Intended Audience :: Developers
|
|
10
10
|
Classifier: Operating System :: OS Independent
|
|
11
11
|
Classifier: Topic :: System :: Distributed Computing
|
|
12
|
-
Project-URL: Home, https://github.com/
|
|
12
|
+
Project-URL: Home, https://github.com/finos/opengris-scaler
|
|
13
13
|
Requires-Python: >=3.8
|
|
14
14
|
Requires-Dist: bidict
|
|
15
15
|
Requires-Dist: cloudpickle
|
|
16
|
-
Requires-Dist: psutil==7.1.
|
|
16
|
+
Requires-Dist: psutil==7.1.3
|
|
17
17
|
Requires-Dist: pycapnp==2.1.0
|
|
18
18
|
Requires-Dist: pyzmq
|
|
19
19
|
Requires-Dist: sortedcontainers==2.4.0
|
|
@@ -21,24 +21,28 @@ Requires-Dist: tblib
|
|
|
21
21
|
Requires-Dist: aiohttp
|
|
22
22
|
Requires-Dist: graphlib-backport; python_version < "3.9"
|
|
23
23
|
Requires-Dist: typing-extensions>=4.0; python_version < "3.10"
|
|
24
|
+
Requires-Dist: tomli; python_version < "3.11"
|
|
24
25
|
Provides-Extra: uvloop
|
|
25
26
|
Requires-Dist: uvloop; platform_system != "Windows" and extra == "uvloop"
|
|
26
27
|
Provides-Extra: gui
|
|
27
28
|
Requires-Dist: nicegui[plotly]==2.24.2; python_version == "3.8" and extra == "gui"
|
|
28
|
-
Requires-Dist: nicegui[plotly]==3.0
|
|
29
|
+
Requires-Dist: nicegui[plotly]==3.2.0; python_version >= "3.9" and extra == "gui"
|
|
29
30
|
Provides-Extra: graphblas
|
|
30
31
|
Requires-Dist: python-graphblas; extra == "graphblas"
|
|
31
32
|
Requires-Dist: numpy==1.24.4; python_version == "3.8" and extra == "graphblas"
|
|
32
33
|
Requires-Dist: numpy==2.0.2; python_version == "3.9" and extra == "graphblas"
|
|
33
34
|
Requires-Dist: numpy==2.2.6; python_version >= "3.10" and extra == "graphblas"
|
|
35
|
+
Provides-Extra: aws
|
|
36
|
+
Requires-Dist: boto3; extra == "aws"
|
|
34
37
|
Provides-Extra: all
|
|
35
38
|
Requires-Dist: nicegui[plotly]==2.24.2; python_version == "3.8" and extra == "all"
|
|
36
|
-
Requires-Dist: nicegui[plotly]==3.0
|
|
39
|
+
Requires-Dist: nicegui[plotly]==3.2.0; python_version >= "3.9" and extra == "all"
|
|
37
40
|
Requires-Dist: python-graphblas; extra == "all"
|
|
38
41
|
Requires-Dist: numpy==1.24.4; python_version == "3.8" and extra == "all"
|
|
39
42
|
Requires-Dist: numpy==2.0.2; python_version == "3.9" and extra == "all"
|
|
40
43
|
Requires-Dist: numpy==2.2.6; python_version >= "3.10" and extra == "all"
|
|
41
44
|
Requires-Dist: uvloop; platform_system != "Windows" and extra == "all"
|
|
45
|
+
Requires-Dist: boto3; extra == "all"
|
|
42
46
|
Description-Content-Type: text/markdown
|
|
43
47
|
|
|
44
48
|
<div align="center">
|
|
@@ -58,12 +62,12 @@ Description-Content-Type: text/markdown
|
|
|
58
62
|
<img src="https://img.shields.io/badge/Documentation-0f1632">
|
|
59
63
|
</a>
|
|
60
64
|
<a href="./LICENSE">
|
|
61
|
-
<img src="https://img.shields.io/github/license/
|
|
65
|
+
<img src="https://img.shields.io/github/license/finos/opengris-scaler?label=license&colorA=0f1632&colorB=255be3">
|
|
62
66
|
</a>
|
|
63
|
-
<a href="https://pypi.org/project/scaler">
|
|
64
|
-
<img alt="PyPI - Version" src="https://img.shields.io/pypi/v/scaler?colorA=0f1632&colorB=255be3">
|
|
67
|
+
<a href="https://pypi.org/project/opengris-scaler">
|
|
68
|
+
<img alt="PyPI - Version" src="https://img.shields.io/pypi/v/opengris-scaler?colorA=0f1632&colorB=255be3">
|
|
65
69
|
</a>
|
|
66
|
-
<img src="https://api.securityscorecards.dev/projects/github.com/
|
|
70
|
+
<img src="https://api.securityscorecards.dev/projects/github.com/finos/opengris-scaler/badge">
|
|
67
71
|
</p>
|
|
68
72
|
</div>
|
|
69
73
|
|
|
@@ -671,21 +675,9 @@ Windows.
|
|
|
671
675
|
Build the Python wheel for Scaler using `cibuildwheel`:
|
|
672
676
|
|
|
673
677
|
```bash
|
|
674
|
-
pip install build cibuildwheel
|
|
675
|
-
|
|
676
|
-
# Parametrize the cibuildwheel's container to build the Boost and Cap'n Proto dependencies.
|
|
677
|
-
export CIBW_BEFORE_ALL='
|
|
678
|
-
yum install sudo -y;
|
|
679
|
-
sudo ./scripts/library_tool.sh capnp compile
|
|
680
|
-
sudo ./scripts/library_tool.sh capnp install
|
|
681
|
-
sudo ./scripts/library_tool.sh boost compile
|
|
682
|
-
sudo ./scripts/library_tool.sh boost install'
|
|
683
|
-
export CIBW_BUILD="*manylinux_x86_64"
|
|
684
|
-
export CIBW_SKIP="pp*"
|
|
685
|
-
export CIBW_MANYLINUX_X86_64_IMAGE="manylinux_2_28"
|
|
678
|
+
pip install build cibuildwheel
|
|
686
679
|
|
|
687
680
|
python -m cibuildwheel --output-dir wheelhouse
|
|
688
|
-
|
|
689
681
|
python -m build --sdist
|
|
690
682
|
```
|
|
691
683
|
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
opengris_scaler.libs/libcapnp-1-137b6426.0.1.so,sha256=4KTrkbBHZXfEDTLhqzpzD9xdfhPWb5h4YE91ueCbw80,4099705
|
|
2
|
+
opengris_scaler.libs/libkj-1-c3197b44.0.1.so,sha256=mPaFmGWCX4oh-xNhVVUmu2DDE7ColL3xzBW6oQinh3w,2769281
|
|
3
|
+
scaler/__init__.py,sha256=nZU5QZ9oW2YIaGwm3-r-6dfmirTVzZpDPDNtX-ITCV4,513
|
|
4
|
+
scaler/about.py,sha256=OBcfSvHO0P3mWaa2Ci4WEOTbH7is-3uYymScxgZPxyg,161
|
|
5
|
+
scaler/version.txt,sha256=48jrGjRqJO8UZKkPuDzsUwD-BKPHQuDKo9tu24YVxKw,8
|
|
6
|
+
scaler/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
|
+
scaler/client/client.py,sha256=tZywq0208n7as62ShckPdeI8soFXh3AaS1pGBCVJrZo,25535
|
|
8
|
+
scaler/client/future.py,sha256=fOl5g4Is4E5jtvO0kmRk4uUs_eUjSjMmyniYhWMAH4w,10041
|
|
9
|
+
scaler/client/object_buffer.py,sha256=MBjz1Rf6ufgTyjMYoV8V78xpezot0aUit41nj-5kV50,4670
|
|
10
|
+
scaler/client/object_reference.py,sha256=Pow064leLlO6OhfW-yyEjcesbzn22ijqGBSQlsQNEtU,606
|
|
11
|
+
scaler/client/agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
12
|
+
scaler/client/agent/client_agent.py,sha256=nPYGl1qpKLAPRMI5ip5o5F5fU-6Yl_M2Nk3Ln8qPkD8,8078
|
|
13
|
+
scaler/client/agent/disconnect_manager.py,sha256=eNy8QKYgsJi4xnyJING0URx48lyaK2GxNYv-GYWYUmg,1189
|
|
14
|
+
scaler/client/agent/future_manager.py,sha256=SS4ucAjg_p8pAH3VSgfhC8dur6xvEyljwbaOoxoNA2g,4713
|
|
15
|
+
scaler/client/agent/heartbeat_manager.py,sha256=1iF3UKQXHe_UK83HFCZFBMOiqZQzg3yCd2Y6cEIJHtw,2772
|
|
16
|
+
scaler/client/agent/mixins.py,sha256=L7G2XwvSUvlHq5bYQfPCstYbQUtSh0r4A69cq69jh2w,2429
|
|
17
|
+
scaler/client/agent/object_manager.py,sha256=ATAjsxcTc4zbT1SEA-1e4aoCPteFczdWKfbsgRYWf9s,4226
|
|
18
|
+
scaler/client/agent/task_manager.py,sha256=7dr6rv3IAlyISII_SPzeLgQCEZnskiv9Qw3cfV4Sg7U,2833
|
|
19
|
+
scaler/client/serializer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
20
|
+
scaler/client/serializer/default.py,sha256=MU0xosP_IRiTlDHogZtceM6Dfl54KvxHGnnbuwmLlb0,385
|
|
21
|
+
scaler/client/serializer/mixins.py,sha256=R3HWteJ54AC5yAK8nsyhWbYTuMDdkQgDi95aOtAS3Qs,1401
|
|
22
|
+
scaler/cluster/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
23
|
+
scaler/cluster/cluster.py,sha256=so9qfYC0stvXyULK5-gvDqwdF2SRRMPMGGjHTPYp4uA,4505
|
|
24
|
+
scaler/cluster/combo.py,sha256=B6nDOcSoNGhQLJQGEyJVyhjPLNxfUSknwg_UfF1VNnU,6584
|
|
25
|
+
scaler/cluster/object_storage_server.py,sha256=0X6afXygpEB1xJ9MAgMIjcH2uufTT8L8RGA2MVmQVmc,1684
|
|
26
|
+
scaler/cluster/scheduler.py,sha256=pg-sLzuDuBWifmcb0wcQB1kSZZu0y7FinHWsnGGxT5I,3509
|
|
27
|
+
scaler/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
28
|
+
scaler/config/defaults.py,sha256=qh8zWrevVPBOLW5O85Tz031oiPUpkHbRal5fWBDuVGQ,3047
|
|
29
|
+
scaler/config/loader.py,sha256=bjBGPv0AeYH8Hh3hOs2GsMB3M2Y5nXWL5eKG4r6KKYU,3866
|
|
30
|
+
scaler/config/mixins.py,sha256=o1YivS_8AzejSQ_jfSt5bkaA59DQGbw9P-rO5Z7LFVs,443
|
|
31
|
+
scaler/config/section/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
32
|
+
scaler/config/section/cluster.py,sha256=A17dfUUOUmT4f8UIFB6gBv2TaFCVlhcgXVx1MbbN7x4,2861
|
|
33
|
+
scaler/config/section/ecs_worker_adapter.py,sha256=hNTA6OZbUk1BxVQDiOhvdPriM_w77o19jzJ8c0JlZZ8,4225
|
|
34
|
+
scaler/config/section/native_worker_adapter.py,sha256=yu5NTJscxtOqvTJHwXlKPgBkIi4nRz8-LfGfsD7UCzk,2268
|
|
35
|
+
scaler/config/section/object_storage_server.py,sha256=XmRBD4Bl7Xs1wiEzppIG0JFS9Ma4NbC6sKiTKc_aMuI,200
|
|
36
|
+
scaler/config/section/scheduler.py,sha256=XtZ6fd51SVpkBjYG_XDmu2DqRZuLCTOD1vWYgplh5Yc,2883
|
|
37
|
+
scaler/config/section/symphony_worker_adapter.py,sha256=PJTuSppV7iObfLvXaUVf3vbcNQlipaE5hqkPtArG1Yg,2024
|
|
38
|
+
scaler/config/section/top.py,sha256=4YUCyZTRVfINUhV56j50pg8be5o8nlWxG08fDqofHrA,288
|
|
39
|
+
scaler/config/section/webui.py,sha256=WOiwbDcL7jJ0EPCwlWp-9XWoPFRRQUYQJkIYtk5qVRo,727
|
|
40
|
+
scaler/config/types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
41
|
+
scaler/config/types/network_backend.py,sha256=o-tBD08ScOohuffqLyN3qeB-Ng4o-cGI8LWDR1ZLE4Y,321
|
|
42
|
+
scaler/config/types/object_storage_server.py,sha256=xvuCwiAQ4C_hKgTI4y6XMx9NKE0aX2QC6dlWNyvJyk4,1338
|
|
43
|
+
scaler/config/types/worker.py,sha256=ney8uqCzf5j_uPIghzj6Nd-OHDeTK6tZF8m4sVNCUM8,1708
|
|
44
|
+
scaler/config/types/zmq.py,sha256=0VODax61H-4PxN6rIeWKlMXOHiW5elVSt1zc-UF0SL8,2593
|
|
45
|
+
scaler/entry_points/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
46
|
+
scaler/entry_points/cluster.py,sha256=6EX08djqhtQZfwUiqeyOVJBytWCYFehqs9Utas--wy4,5801
|
|
47
|
+
scaler/entry_points/object_storage_server.py,sha256=YGDl9-ws0oha1YXXl3gFH660B-IV2o06gCp41zUovdg,1418
|
|
48
|
+
scaler/entry_points/scheduler.py,sha256=OMaxx45d7ErzcAs57DgmYEqm28sHLTrIsuUJy9sLGdU,6476
|
|
49
|
+
scaler/entry_points/top.py,sha256=FRlF6Dk8b3sL41CTENGauBBxrMZx5JjoufqFbGiwQCU,9531
|
|
50
|
+
scaler/entry_points/webui.py,sha256=2xiii_T0PI8pTLJB0RKLMajRDaNYFOKaSP2X9bujMlU,1823
|
|
51
|
+
scaler/entry_points/worker_adapter_ecs.py,sha256=O6ypeF4asnqAw1037O2Ams2Q0kivYIeYKwTUu9hI4Rk,7836
|
|
52
|
+
scaler/entry_points/worker_adapter_native.py,sha256=7oN6nOdri0qvvLB6YrnF1SwExQklKFkLQMo26PPXZG8,5426
|
|
53
|
+
scaler/entry_points/worker_adapter_symphony.py,sha256=D1X0Y_-6lbVnVCHtwZ8fSEbgtAkMU6JLqjgEdmO_VWI,4408
|
|
54
|
+
scaler/io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
55
|
+
scaler/io/async_binder.py,sha256=KNZSnHD9rNbxuxGd5U0gU023Z5Ys3nVsn31KGvjOVoE,3101
|
|
56
|
+
scaler/io/async_connector.py,sha256=7op2onZTGVzEiBWMH3ZMAEdST01SPzu8FvyWskI768U,2638
|
|
57
|
+
scaler/io/async_object_storage_connector.py,sha256=F6CVMn4iMMynuMEmgH2dVAUBOnYIsQGLbnL4U1m2r3o,7767
|
|
58
|
+
scaler/io/mixins.py,sha256=915V2W1NU1SjC94ioPQs0SlWlo4DiZs1YqE2POIxoRQ,4150
|
|
59
|
+
scaler/io/sync_connector.py,sha256=S3kQkzliIlW2-EXEOjkCl6_tw0l6ur3HdVR7RQvcrho,1964
|
|
60
|
+
scaler/io/sync_object_storage_connector.py,sha256=NkmjfYYbeXy0Tdw5gQNirzMAHxWv8Po6DXON83-JdfU,9352
|
|
61
|
+
scaler/io/sync_subscriber.py,sha256=2DOKd2xKIGc8-J2hUtqT8uO7RxGwjJQMtfqHF4fvgH0,2523
|
|
62
|
+
scaler/io/utility.py,sha256=qVz-ama9_fuiUk6uvoghD7g8f2c8PVU-N725nwMdKm8,3131
|
|
63
|
+
scaler/io/ymq_async_object_storage_connector.py,sha256=_eWEkOtpQGk3FtEqczILrohxy-LfCncVV2Q-h-hwrzc,6635
|
|
64
|
+
scaler/io/ymq_sync_object_storage_connector.py,sha256=E-pwyXtHHbU9IZ2NAeMO-n1Y04Gx5cp41fFcdOqTkEQ,7329
|
|
65
|
+
scaler/io/ymq/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
66
|
+
scaler/io/ymq/_ymq.pyi,sha256=1yD4ZzoKsHwHGVfaAm1X24LCg0rgMidj8ILiq_81Gug,3063
|
|
67
|
+
scaler/io/ymq/ymq.py,sha256=iu0xEkn2mONDB9MkDolYwZ9COtKFsCJU0Q23tRYosS8,4919
|
|
68
|
+
scaler/object_storage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
69
|
+
scaler/object_storage/object_storage_server.so,sha256=kr-B1r21AlGaSG5pNGZHHrg4aI1bmQRoeGMD49dlOy0,1372993
|
|
70
|
+
scaler/protocol/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
71
|
+
scaler/protocol/introduction.md,sha256=G8oRzui4KmSlfFUu70y24tTmDmfEKBkog9tFVUn7G1U,5406
|
|
72
|
+
scaler/protocol/worker.md,sha256=o2Hh_HCooqrptpXcHGzuzUkO_o4NWOurp7ja-DQi5ho,10503
|
|
73
|
+
scaler/protocol/capnp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
74
|
+
scaler/protocol/capnp/_python.py,sha256=VfKp2UQBJHiW8Lh6sjQnmW4tl0BQenIPHKD05ALC_dk,284
|
|
75
|
+
scaler/protocol/capnp/common.capnp,sha256=OAXGJt8cAVQATh3h-SBiEVZ5znC78VblMg1m6Uq-Azo,1733
|
|
76
|
+
scaler/protocol/capnp/message.capnp,sha256=SxgeMdT4YsJQIxjq5Ab3TITmhKKkh_WEYQx9HFsD0sQ,4598
|
|
77
|
+
scaler/protocol/capnp/object_storage.capnp,sha256=YFOMPggwqwZXRW-U5WUzR8kEFN-tNBrxppCWywGIiDI,1764
|
|
78
|
+
scaler/protocol/capnp/status.capnp,sha256=Jr3fGv46CdhN-UmWAmLvNWaPUxcUulOActbA5rvrsa8,1359
|
|
79
|
+
scaler/protocol/python/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
80
|
+
scaler/protocol/python/common.py,sha256=Xb2289e-C13sY8_piZf_Gz4eX20mp_dhdSUjxr5Rnqc,5238
|
|
81
|
+
scaler/protocol/python/message.py,sha256=de4g1ck82fH5l8xbTS2xUKc_dW8PMmPrxjiQLFXHQNk,22518
|
|
82
|
+
scaler/protocol/python/mixins.py,sha256=BjGRDyjgezg6_3-68NO-E-0nhu20RQ8CJTyLZBCo9vo,238
|
|
83
|
+
scaler/protocol/python/object_storage.py,sha256=gWmtwtAbUOEZUNooDpvU5jUvdfZGFuzY0ehSptAyH3w,3915
|
|
84
|
+
scaler/protocol/python/status.py,sha256=u_5leag2vHhpbA4lw2U9FJyWC8_b7rnXPhK5FelGBwk,7808
|
|
85
|
+
scaler/scheduler/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
86
|
+
scaler/scheduler/scheduler.py,sha256=JX-FR-CgtgfVp9Nw1mg-T7pPGXOdPiBkhLHJDYAfjXw,11163
|
|
87
|
+
scaler/scheduler/allocate_policy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
88
|
+
scaler/scheduler/allocate_policy/allocate_policy.py,sha256=efBAR2bzkct3mRf94NLlYtVszdWLrm5CTWuyAD9LH-s,315
|
|
89
|
+
scaler/scheduler/allocate_policy/capability_allocate_policy.py,sha256=ya47keTt679fADdHyqPDohthx0aO2AG1LlIqx3lf0EU,11836
|
|
90
|
+
scaler/scheduler/allocate_policy/even_load_allocate_policy.py,sha256=zzeRfbw7_SqZdQf7DC9Gf1CIA65DQL44q9K56pyEr8E,5906
|
|
91
|
+
scaler/scheduler/allocate_policy/mixins.py,sha256=LKcG-B_Xb7WvueD59ZThEaLTD8yFwf3u9oi0wkLtN00,2229
|
|
92
|
+
scaler/scheduler/controllers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
93
|
+
scaler/scheduler/controllers/balance_controller.py,sha256=b5HfiR0C4zu0NhXgEAQvaQ00rM82txeq7VSuLqMpyPY,2858
|
|
94
|
+
scaler/scheduler/controllers/client_controller.py,sha256=_BJbHEz7MPPMgb7vw8qwZYokFQPAjY5JOdO0sy5ZYHk,5262
|
|
95
|
+
scaler/scheduler/controllers/config_controller.py,sha256=8YM4Ofg8biZLfkkQUEIhgnWBjOVp_5iYieNeavkt4zA,1064
|
|
96
|
+
scaler/scheduler/controllers/graph_controller.py,sha256=RmqzLjZ8e5X2IZdcnQrbNBYcrCe-8oy1-RX64U6kCP4,17549
|
|
97
|
+
scaler/scheduler/controllers/information_controller.py,sha256=34BRJ6JzPrtE3QHn87uMnCtuW7_YILZjA9OLDCB7PkM,3318
|
|
98
|
+
scaler/scheduler/controllers/mixins.py,sha256=7zdcIln95MEOuv0hECT7uIXFmTwWcrCdx-7ES66BNNY,6149
|
|
99
|
+
scaler/scheduler/controllers/object_controller.py,sha256=PNHiQ3-92jbbHwKjQ_YVbupmFbBhMJ5ilom1MxnRIm4,6173
|
|
100
|
+
scaler/scheduler/controllers/task_controller.py,sha256=9Rhenwqeqypb2uBpF7wCXOKur618O2ZmOTOmtzRezLw,18208
|
|
101
|
+
scaler/scheduler/controllers/worker_controller.py,sha256=GJ3MthFyijwRcn2J_LZWAoKLbGTO33_qqROelGjywqA,7024
|
|
102
|
+
scaler/scheduler/controllers/scaling_policies/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
103
|
+
scaler/scheduler/controllers/scaling_policies/fixed_elastic.py,sha256=jJKpDFkGxhO4_cwA0rJohLtwEGvmVGte0HM5U46EZLM,6607
|
|
104
|
+
scaler/scheduler/controllers/scaling_policies/mixins.py,sha256=-j1YCJLNO5T7s4H3WvpDVLfBSGHzcN2V6k-yobI1rBc,279
|
|
105
|
+
scaler/scheduler/controllers/scaling_policies/null.py,sha256=Z15jvo2WoWUNLYw19GSE1uxXWILRRYB58seK8e39BCc,475
|
|
106
|
+
scaler/scheduler/controllers/scaling_policies/types.py,sha256=tGFq2HNWJoc06P5KKHzH3uq0LfjPtfkZpMcVjIxeTuM,159
|
|
107
|
+
scaler/scheduler/controllers/scaling_policies/utility.py,sha256=WWcCBzNL87gZr2ygKBIMKgWh0oFvI-K3PkAXUQozCSU,1146
|
|
108
|
+
scaler/scheduler/controllers/scaling_policies/vanilla.py,sha256=PdfdJzd2SlQ5CEXv7JHe0hAMzW3vUuYU0mnTFr_fPTQ,4253
|
|
109
|
+
scaler/scheduler/object_usage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
110
|
+
scaler/scheduler/object_usage/object_tracker.py,sha256=cx7n-TsgvhXK7bVqeam0LW6C8vaOPwKLeIRHSzW6Cxs,4600
|
|
111
|
+
scaler/scheduler/task/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
112
|
+
scaler/scheduler/task/task_state_machine.py,sha256=j743KFNK-NAv3XePnYK8rIzkwQbHYmJSpVKPEuD8d0o,3555
|
|
113
|
+
scaler/scheduler/task/task_state_manager.py,sha256=wrpLc-HsW7VzUTiNK8LsUPHxMrm8fiC9Rk3g29dwkt8,2590
|
|
114
|
+
scaler/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
115
|
+
scaler/ui/constants.py,sha256=GVljwcm14bTpEj5k0Cfoe5NFXxepGFZl3Rm-mSHoZ-A,167
|
|
116
|
+
scaler/ui/live_display.py,sha256=eA44CkZlWW8Iovhc80AfhpRXdJ_CjErLd71ms6o1_LA,5525
|
|
117
|
+
scaler/ui/memory_window.py,sha256=lIyj-kM0oAzU1fAJpaBcoDOGPKnrHwRVvq8RAW68IgA,5578
|
|
118
|
+
scaler/ui/setting_page.py,sha256=crM_khWAe5sObYY7tM2umz1rCdDYsLVeYo7LDyS1onA,1277
|
|
119
|
+
scaler/ui/task_graph.py,sha256=El5JLRVAN1tyy3d31KCrTvAAiG4fmed0c-FZsdSiLNQ,34706
|
|
120
|
+
scaler/ui/task_log.py,sha256=RAHmytaaSuTJP8AmUb75-gSsyhIxWmxfjp6AxrcFU9M,3808
|
|
121
|
+
scaler/ui/utility.py,sha256=3mPucmAxd3mVvgGm-YFeyDVZsbc5hhsv5OllnP5r3Rk,2033
|
|
122
|
+
scaler/ui/webui.py,sha256=0L9WLF87oJsQ4QDw5AkXx9GHa9beH00sgIApA98zgxc,5836
|
|
123
|
+
scaler/ui/worker_processors.py,sha256=5oBmHVRunbJrZvq9z2aikYbEXmyn54M47BgN0KMFr9o,3837
|
|
124
|
+
scaler/utility/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
125
|
+
scaler/utility/debug.py,sha256=FKJZ0xyy9XFEzYB86H_Cfs-0Fd42oUr9rppY1Qd8Ikw,407
|
|
126
|
+
scaler/utility/event_list.py,sha256=-ifYdr2IiLNRzY72l6iAdDpkg8Rgfz5YkRxqudSKPX4,1532
|
|
127
|
+
scaler/utility/event_loop.py,sha256=BDKzbecbAfLWORGAIAiAG4KbObWCRnReD6t6o2IhIPE,1838
|
|
128
|
+
scaler/utility/exceptions.py,sha256=vXV1fUebZ8tRFGqTEDM6O5LsL_vScDHNQ8ZezdjEiPk,532
|
|
129
|
+
scaler/utility/formatter.py,sha256=QJUAxZWqWqrJb-MGRkHTeRHkJNRcpPg4Q_E5VOlhMsI,1008
|
|
130
|
+
scaler/utility/identifiers.py,sha256=zh6LGFmk6DZ7Hdz1a56dH_nWXqfbbwn82lGjRfRXrjA,2991
|
|
131
|
+
scaler/utility/many_to_many_dict.py,sha256=JLv3a3Wb6OcXT462exMZ_LsrizXWXUdQCz_WCTBV3bM,4641
|
|
132
|
+
scaler/utility/mixins.py,sha256=0b4_tTc35J5Aa8Ac9hn5j6-OL6sLmgD-9xm24-C51YA,266
|
|
133
|
+
scaler/utility/network_util.py,sha256=OeypHvDEHNlz-U7MucBDglyVg9LahLNsqwwpXjW-ot0,243
|
|
134
|
+
scaler/utility/one_to_many_dict.py,sha256=NpRrTfw9ubSTxyzt1RNp6CpKhehyny6ZM0mWr7rouhI,2223
|
|
135
|
+
scaler/utility/serialization.py,sha256=JRHHJjmYKi9GaGZ0ukxFD35QDxmU2dts6PsXfd2WbJY,214
|
|
136
|
+
scaler/utility/graph/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
137
|
+
scaler/utility/graph/optimization.py,sha256=xp5JAkdnkzpdH3k6lw0aHYy1sKZo5iAaww0VfjHUx9s,785
|
|
138
|
+
scaler/utility/graph/topological_sorter.py,sha256=9_CfWpJLZ1A9SAJgg03RQspjf1dRFV2cqQoJ6ZCOScs,354
|
|
139
|
+
scaler/utility/graph/topological_sorter_graphblas.py,sha256=BwAafDQsF8iNUVWrZ2R0aUKxKMcISI3xC2bmJVhm5SE,6856
|
|
140
|
+
scaler/utility/logging/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
141
|
+
scaler/utility/logging/decorators.py,sha256=QvObAsCD29Q9u4LL9jr8HYvYASSlLmkjftPXoa2rBRg,759
|
|
142
|
+
scaler/utility/logging/scoped_logger.py,sha256=mOWJBsKxANCXPRW3D9eUOWVcz0BEZAFLJoYG5nXOtI4,1024
|
|
143
|
+
scaler/utility/logging/utility.py,sha256=ob4VWkRJKQcQXMrtoIwgP6drHH4n3SZ3t4arqcj8okM,5799
|
|
144
|
+
scaler/utility/metadata/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
145
|
+
scaler/utility/metadata/profile_result.py,sha256=5GXVet_oAOnAl94vQ6LrPMpaKrG9KBLKoOfUTq8_pI8,1000
|
|
146
|
+
scaler/utility/metadata/task_flags.py,sha256=b-3iwr9IyCfTGV6b-21FjnHxHccFI9zXFEbmXoY93vY,864
|
|
147
|
+
scaler/utility/queues/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
148
|
+
scaler/utility/queues/async_indexed_queue.py,sha256=QeEXa1l9ujsvPmn2blBODouNjcAVhM21DoeIEMV4Zfs,1171
|
|
149
|
+
scaler/utility/queues/async_priority_queue.py,sha256=IgLs9Ll3QNoYTI7Wp0sqLcb71wFasU6epCAmHjJ5v5k,2709
|
|
150
|
+
scaler/utility/queues/async_sorted_priority_queue.py,sha256=f4k1dO34LcJkq1OMLbI_nLg23R_Vmj1SGNTJ8oESdUk,1448
|
|
151
|
+
scaler/utility/queues/indexed_queue.py,sha256=MLFkXWEZ8HaJC-gKZD9F9gf-oXL_lJ7O317FnTWFCuQ,3077
|
|
152
|
+
scaler/worker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
153
|
+
scaler/worker/preload.py,sha256=gjkNx1IvRBk_bJeYCBN_tD6Vyw8n0LJbnI1O2qwZz18,3086
|
|
154
|
+
scaler/worker/worker.py,sha256=Z8l4NhyinnjZsTdpeUbQII9sC9LoJzg2DMrVQlgNDKE,10986
|
|
155
|
+
scaler/worker/agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
156
|
+
scaler/worker/agent/heartbeat_manager.py,sha256=9eeFDYuYcn6teuIRIcA3LJts8VN-DsGiJR4N0QgAHWY,4793
|
|
157
|
+
scaler/worker/agent/mixins.py,sha256=ckpb2tjLW6mFY3S_tFkUzvKi2dkCb_datKWLJqYDNDs,4074
|
|
158
|
+
scaler/worker/agent/processor_holder.py,sha256=Jlu2o0tArrRo5RnympYiF5EaSPNbLPceg3nbx2d2fu4,5096
|
|
159
|
+
scaler/worker/agent/processor_manager.py,sha256=jso_12HDEt5CvGlVslH_w_B2C5YNmbPm4LKk_zHEcjk,13397
|
|
160
|
+
scaler/worker/agent/profiling_manager.py,sha256=77qF_b8LhfKszQ5eNZiUUc9FqcBCH5Uo1jpEklbCExg,3977
|
|
161
|
+
scaler/worker/agent/task_manager.py,sha256=7X1J9MW8Ib58t1dBb84yhkZVo60zezKn-Z5M2oF-RoA,6149
|
|
162
|
+
scaler/worker/agent/timeout_manager.py,sha256=HAUBUOhFh8QTeuYTrhInr0mX1O12PGbODBkkUtcLReQ,602
|
|
163
|
+
scaler/worker/agent/processor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
164
|
+
scaler/worker/agent/processor/object_cache.py,sha256=6IlU1hAV3ZgapNj9UMXJI_eN7uwVbCvVh9Vhlv6arEs,3857
|
|
165
|
+
scaler/worker/agent/processor/processor.py,sha256=6H26lFUd5QSc7XI-w8BVYlA_5oa06bL2UeeTja6T18A,11133
|
|
166
|
+
scaler/worker/agent/processor/streaming_buffer.py,sha256=aOBfbC3VOveYvpR6HIqBcTCXPc--dY0-q1IGIAXeI1k,863
|
|
167
|
+
scaler/worker_adapter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
168
|
+
scaler/worker_adapter/common.py,sha256=6i6rhgoOioDDkBKGFCsrTTlI3OJnc3r-cKCNoR_GLls,636
|
|
169
|
+
scaler/worker_adapter/ecs.py,sha256=KNQhOkzS4xTTtqmmWhK_PZtngPtqErXbd6akek6hYIo,11596
|
|
170
|
+
scaler/worker_adapter/native.py,sha256=yFgjCwmOmWRzKrWgaRswtpUMOTKQHEN1L1x2DdX58js,6551
|
|
171
|
+
scaler/worker_adapter/symphony/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
172
|
+
scaler/worker_adapter/symphony/callback.py,sha256=ofy3rstxgezT8uT7Y1B9im-CwMPGlJHCd1EuHuViGqw,1534
|
|
173
|
+
scaler/worker_adapter/symphony/heartbeat_manager.py,sha256=PukyrkU7Ea8M-Icgx3KHhFNaKmizj7g71iFzj-N1TZo,3264
|
|
174
|
+
scaler/worker_adapter/symphony/message.py,sha256=HOonEASua8e-uwpPVxprjyl1rrYmFJaSd8FaobbK5VE,688
|
|
175
|
+
scaler/worker_adapter/symphony/task_manager.py,sha256=C-qAn0dH57rEEIjnqV8KLKF48bq0dAKSomgS7ITS1c0,12181
|
|
176
|
+
scaler/worker_adapter/symphony/worker.py,sha256=0GGHo-7uWDISvJKw94r1wfAQr-5_esVtoRXa1jdFVyo,7932
|
|
177
|
+
scaler/worker_adapter/symphony/worker_adapter.py,sha256=bFQ_LkAg8wqNzzQkBZRAVvzlNF8RnIWtWfnQBg7KJ9U,5732
|
|
178
|
+
src/scaler/io/ymq/_ymq.so,sha256=X1_ngAo4xYQn40wJOMDoZhNX8EHGXTurzlaoaikmVJk,1142912
|
|
179
|
+
opengris_scaler-1.12.25.dist-info/METADATA,sha256=rMoLupnifJ50ydxaNWDYiSWS2XMOubNHQMsG300NSuE,26920
|
|
180
|
+
opengris_scaler-1.12.25.dist-info/WHEEL,sha256=WfUIOrZZjmphW6XvWWOC-3zHgyiL7DZcrARpY3z4EcQ,118
|
|
181
|
+
opengris_scaler-1.12.25.dist-info/entry_points.txt,sha256=1nvHjpnx1XRfxDTeR9MzO30-jsBHAHrd2YRFp2FvtwE,518
|
|
182
|
+
opengris_scaler-1.12.25.dist-info/RECORD,,
|
|
183
|
+
opengris_scaler-1.12.25.dist-info/licenses/LICENSE,sha256=xudC0jta6OXJkSHiLzzQQU50HIwSo0G97exO280dtR8,11345
|
|
184
|
+
opengris_scaler-1.12.25.dist-info/licenses/LICENSE.spdx,sha256=i49Qe6AmXxuvocKyExEFduvdh-NQ5YuxdHs515G8VOQ,225
|
|
185
|
+
opengris_scaler-1.12.25.dist-info/licenses/NOTICE,sha256=JUHdG2ssq0nP2QsqPM8X2eJhfJhK_lemIvDBqBRXrMo,286
|
|
@@ -6,4 +6,5 @@ scaler_ui = scaler.entry_points.webui:main
|
|
|
6
6
|
scaler_object_storage_server = scaler.entry_points.object_storage_server:main
|
|
7
7
|
scaler_worker_adapter_native = scaler.entry_points.worker_adapter_native:main
|
|
8
8
|
scaler_worker_adapter_symphony = scaler.entry_points.worker_adapter_symphony:main
|
|
9
|
+
scaler_worker_adapter_ecs = scaler.entry_points.worker_adapter_ecs:main
|
|
9
10
|
|
|
Binary file
|
|
Binary file
|
|
@@ -13,6 +13,7 @@ from scaler.client.agent.heartbeat_manager import ClientHeartbeatManager
|
|
|
13
13
|
from scaler.client.agent.object_manager import ClientObjectManager
|
|
14
14
|
from scaler.client.agent.task_manager import ClientTaskManager
|
|
15
15
|
from scaler.client.serializer.mixins import Serializer
|
|
16
|
+
from scaler.config.types.zmq import ZMQConfig
|
|
16
17
|
from scaler.io.async_connector import ZMQAsyncConnector
|
|
17
18
|
from scaler.io.mixins import AsyncConnector
|
|
18
19
|
from scaler.protocol.python.common import ObjectStorageAddress
|
|
@@ -32,7 +33,6 @@ from scaler.protocol.python.mixins import Message
|
|
|
32
33
|
from scaler.utility.event_loop import create_async_loop_routine
|
|
33
34
|
from scaler.utility.exceptions import ClientCancelledException, ClientQuitException, ClientShutdownException
|
|
34
35
|
from scaler.utility.identifiers import ClientID
|
|
35
|
-
from scaler.config.types.zmq import ZMQConfig
|
|
36
36
|
|
|
37
37
|
|
|
38
38
|
class ClientAgent(threading.Thread):
|
|
@@ -59,7 +59,7 @@ class ClientAgent(threading.Thread):
|
|
|
59
59
|
self._client_agent_address = client_agent_address
|
|
60
60
|
self._scheduler_address = scheduler_address
|
|
61
61
|
self._context = context
|
|
62
|
-
self.
|
|
62
|
+
self._object_storage_address: Future[ObjectStorageAddress] = Future()
|
|
63
63
|
|
|
64
64
|
self._future_manager = future_manager
|
|
65
65
|
|
|
@@ -89,7 +89,7 @@ class ClientAgent(threading.Thread):
|
|
|
89
89
|
def __initialize(self):
|
|
90
90
|
self._disconnect_manager = ClientDisconnectManager()
|
|
91
91
|
self._heartbeat_manager = ClientHeartbeatManager(
|
|
92
|
-
death_timeout_seconds=self._timeout_seconds, storage_address_future=self.
|
|
92
|
+
death_timeout_seconds=self._timeout_seconds, storage_address_future=self._object_storage_address
|
|
93
93
|
)
|
|
94
94
|
self._object_manager = ClientObjectManager(identity=self._identity)
|
|
95
95
|
self._task_manager = ClientTaskManager()
|
|
@@ -118,9 +118,9 @@ class ClientAgent(threading.Thread):
|
|
|
118
118
|
self.__initialize()
|
|
119
119
|
self.__run_loop()
|
|
120
120
|
|
|
121
|
-
def
|
|
121
|
+
def get_object_storage_address(self) -> ObjectStorageAddress:
|
|
122
122
|
"""Returns the object storage address, or block until it receives it."""
|
|
123
|
-
return self.
|
|
123
|
+
return self._object_storage_address.result()
|
|
124
124
|
|
|
125
125
|
async def __on_receive_from_client(self, message: Message):
|
|
126
126
|
if isinstance(message, ClientDisconnect):
|
|
@@ -194,8 +194,8 @@ class ClientAgent(threading.Thread):
|
|
|
194
194
|
if exception is None:
|
|
195
195
|
return
|
|
196
196
|
|
|
197
|
-
if not self.
|
|
198
|
-
self.
|
|
197
|
+
if not self._object_storage_address.done():
|
|
198
|
+
self._object_storage_address.set_exception(exception)
|
|
199
199
|
|
|
200
200
|
if isinstance(exception, asyncio.CancelledError):
|
|
201
201
|
logging.error("ClientAgent: async. loop cancelled")
|
|
@@ -15,7 +15,7 @@ from scaler.utility.mixins import Looper
|
|
|
15
15
|
class ClientHeartbeatManager(Looper, HeartbeatManager):
|
|
16
16
|
def __init__(self, death_timeout_seconds: int, storage_address_future: Future):
|
|
17
17
|
self._death_timeout_seconds = death_timeout_seconds
|
|
18
|
-
self.
|
|
18
|
+
self._object_storage_address = storage_address_future
|
|
19
19
|
|
|
20
20
|
self._process = psutil.Process()
|
|
21
21
|
|
|
@@ -50,10 +50,10 @@ class ClientHeartbeatManager(Looper, HeartbeatManager):
|
|
|
50
50
|
self._latency_us = int(((time.time_ns() - self._start_timestamp_ns) / 2) // 1_000)
|
|
51
51
|
self._start_timestamp_ns = 0
|
|
52
52
|
|
|
53
|
-
if self.
|
|
53
|
+
if self._object_storage_address.done():
|
|
54
54
|
return
|
|
55
55
|
|
|
56
|
-
self.
|
|
56
|
+
self._object_storage_address.set_result(heartbeat.object_storage_address())
|
|
57
57
|
|
|
58
58
|
async def routine(self):
|
|
59
59
|
if time.time() - self._last_scheduler_contact > self._death_timeout_seconds:
|
|
@@ -69,6 +69,6 @@ class ClientHeartbeatManager(Looper, HeartbeatManager):
|
|
|
69
69
|
await self.send_heartbeat()
|
|
70
70
|
self._start_timestamp_ns = time.time_ns()
|
|
71
71
|
|
|
72
|
-
def
|
|
72
|
+
def get_object_storage_address(self) -> ObjectStorageAddress:
|
|
73
73
|
"""Returns the object storage configuration, or block until it receives it."""
|
|
74
|
-
return self.
|
|
74
|
+
return self._object_storage_address.result()
|
scaler/client/client.py
CHANGED
|
@@ -17,9 +17,10 @@ from scaler.client.object_reference import ObjectReference
|
|
|
17
17
|
from scaler.client.serializer.default import DefaultSerializer
|
|
18
18
|
from scaler.client.serializer.mixins import Serializer
|
|
19
19
|
from scaler.config.defaults import DEFAULT_CLIENT_TIMEOUT_SECONDS, DEFAULT_HEARTBEAT_INTERVAL_SECONDS
|
|
20
|
+
from scaler.config.types.zmq import ZMQConfig, ZMQType
|
|
20
21
|
from scaler.io.mixins import SyncConnector, SyncObjectStorageConnector
|
|
21
22
|
from scaler.io.sync_connector import ZMQSyncConnector
|
|
22
|
-
from scaler.io.
|
|
23
|
+
from scaler.io.utility import create_sync_object_storage_connector
|
|
23
24
|
from scaler.protocol.python.message import ClientDisconnect, ClientShutdownResponse, GraphTask, Task
|
|
24
25
|
from scaler.utility.exceptions import ClientQuitException, MissingObjects
|
|
25
26
|
from scaler.utility.graph.optimization import cull_graph
|
|
@@ -27,7 +28,6 @@ from scaler.utility.graph.topological_sorter import TopologicalSorter
|
|
|
27
28
|
from scaler.utility.identifiers import ClientID, ObjectID, TaskID
|
|
28
29
|
from scaler.utility.metadata.profile_result import ProfileResult
|
|
29
30
|
from scaler.utility.metadata.task_flags import TaskFlags, retrieve_task_flags_from_task
|
|
30
|
-
from scaler.config.types.zmq import ZMQConfig, ZMQType
|
|
31
31
|
from scaler.worker.agent.processor.processor import Processor
|
|
32
32
|
|
|
33
33
|
|
|
@@ -119,11 +119,11 @@ class Client:
|
|
|
119
119
|
logging.info(f"ScalerClient: connect to scheduler at {self._scheduler_address}")
|
|
120
120
|
|
|
121
121
|
# Blocks until the agent receives the object storage address
|
|
122
|
-
self.
|
|
122
|
+
self._object_storage_address = self._agent.get_object_storage_address()
|
|
123
123
|
|
|
124
|
-
logging.info(f"ScalerClient: connect to object storage at {self.
|
|
125
|
-
self._connector_storage: SyncObjectStorageConnector =
|
|
126
|
-
self.
|
|
124
|
+
logging.info(f"ScalerClient: connect to object storage at {self._object_storage_address}")
|
|
125
|
+
self._connector_storage: SyncObjectStorageConnector = create_sync_object_storage_connector(
|
|
126
|
+
self._object_storage_address.host, self._object_storage_address.port
|
|
127
127
|
)
|
|
128
128
|
|
|
129
129
|
self._object_buffer = ObjectBuffer(
|
scaler/cluster/cluster.py
CHANGED
|
@@ -4,9 +4,9 @@ import os
|
|
|
4
4
|
import signal
|
|
5
5
|
from typing import Dict, List, Optional, Tuple
|
|
6
6
|
|
|
7
|
-
from scaler.utility.logging.utility import setup_logger
|
|
8
7
|
from scaler.config.types.object_storage_server import ObjectStorageConfig
|
|
9
8
|
from scaler.config.types.zmq import ZMQConfig
|
|
9
|
+
from scaler.utility.logging.utility import setup_logger
|
|
10
10
|
from scaler.worker.worker import Worker
|
|
11
11
|
|
|
12
12
|
|
|
@@ -15,7 +15,7 @@ class Cluster(multiprocessing.get_context("spawn").Process): # type: ignore[mis
|
|
|
15
15
|
def __init__(
|
|
16
16
|
self,
|
|
17
17
|
address: ZMQConfig,
|
|
18
|
-
|
|
18
|
+
object_storage_address: Optional[ObjectStorageConfig],
|
|
19
19
|
preload: Optional[str],
|
|
20
20
|
worker_io_threads: int,
|
|
21
21
|
worker_names: List[str],
|
|
@@ -35,7 +35,7 @@ class Cluster(multiprocessing.get_context("spawn").Process): # type: ignore[mis
|
|
|
35
35
|
multiprocessing.Process.__init__(self, name="WorkerMaster")
|
|
36
36
|
|
|
37
37
|
self._address = address
|
|
38
|
-
self.
|
|
38
|
+
self._object_storage_address = object_storage_address
|
|
39
39
|
self._preload = preload
|
|
40
40
|
self._worker_io_threads = worker_io_threads
|
|
41
41
|
self._worker_names = worker_names
|
|
@@ -83,7 +83,7 @@ class Cluster(multiprocessing.get_context("spawn").Process): # type: ignore[mis
|
|
|
83
83
|
event_loop=self._event_loop,
|
|
84
84
|
name=name,
|
|
85
85
|
address=self._address,
|
|
86
|
-
|
|
86
|
+
object_storage_address=self._object_storage_address,
|
|
87
87
|
capabilities=self._per_worker_capabilities,
|
|
88
88
|
preload=self._preload,
|
|
89
89
|
io_threads=self._worker_io_threads,
|
scaler/cluster/combo.py
CHANGED
|
@@ -13,6 +13,8 @@ from scaler.config.defaults import (
|
|
|
13
13
|
DEFAULT_IO_THREADS,
|
|
14
14
|
DEFAULT_LOAD_BALANCE_SECONDS,
|
|
15
15
|
DEFAULT_LOAD_BALANCE_TRIGGER_TIMES,
|
|
16
|
+
DEFAULT_LOGGING_LEVEL,
|
|
17
|
+
DEFAULT_LOGGING_PATHS,
|
|
16
18
|
DEFAULT_MAX_NUMBER_OF_TASKS_WAITING,
|
|
17
19
|
DEFAULT_OBJECT_RETENTION_SECONDS,
|
|
18
20
|
DEFAULT_PER_WORKER_QUEUE_SIZE,
|
|
@@ -20,13 +22,12 @@ from scaler.config.defaults import (
|
|
|
20
22
|
DEFAULT_TRIM_MEMORY_THRESHOLD_BYTES,
|
|
21
23
|
DEFAULT_WORKER_DEATH_TIMEOUT,
|
|
22
24
|
DEFAULT_WORKER_TIMEOUT_SECONDS,
|
|
23
|
-
DEFAULT_LOGGING_LEVEL,
|
|
24
|
-
DEFAULT_LOGGING_PATHS,
|
|
25
25
|
)
|
|
26
|
-
from scaler.scheduler.allocate_policy.allocate_policy import AllocatePolicy
|
|
27
|
-
from scaler.utility.network_util import get_available_tcp_port
|
|
28
26
|
from scaler.config.types.object_storage_server import ObjectStorageConfig
|
|
29
27
|
from scaler.config.types.zmq import ZMQConfig
|
|
28
|
+
from scaler.scheduler.allocate_policy.allocate_policy import AllocatePolicy
|
|
29
|
+
from scaler.scheduler.controllers.scaling_policies.types import ScalingControllerStrategy
|
|
30
|
+
from scaler.utility.network_util import get_available_tcp_port
|
|
30
31
|
|
|
31
32
|
|
|
32
33
|
class SchedulerClusterCombo:
|
|
@@ -34,7 +35,7 @@ class SchedulerClusterCombo:
|
|
|
34
35
|
self,
|
|
35
36
|
n_workers: int,
|
|
36
37
|
address: Optional[str] = None,
|
|
37
|
-
|
|
38
|
+
object_storage_address: Optional[str] = None,
|
|
38
39
|
monitor_address: Optional[str] = None,
|
|
39
40
|
per_worker_capabilities: Optional[Dict[str, int]] = None,
|
|
40
41
|
worker_io_threads: int = DEFAULT_IO_THREADS,
|
|
@@ -64,10 +65,10 @@ class SchedulerClusterCombo:
|
|
|
64
65
|
else:
|
|
65
66
|
self._address = ZMQConfig.from_string(address)
|
|
66
67
|
|
|
67
|
-
if
|
|
68
|
-
self.
|
|
68
|
+
if object_storage_address is None:
|
|
69
|
+
self._object_storage_address = ObjectStorageConfig(self._address.host, get_available_tcp_port())
|
|
69
70
|
else:
|
|
70
|
-
self.
|
|
71
|
+
self._object_storage_address = ObjectStorageConfig.from_string(object_storage_address)
|
|
71
72
|
|
|
72
73
|
if monitor_address is None:
|
|
73
74
|
self._monitor_address = None
|
|
@@ -75,7 +76,7 @@ class SchedulerClusterCombo:
|
|
|
75
76
|
self._monitor_address = ZMQConfig.from_string(monitor_address)
|
|
76
77
|
|
|
77
78
|
self._object_storage = ObjectStorageServerProcess(
|
|
78
|
-
|
|
79
|
+
object_storage_address=self._object_storage_address,
|
|
79
80
|
logging_paths=logging_paths,
|
|
80
81
|
logging_level=logging_level,
|
|
81
82
|
logging_config_file=logging_config_file,
|
|
@@ -85,10 +86,10 @@ class SchedulerClusterCombo:
|
|
|
85
86
|
|
|
86
87
|
self._cluster = Cluster(
|
|
87
88
|
address=self._address,
|
|
88
|
-
|
|
89
|
+
object_storage_address=self._object_storage_address,
|
|
89
90
|
preload=None,
|
|
90
91
|
worker_io_threads=worker_io_threads,
|
|
91
|
-
worker_names=[f"{socket.gethostname().split('.')[0]}
|
|
92
|
+
worker_names=[f"{socket.gethostname().split('.')[0]}" for _ in range(n_workers)],
|
|
92
93
|
per_worker_capabilities=per_worker_capabilities or {},
|
|
93
94
|
per_worker_task_queue_size=per_worker_task_queue_size,
|
|
94
95
|
heartbeat_interval_seconds=heartbeat_interval_seconds,
|
|
@@ -105,12 +106,13 @@ class SchedulerClusterCombo:
|
|
|
105
106
|
|
|
106
107
|
self._scheduler = SchedulerProcess(
|
|
107
108
|
address=self._address,
|
|
108
|
-
|
|
109
|
+
object_storage_address=self._object_storage_address,
|
|
109
110
|
monitor_address=self._monitor_address,
|
|
110
111
|
io_threads=scheduler_io_threads,
|
|
111
112
|
max_number_of_tasks_waiting=max_number_of_tasks_waiting,
|
|
112
113
|
client_timeout_seconds=client_timeout_seconds,
|
|
113
|
-
|
|
114
|
+
scaling_controller_strategy=ScalingControllerStrategy.NULL,
|
|
115
|
+
adapter_webhook_urls=(),
|
|
114
116
|
worker_timeout_seconds=worker_timeout_seconds,
|
|
115
117
|
object_retention_seconds=object_retention_seconds,
|
|
116
118
|
load_balance_seconds=load_balance_seconds,
|
|
@@ -2,15 +2,15 @@ import logging
|
|
|
2
2
|
import multiprocessing
|
|
3
3
|
from typing import Optional, Tuple
|
|
4
4
|
|
|
5
|
+
from scaler.config.types.object_storage_server import ObjectStorageConfig
|
|
5
6
|
from scaler.object_storage.object_storage_server import ObjectStorageServer
|
|
6
7
|
from scaler.utility.logging.utility import get_logger_info, setup_logger
|
|
7
|
-
from scaler.config.types.object_storage_server import ObjectStorageConfig
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
class ObjectStorageServerProcess(multiprocessing.get_context("fork").Process): # type: ignore[misc]
|
|
11
11
|
def __init__(
|
|
12
12
|
self,
|
|
13
|
-
|
|
13
|
+
object_storage_address: ObjectStorageConfig,
|
|
14
14
|
logging_paths: Tuple[str, ...],
|
|
15
15
|
logging_level: str,
|
|
16
16
|
logging_config_file: Optional[str],
|
|
@@ -21,7 +21,7 @@ class ObjectStorageServerProcess(multiprocessing.get_context("fork").Process):
|
|
|
21
21
|
self._logging_level = logging_level
|
|
22
22
|
self._logging_config_file = logging_config_file
|
|
23
23
|
|
|
24
|
-
self.
|
|
24
|
+
self._object_storage_address = object_storage_address
|
|
25
25
|
|
|
26
26
|
self._server = ObjectStorageServer()
|
|
27
27
|
|
|
@@ -31,14 +31,14 @@ class ObjectStorageServerProcess(multiprocessing.get_context("fork").Process):
|
|
|
31
31
|
|
|
32
32
|
def run(self) -> None:
|
|
33
33
|
setup_logger(self._logging_paths, self._logging_config_file, self._logging_level)
|
|
34
|
-
logging.info(f"ObjectStorageServer: start and listen to {self.
|
|
34
|
+
logging.info(f"ObjectStorageServer: start and listen to {self._object_storage_address.to_string()}")
|
|
35
35
|
|
|
36
36
|
log_format_str, log_level_str, logging_paths = get_logger_info(logging.getLogger())
|
|
37
37
|
|
|
38
38
|
self._server.run(
|
|
39
|
-
self.
|
|
40
|
-
self.
|
|
41
|
-
self.
|
|
39
|
+
self._object_storage_address.host,
|
|
40
|
+
self._object_storage_address.port,
|
|
41
|
+
self._object_storage_address.identity,
|
|
42
42
|
log_level_str,
|
|
43
43
|
log_format_str,
|
|
44
44
|
logging_paths,
|
scaler/cluster/scheduler.py
CHANGED
|
@@ -4,10 +4,11 @@ import signal
|
|
|
4
4
|
from asyncio import AbstractEventLoop, Task
|
|
5
5
|
from typing import Any, Optional, Tuple
|
|
6
6
|
|
|
7
|
-
from scaler.scheduler.allocate_policy.allocate_policy import AllocatePolicy
|
|
8
7
|
from scaler.config.section.scheduler import SchedulerConfig
|
|
9
8
|
from scaler.config.types.object_storage_server import ObjectStorageConfig
|
|
10
9
|
from scaler.config.types.zmq import ZMQConfig
|
|
10
|
+
from scaler.scheduler.allocate_policy.allocate_policy import AllocatePolicy
|
|
11
|
+
from scaler.scheduler.controllers.scaling_policies.types import ScalingControllerStrategy
|
|
11
12
|
from scaler.scheduler.scheduler import Scheduler, scheduler_main
|
|
12
13
|
from scaler.utility.event_loop import register_event_loop
|
|
13
14
|
from scaler.utility.logging.utility import setup_logger
|
|
@@ -17,9 +18,10 @@ class SchedulerProcess(multiprocessing.get_context("spawn").Process): # type: i
|
|
|
17
18
|
def __init__(
|
|
18
19
|
self,
|
|
19
20
|
address: ZMQConfig,
|
|
20
|
-
|
|
21
|
+
object_storage_address: Optional[ObjectStorageConfig],
|
|
21
22
|
monitor_address: Optional[ZMQConfig],
|
|
22
|
-
|
|
23
|
+
scaling_controller_strategy: ScalingControllerStrategy,
|
|
24
|
+
adapter_webhook_urls: Tuple[str, ...],
|
|
23
25
|
io_threads: int,
|
|
24
26
|
max_number_of_tasks_waiting: int,
|
|
25
27
|
client_timeout_seconds: int,
|
|
@@ -38,9 +40,10 @@ class SchedulerProcess(multiprocessing.get_context("spawn").Process): # type: i
|
|
|
38
40
|
self._scheduler_config = SchedulerConfig(
|
|
39
41
|
event_loop=event_loop,
|
|
40
42
|
scheduler_address=address,
|
|
41
|
-
object_storage_address=
|
|
43
|
+
object_storage_address=object_storage_address,
|
|
42
44
|
monitor_address=monitor_address,
|
|
43
|
-
|
|
45
|
+
scaling_controller_strategy=scaling_controller_strategy,
|
|
46
|
+
adapter_webhook_urls=adapter_webhook_urls,
|
|
44
47
|
io_threads=io_threads,
|
|
45
48
|
max_number_of_tasks_waiting=max_number_of_tasks_waiting,
|
|
46
49
|
client_timeout_seconds=client_timeout_seconds,
|
scaler/config/defaults.py
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import os
|
|
2
2
|
|
|
3
|
+
from scaler.config.types.network_backend import NetworkBackend
|
|
4
|
+
|
|
3
5
|
# ==============
|
|
4
6
|
# SYSTEM OPTIONS
|
|
5
7
|
|
|
@@ -85,3 +87,8 @@ DEFAULT_LOGGING_LEVEL = "INFO"
|
|
|
85
87
|
|
|
86
88
|
# default logging paths
|
|
87
89
|
DEFAULT_LOGGING_PATHS = ("/dev/stdout",)
|
|
90
|
+
|
|
91
|
+
# =======================
|
|
92
|
+
# SCALER NETWORK BACKEND SPECIFIC OPTIONS
|
|
93
|
+
|
|
94
|
+
SCALER_NETWORK_BACKEND = NetworkBackend.tcp_zmq
|