Skip to content

Commit 33d5b19

Browse files
authored
Support Training Module of AINode
1 parent 598080b commit 33d5b19

File tree

56 files changed

+1227
-121
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+1227
-121
lines changed

iotdb-client/client-py/resources/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ dependencies = [
4242
"thrift>=0.14.1",
4343
"pandas>=1.0.0",
4444
"numpy>=1.0.0",
45-
"sqlalchemy<1.5,>=1.4",
45+
"sqlalchemy>=1.4",
4646
"sqlalchemy-utils>=0.37.8"
4747
]
4848

iotdb-core/ainode/.gitignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# generated by Thrift
2-
/iotdb/thrift/
2+
/ainode/thrift/
33

44
# generated by maven
5-
/iotdb/conf/
5+
/ainode/conf/
66

77
# .whl of ainode, generated by Poetry
88
/dist/
File renamed without changes.
Lines changed: 33 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,16 @@
2121
from thrift.protocol import TCompactProtocol, TBinaryProtocol
2222
from thrift.transport import TSocket, TTransport
2323

24-
from iotdb.ainode.config import AINodeDescriptor
25-
from iotdb.ainode.constant import TSStatusCode
26-
from iotdb.ainode.log import Logger
27-
from iotdb.ainode.util.decorator import singleton
28-
from iotdb.ainode.util.status import verify_success
29-
from iotdb.thrift.common.ttypes import TEndPoint, TSStatus, TAINodeLocation, TAINodeConfiguration
30-
from iotdb.thrift.confignode import IConfigNodeRPCService
31-
from iotdb.thrift.confignode.ttypes import (TAINodeRemoveReq, TNodeVersionInfo,
32-
TAINodeRegisterReq, TAINodeRestartReq)
24+
from ainode.core.config import AINodeDescriptor
25+
from ainode.core.constant import TSStatusCode
26+
from ainode.core.log import Logger
27+
from ainode.core.util.decorator import singleton
28+
from ainode.core.util.status import verify_success
29+
from ainode.thrift.common.ttypes import TEndPoint, TSStatus, TAINodeLocation, TAINodeConfiguration
30+
from ainode.thrift.confignode import IConfigNodeRPCService
31+
from ainode.thrift.confignode.ttypes import (TAINodeRemoveReq, TNodeVersionInfo,
32+
TAINodeRegisterReq, TAINodeRestartReq)
33+
from ainode.thrift.confignode.ttypes import TUpdateModelInfoReq
3334

3435
logger = Logger()
3536

@@ -202,3 +203,26 @@ def get_ainode_configuration(self, node_id: int) -> map:
202203
self._config_leader = None
203204
self._wait_and_reconnect()
204205
raise TException(self._MSG_RECONNECTION_FAIL)
206+
207+
def update_model_info(self, model_id:str, model_status:int, attribute:str = "", ainode_id=None, input_length=0, output_length=0) -> None:
208+
if ainode_id is None:
209+
ainode_id = []
210+
for _ in range(0, self._RETRY_NUM):
211+
try:
212+
req = TUpdateModelInfoReq(
213+
model_id, model_status, attribute
214+
)
215+
if ainode_id is not None:
216+
req.aiNodeIds = ainode_id
217+
req.inputLength = input_length
218+
req.outputLength = output_length
219+
status = self._client.updateModelInfo(req)
220+
if not self._update_config_node_leader(status):
221+
verify_success(status, "An error occurs when calling update model info")
222+
return status
223+
except TTransport.TException:
224+
logger.warning("Failed to connect to ConfigNode {} from AINode when executing update model info",
225+
self._config_leader)
226+
self._config_leader = None
227+
self._wait_and_reconnect()
228+
raise TException(self._MSG_RECONNECTION_FAIL)
Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,17 @@
1717
#
1818
import os
1919

20-
from iotdb.ainode.constant import (AINODE_CONF_DIRECTORY_NAME,
21-
AINODE_CONF_FILE_NAME,
22-
AINODE_MODELS_DIR, AINODE_LOG_DIR, AINODE_SYSTEM_DIR, AINODE_INFERENCE_RPC_ADDRESS,
23-
AINODE_INFERENCE_RPC_PORT, AINODE_THRIFT_COMPRESSION_ENABLED,
24-
AINODE_SYSTEM_FILE_NAME, AINODE_CLUSTER_NAME, AINODE_VERSION_INFO, AINODE_BUILD_INFO,
25-
AINODE_CONF_GIT_FILE_NAME, AINODE_CONF_POM_FILE_NAME, AINODE_ROOT_DIR,
26-
AINODE_ROOT_CONF_DIRECTORY_NAME)
27-
from iotdb.ainode.exception import BadNodeUrlError
28-
from iotdb.ainode.log import Logger
29-
from iotdb.ainode.util.decorator import singleton
30-
from iotdb.thrift.common.ttypes import TEndPoint
20+
from ainode.core.constant import (AINODE_CONF_DIRECTORY_NAME,
21+
AINODE_CONF_FILE_NAME,
22+
AINODE_MODELS_DIR, AINODE_LOG_DIR, AINODE_SYSTEM_DIR, AINODE_INFERENCE_RPC_ADDRESS,
23+
AINODE_INFERENCE_RPC_PORT, AINODE_THRIFT_COMPRESSION_ENABLED,
24+
AINODE_SYSTEM_FILE_NAME, AINODE_CLUSTER_NAME, AINODE_VERSION_INFO, AINODE_BUILD_INFO,
25+
AINODE_CONF_GIT_FILE_NAME, AINODE_CONF_POM_FILE_NAME, AINODE_ROOT_DIR,
26+
AINODE_ROOT_CONF_DIRECTORY_NAME)
27+
from ainode.core.exception import BadNodeUrlError
28+
from ainode.core.log import Logger
29+
from ainode.core.util.decorator import singleton
30+
from ainode.thrift.common.ttypes import TEndPoint
3131

3232
logger = Logger()
3333

File renamed without changes.

iotdb-core/ainode/iotdb/ainode/exception.py renamed to iotdb-core/ainode/ainode/core/exception.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
#
1818
import re
1919

20-
from iotdb.ainode.constant import DEFAULT_MODEL_FILE_NAME, DEFAULT_CONFIG_FILE_NAME
20+
from ainode.core.constant import DEFAULT_MODEL_FILE_NAME, DEFAULT_CONFIG_FILE_NAME
2121

2222

2323
class _BaseError(Exception):
Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@
1616
# under the License.
1717
#
1818

19-
from iotdb.ainode.manager.cluster_manager import ClusterManager
20-
from iotdb.ainode.manager.inference_manager import InferenceManager
21-
from iotdb.ainode.manager.model_manager import ModelManager
22-
from iotdb.thrift.ainode import IAINodeRPCService
23-
from iotdb.thrift.ainode.ttypes import (TDeleteModelReq, TRegisterModelReq,
24-
TAIHeartbeatReq, TInferenceReq, TRegisterModelResp, TInferenceResp,
25-
TAIHeartbeatResp)
26-
from iotdb.thrift.common.ttypes import TSStatus
19+
from ainode.core.manager.cluster_manager import ClusterManager
20+
from ainode.core.manager.inference_manager import InferenceManager
21+
from ainode.core.manager.model_manager import ModelManager
22+
from ainode.thrift.ainode import IAINodeRPCService
23+
from ainode.thrift.ainode.ttypes import (TDeleteModelReq, TRegisterModelReq,
24+
TAIHeartbeatReq, TInferenceReq, TRegisterModelResp, TInferenceResp,
25+
TAIHeartbeatResp, TTrainingReq)
26+
from ainode.thrift.common.ttypes import TSStatus
2727

2828

2929
class AINodeRPCServiceHandler(IAINodeRPCService.Iface):
@@ -41,3 +41,6 @@ def inference(self, req: TInferenceReq) -> TInferenceResp:
4141

4242
def getAIHeartbeat(self, req: TAIHeartbeatReq) -> TAIHeartbeatResp:
4343
return ClusterManager.get_heart_beat(req)
44+
45+
def createTrainingTask(self, req: TTrainingReq) -> TSStatus:
46+
pass
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@
2323
import sys
2424
import threading
2525

26-
from iotdb.ainode.constant import STD_LEVEL, AINODE_LOG_FILE_NAMES, AINODE_LOG_FILE_LEVELS
27-
from iotdb.ainode.util.decorator import singleton
26+
from ainode.core.constant import STD_LEVEL, AINODE_LOG_FILE_NAMES, AINODE_LOG_FILE_LEVELS
27+
from ainode.core.util.decorator import singleton
2828

2929

3030
class LoggerFilter(logging.Filter):

0 commit comments

Comments
 (0)