Skip to content

Commit e5b0a36

Browse files
committed
Merge branch 'master' into strong_password
2 parents 6982876 + 376162a commit e5b0a36

61 files changed

Lines changed: 201 additions & 216 deletions

File tree

Some content is hidden

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

integration-test/src/test/java/org/apache/iotdb/db/it/query/IoTDBCaseWhenThenIT.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -919,4 +919,13 @@ public void testMultipleSatisfyCase() {
919919
};
920920
resultSetEqualTest(sql, expectedHeader, retArray);
921921
}
922+
923+
@Test
924+
public void testThenWithBinarySameConstant() {
925+
String sql = "SELECT CASE WHEN true THEN 200 + (s1 - 200) END AS result FROM root.sg.d1";
926+
String[] expectedHeader = new String[] {TIMESTAMP_STR, "result"};
927+
String[] retArray =
928+
new String[] {"0,0.0,", "1000000,11.0,", "20000000,22.0,", "210000000,33.0,"};
929+
resultSetEqualTest(sql, expectedHeader, retArray);
930+
}
922931
}

integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/tablemodel/manual/basic/IoTDBPipeExtractorIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -469,7 +469,7 @@ public void testExtractorTimeRangeMatch() throws Exception {
469469
TestUtils.executeNonQueryWithRetry(receiverEnv, "flush");
470470
};
471471

472-
boolean insertResult = true;
472+
boolean insertResult;
473473

474474
try (final SyncConfigNodeIServiceClient client =
475475
(SyncConfigNodeIServiceClient) senderEnv.getLeaderConfigNodeConnection()) {

integration-test/src/test/java/org/apache/iotdb/pipe/it/dual/tablemodel/manual/basic/IoTDBPipePermissionIT.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,11 @@ public void testSourcePermission() {
211211
return;
212212
}
213213

214-
TableModelUtils.createDataBaseAndTable(receiverEnv, "test", "test");
214+
try {
215+
TableModelUtils.createDataBaseAndTable(receiverEnv, "test", "test");
216+
} catch (final Exception ignore) {
217+
// Ignore because the db/table may be transferred because sender user may see these
218+
}
215219

216220
// Exception, block here
217221
TableModelUtils.assertCountDataAlwaysOnEnv("test", "test", 0, receiverEnv);

integration-test/src/test/java/org/apache/iotdb/relational/it/db/it/IoTDBCaseWhenThenTableIT.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -673,4 +673,12 @@ public void testKind1Logic() {
673673
String[] retArray = new String[] {"null,", "just so so~~~,", "null,", "very well~~~,"};
674674
tableResultSetEqualTest(sql, expectedHeader, retArray, DATABASE);
675675
}
676+
677+
@Test
678+
public void testThenWithBinarySameConstant() {
679+
String sql = "SELECT CASE WHEN true THEN 200 + (s1 - 200) END AS result FROM table1";
680+
String[] expectedHeader = new String[] {"result"};
681+
String[] retArray = new String[] {"0,", "11,", "22,", "33,"};
682+
tableResultSetEqualTest(sql, expectedHeader, retArray, DATABASE);
683+
}
676684
}

iotdb-core/ainode/ainode/core/ainode.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ def start(self):
134134
raise e
135135

136136
# Start the RPC service
137-
self._rpc_handler = AINodeRPCServiceHandler(aiNode=self)
137+
self._rpc_handler = AINodeRPCServiceHandler(ainode=self)
138138
self._rpc_service = AINodeRPCService(self._rpc_handler)
139139
self._rpc_service.start()
140140
self._rpc_service.join(1)

iotdb-core/ainode/ainode/core/config.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
AINODE_CONF_GIT_FILE_NAME,
3232
AINODE_CONF_POM_FILE_NAME,
3333
AINODE_INFERENCE_BATCH_INTERVAL_IN_MS,
34+
AINODE_INFERENCE_MAX_PREDICT_LENGTH,
3435
AINODE_LOG_DIR,
3536
AINODE_MODELS_DIR,
3637
AINODE_ROOT_CONF_DIRECTORY_NAME,
@@ -72,6 +73,9 @@ def __init__(self):
7273
self._ain_inference_batch_interval_in_ms: int = (
7374
AINODE_INFERENCE_BATCH_INTERVAL_IN_MS
7475
)
76+
self._ain_inference_max_predict_length: int = (
77+
AINODE_INFERENCE_MAX_PREDICT_LENGTH
78+
)
7579

7680
# log directory
7781
self._ain_logs_dir: str = AINODE_LOG_DIR
@@ -140,6 +144,14 @@ def set_ain_inference_batch_interval_in_ms(
140144
) -> None:
141145
self._ain_inference_batch_interval_in_ms = ain_inference_batch_interval_in_ms
142146

147+
def get_ain_inference_max_predict_length(self) -> int:
148+
return self._ain_inference_max_predict_length
149+
150+
def set_ain_inference_max_predict_length(
151+
self, ain_inference_max_predict_length: int
152+
) -> None:
153+
self._ain_inference_max_predict_length = ain_inference_max_predict_length
154+
143155
def get_ain_logs_dir(self) -> str:
144156
return self._ain_logs_dir
145157

iotdb-core/ainode/ainode/core/constant.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050

5151
# AINode inference configuration
5252
AINODE_INFERENCE_BATCH_INTERVAL_IN_MS = 15
53+
AINODE_INFERENCE_MAX_PREDICT_LENGTH = 2880
5354

5455
# AINode folder structure
5556
AINODE_ROOT_DIR = os.path.dirname(

iotdb-core/ainode/ainode/core/inference/inference_request_pool.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import numpy as np
2424
import torch
2525
import torch.multiprocessing as mp
26-
from transformers import PretrainedConfig, PreTrainedModel
26+
from transformers import PretrainedConfig
2727

2828
from ainode.core.config import AINodeDescriptor
2929
from ainode.core.inference.inference_request import InferenceRequest
@@ -46,7 +46,7 @@ class InferenceRequestPool(mp.Process):
4646
def __init__(
4747
self,
4848
pool_id: int,
49-
model_id: int,
49+
model_id: str,
5050
config: PretrainedConfig,
5151
request_queue: mp.Queue,
5252
result_queue: mp.Queue,
@@ -58,6 +58,7 @@ def __init__(
5858
self.config = config
5959
self.pool_kwargs = pool_kwargs
6060
self.model = None
61+
self._model_manager = None
6162
self.device = None
6263

6364
# TODO: A scheduler is necessary for better handling following queues

iotdb-core/ainode/ainode/core/inference/utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
from transformers.modeling_outputs import MoeCausalLMOutputWithPast
2323

2424

25-
def _generate_req_id(length=10, charset=string.ascii_letters + string.digits) -> str:
25+
def generate_req_id(length=10, charset=string.ascii_letters + string.digits) -> str:
2626
"""
2727
Generate a random req_id string of specified length.
2828
The length is 10 by default, with 10^{17} possible combinations.

iotdb-core/ainode/ainode/core/manager/inference_manager.py

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
from ainode.core.exception import (
3131
InferenceModelInternalError,
3232
InvalidWindowArgumentError,
33+
NumericalRangeException,
3334
runtime_error_extractor,
3435
)
3536
from ainode.core.inference.inference_request import (
@@ -40,7 +41,7 @@
4041
from ainode.core.inference.strategy.timer_sundial_inference_pipeline import (
4142
TimerSundialInferencePipeline,
4243
)
43-
from ainode.core.inference.utils import _generate_req_id
44+
from ainode.core.inference.utils import generate_req_id
4445
from ainode.core.log import Logger
4546
from ainode.core.manager.model_manager import ModelManager
4647
from ainode.core.model.sundial.configuration_sundial import SundialConfig
@@ -214,6 +215,20 @@ def _run(
214215
full_data = deserializer(raw)
215216
inference_attrs = extract_attrs(req)
216217

218+
predict_length = inference_attrs.get("predict_length", 96)
219+
if (
220+
predict_length
221+
> AINodeDescriptor().get_config().get_ain_inference_max_predict_length()
222+
):
223+
raise NumericalRangeException(
224+
"output_length",
225+
1,
226+
AINodeDescriptor()
227+
.get_config()
228+
.get_ain_inference_max_predict_length(),
229+
predict_length,
230+
)
231+
217232
if model_id == self.ACCELERATE_MODEL_ID and self.DEFAULT_POOL_SIZE > 0:
218233
# TODO: Logic in this branch shall handle all LTSM inferences
219234
# TODO: TSBlock -> Tensor codes should be unified
@@ -223,10 +238,10 @@ def _run(
223238
# the inputs should be on CPU before passing to the inference request
224239
inputs = torch.tensor(data).unsqueeze(0).float().to("cpu")
225240
infer_req = InferenceRequest(
226-
req_id=_generate_req_id(),
241+
req_id=generate_req_id(),
227242
inputs=inputs,
228243
inference_pipeline=TimerSundialInferencePipeline(SundialConfig()),
229-
max_new_tokens=inference_attrs.get("predict_length", 96),
244+
max_new_tokens=predict_length,
230245
)
231246
infer_proxy = InferenceRequestProxy(infer_req.req_id)
232247
with self._result_wrapper_lock:

0 commit comments

Comments
 (0)