Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
Iotdb
提交
a0c34a4d
I
Iotdb
项目概览
apache
/
Iotdb
10 个月 前同步成功
通知
25
Star
3344
Fork
916
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
I
Iotdb
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
a0c34a4d
编写于
7月 29, 2021
作者:
S
Steve Yurong Su
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add checkers for InsertRowPlan and InsertRowsOfOneDevicePlan
上级
76ecb64e
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
48 addition
and
7 deletion
+48
-7
server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
...e/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
+2
-0
server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileProcessor.java
.../apache/iotdb/db/engine/storagegroup/TsFileProcessor.java
+2
-0
server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
...in/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
+1
-0
server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertRowPlan.java
...a/org/apache/iotdb/db/qp/physical/crud/InsertRowPlan.java
+15
-0
server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertRowsOfOneDevicePlan.java
.../iotdb/db/qp/physical/crud/InsertRowsOfOneDevicePlan.java
+28
-7
未找到文件。
server/src/main/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessor.java
浏览文件 @
a0c34a4d
...
...
@@ -1050,6 +1050,7 @@ public class StorageGroupProcessor {
return
;
}
insertRowPlan
.
checkForTianYuan
(
"StorageGroupProcessor#insertToTsFileProcessor"
);
tsFileProcessor
.
insert
(
insertRowPlan
);
// try to update the latest time of the device of this tsRecord
...
...
@@ -2910,6 +2911,7 @@ public class StorageGroupProcessor {
writeLock
(
"InsertRowsOfOneDevice"
);
try
{
boolean
isSequence
=
false
;
insertRowsOfOneDevicePlan
.
checkForTianYuan
(
"StorageGroupProcessor#insert"
);
InsertRowPlan
[]
rowPlans
=
insertRowsOfOneDevicePlan
.
getRowPlans
();
for
(
int
i
=
0
,
rowPlansLength
=
rowPlans
.
length
;
i
<
rowPlansLength
;
i
++)
{
...
...
server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileProcessor.java
浏览文件 @
a0c34a4d
...
...
@@ -188,6 +188,8 @@ public class TsFileProcessor {
checkMemCostAndAddToTspInfo
(
insertRowPlan
);
}
insertRowPlan
.
checkForTianYuan
(
"TsFileProcessor#InsertRowPlan"
);
workMemTable
.
insert
(
insertRowPlan
);
if
(
IoTDBDescriptor
.
getInstance
().
getConfig
().
isEnableWal
())
{
...
...
server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
浏览文件 @
a0c34a4d
...
...
@@ -1198,6 +1198,7 @@ public class PlanExecutor implements IPlanExecutor {
// we do not need to infer data type for insertRowsOfOneDevicePlan
}
// ok, we can begin to write data into the engine..
insertRowsOfOneDevicePlan
.
checkForTianYuan
(
"PlanExecutor#insert"
);
StorageEngine
.
getInstance
().
insert
(
insertRowsOfOneDevicePlan
);
List
<
String
>
notExistedPaths
=
null
;
...
...
server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertRowPlan.java
浏览文件 @
a0c34a4d
...
...
@@ -63,6 +63,21 @@ public class InsertRowPlan extends InsertPlan {
private
List
<
Object
>
failedValues
;
public
void
checkForTianYuan
(
String
location
)
{
for
(
int
j
=
0
;
j
<
getMeasurements
().
length
;
j
++)
{
if
(
getMeasurements
()[
j
].
equals
(
"TY_0001_Raw_Packet"
))
{
String
value
=
((
Binary
)
getValues
()[
j
]).
getStringValue
().
substring
(
0
,
35
);
if
(!
value
.
contains
(
getDeviceId
().
getMeasurement
().
substring
(
4
)))
{
logger
.
error
(
"{}: receive error data,device:{}, value(first 100 bytes): {}"
,
location
,
getDeviceId
(),
value
);
}
}
}
}
public
InsertRowPlan
()
{
super
(
OperatorType
.
INSERT
);
}
...
...
server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertRowsOfOneDevicePlan.java
浏览文件 @
a0c34a4d
...
...
@@ -23,6 +23,10 @@ import org.apache.iotdb.db.exception.query.QueryProcessException;
import
org.apache.iotdb.db.metadata.PartialPath
;
import
org.apache.iotdb.db.qp.logical.Operator.OperatorType
;
import
org.apache.iotdb.db.qp.physical.BatchPlan
;
import
org.apache.iotdb.tsfile.utils.Binary
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.io.DataOutputStream
;
import
java.io.IOException
;
...
...
@@ -31,15 +35,29 @@ import java.util.ArrayList;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Set
;
import
org.apache.iotdb.tsfile.utils.Binary
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
public
class
InsertRowsOfOneDevicePlan
extends
InsertPlan
implements
BatchPlan
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
InsertRowsOfOneDevicePlan
.
class
);
boolean
[]
isExecuted
;
private
InsertRowPlan
[]
rowPlans
;
public
void
checkForTianYuan
(
String
location
)
{
for
(
int
i
=
0
;
i
<
rowPlans
.
length
;
++
i
)
{
for
(
int
j
=
0
;
j
<
rowPlans
[
i
].
getMeasurements
().
length
;
j
++)
{
if
(
rowPlans
[
i
].
getMeasurements
()[
j
].
equals
(
"TY_0001_Raw_Packet"
))
{
String
value
=
((
Binary
)
rowPlans
[
i
].
getValues
()[
j
]).
getStringValue
().
substring
(
0
,
35
);
if
(!
value
.
contains
(
rowPlans
[
i
].
getDeviceId
().
getMeasurement
().
substring
(
4
)))
{
logger
.
error
(
"{}: receive error data,device:{}, value(first 100 bytes): {}"
,
location
,
rowPlans
[
i
].
getDeviceId
(),
value
);
}
}
}
}
}
public
InsertRowsOfOneDevicePlan
(
PartialPath
deviceId
,
Long
[]
insertTimes
,
...
...
@@ -67,12 +85,15 @@ public class InsertRowsOfOneDevicePlan extends InsertPlan implements BatchPlan {
+
", time:"
+
insertTimes
[
i
]);
}
//Just for Tianyuan debug
for
(
int
j
=
0
;
j
<
rowPlans
[
i
].
getMeasurements
().
length
;
j
++)
{
//
Just for Tianyuan debug
for
(
int
j
=
0
;
j
<
rowPlans
[
i
].
getMeasurements
().
length
;
j
++)
{
if
(
rowPlans
[
i
].
getMeasurements
()[
j
].
equals
(
"TY_0001_Raw_Packet"
))
{
String
value
=
((
Binary
)
rowPlans
[
i
].
getValues
()[
j
]).
getStringValue
().
substring
(
0
,
100
);
String
value
=
((
Binary
)
rowPlans
[
i
].
getValues
()[
j
]).
getStringValue
().
substring
(
0
,
100
);
if
(!
value
.
contains
(
rowPlans
[
i
].
getDeviceId
().
getMeasurement
().
substring
(
4
)))
{
logger
.
error
(
"receive error data,device:{}, value(first 100 bytes): {}"
,
rowPlans
[
i
].
getDeviceId
(),
value
);
logger
.
error
(
"receive error data,device:{}, value(first 100 bytes): {}"
,
rowPlans
[
i
].
getDeviceId
(),
value
);
}
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录