Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
4ac19599
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
4ac19599
编写于
7月 21, 2022
作者:
L
liuyao
提交者:
GitHub
7月 21, 2022
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #15240 from taosdata/feature/TD-17357
feat(stream): optimize update data check
上级
602e5a0f
f5a326db
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
18 addition
and
5 deletion
+18
-5
include/libs/stream/tstreamUpdate.h
include/libs/stream/tstreamUpdate.h
+2
-1
source/libs/stream/src/streamUpdate.c
source/libs/stream/src/streamUpdate.c
+16
-4
未找到文件。
include/libs/stream/tstreamUpdate.h
浏览文件 @
4ac19599
...
@@ -33,11 +33,12 @@ typedef struct SUpdateInfo {
...
@@ -33,11 +33,12 @@ typedef struct SUpdateInfo {
int64_t
watermark
;
int64_t
watermark
;
TSKEY
minTS
;
TSKEY
minTS
;
SScalableBf
*
pCloseWinSBF
;
SScalableBf
*
pCloseWinSBF
;
SHashObj
*
pMap
;
}
SUpdateInfo
;
}
SUpdateInfo
;
SUpdateInfo
*
updateInfoInitP
(
SInterval
*
pInterval
,
int64_t
watermark
);
SUpdateInfo
*
updateInfoInitP
(
SInterval
*
pInterval
,
int64_t
watermark
);
SUpdateInfo
*
updateInfoInit
(
int64_t
interval
,
int32_t
precision
,
int64_t
watermark
);
SUpdateInfo
*
updateInfoInit
(
int64_t
interval
,
int32_t
precision
,
int64_t
watermark
);
bool
updateInfoIsUpdated
(
SUpdateInfo
*
pInfo
,
tb_uid
_t
tableId
,
TSKEY
ts
);
bool
updateInfoIsUpdated
(
SUpdateInfo
*
pInfo
,
uint64
_t
tableId
,
TSKEY
ts
);
void
updateInfoDestroy
(
SUpdateInfo
*
pInfo
);
void
updateInfoDestroy
(
SUpdateInfo
*
pInfo
);
void
updateInfoAddCloseWindowSBF
(
SUpdateInfo
*
pInfo
);
void
updateInfoAddCloseWindowSBF
(
SUpdateInfo
*
pInfo
);
void
updateInfoDestoryColseWinSBF
(
SUpdateInfo
*
pInfo
);
void
updateInfoDestoryColseWinSBF
(
SUpdateInfo
*
pInfo
);
...
...
source/libs/stream/src/streamUpdate.c
浏览文件 @
4ac19599
...
@@ -15,9 +15,12 @@
...
@@ -15,9 +15,12 @@
#include "tstreamUpdate.h"
#include "tstreamUpdate.h"
#include "ttime.h"
#include "ttime.h"
#include "query.h"
#define DEFAULT_FALSE_POSITIVE 0.01
#define DEFAULT_FALSE_POSITIVE 0.01
#define DEFAULT_BUCKET_SIZE 131072
#define DEFAULT_BUCKET_SIZE 1310720
#define DEFAULT_MAP_CAPACITY 1310720
#define DEFAULT_MAP_SIZE (DEFAULT_MAP_CAPACITY * 10)
#define ROWS_PER_MILLISECOND 1
#define ROWS_PER_MILLISECOND 1
#define MAX_NUM_SCALABLE_BF 100000
#define MAX_NUM_SCALABLE_BF 100000
#define MIN_NUM_SCALABLE_BF 10
#define MIN_NUM_SCALABLE_BF 10
...
@@ -120,6 +123,8 @@ SUpdateInfo *updateInfoInit(int64_t interval, int32_t precision, int64_t waterma
...
@@ -120,6 +123,8 @@ SUpdateInfo *updateInfoInit(int64_t interval, int32_t precision, int64_t waterma
}
}
pInfo
->
numBuckets
=
DEFAULT_BUCKET_SIZE
;
pInfo
->
numBuckets
=
DEFAULT_BUCKET_SIZE
;
pInfo
->
pCloseWinSBF
=
NULL
;
pInfo
->
pCloseWinSBF
=
NULL
;
_hash_fn_t
hashFn
=
taosGetDefaultHashFunction
(
TSDB_DATA_TYPE_BINARY
);
pInfo
->
pMap
=
taosHashInit
(
DEFAULT_MAP_CAPACITY
,
hashFn
,
true
,
HASH_NO_LOCK
);
return
pInfo
;
return
pInfo
;
}
}
...
@@ -149,8 +154,9 @@ static SScalableBf *getSBf(SUpdateInfo *pInfo, TSKEY ts) {
...
@@ -149,8 +154,9 @@ static SScalableBf *getSBf(SUpdateInfo *pInfo, TSKEY ts) {
return
res
;
return
res
;
}
}
bool
updateInfoIsUpdated
(
SUpdateInfo
*
pInfo
,
tb_uid
_t
tableId
,
TSKEY
ts
)
{
bool
updateInfoIsUpdated
(
SUpdateInfo
*
pInfo
,
uint64
_t
tableId
,
TSKEY
ts
)
{
int32_t
res
=
TSDB_CODE_FAILED
;
int32_t
res
=
TSDB_CODE_FAILED
;
TSKEY
*
pMapMaxTs
=
taosHashGet
(
pInfo
->
pMap
,
&
tableId
,
sizeof
(
uint64_t
));
uint64_t
index
=
((
uint64_t
)
tableId
)
%
pInfo
->
numBuckets
;
uint64_t
index
=
((
uint64_t
)
tableId
)
%
pInfo
->
numBuckets
;
TSKEY
maxTs
=
*
(
TSKEY
*
)
taosArrayGet
(
pInfo
->
pTsBuckets
,
index
);
TSKEY
maxTs
=
*
(
TSKEY
*
)
taosArrayGet
(
pInfo
->
pTsBuckets
,
index
);
if
(
ts
<
maxTs
-
pInfo
->
watermark
)
{
if
(
ts
<
maxTs
-
pInfo
->
watermark
)
{
...
@@ -167,7 +173,13 @@ bool updateInfoIsUpdated(SUpdateInfo *pInfo, tb_uid_t tableId, TSKEY ts) {
...
@@ -167,7 +173,13 @@ bool updateInfoIsUpdated(SUpdateInfo *pInfo, tb_uid_t tableId, TSKEY ts) {
res
=
tScalableBfPut
(
pSBf
,
&
ts
,
sizeof
(
TSKEY
));
res
=
tScalableBfPut
(
pSBf
,
&
ts
,
sizeof
(
TSKEY
));
}
}
if
(
maxTs
<
ts
)
{
int32_t
size
=
taosHashGetSize
(
pInfo
->
pMap
);
if
(
(
!
pMapMaxTs
&&
size
<
DEFAULT_MAP_SIZE
)
||
(
pMapMaxTs
&&
*
pMapMaxTs
<
ts
))
{
taosHashPut
(
pInfo
->
pMap
,
&
tableId
,
sizeof
(
uint64_t
),
&
ts
,
sizeof
(
TSKEY
));
return
false
;
}
if
(
!
pMapMaxTs
&&
maxTs
<
ts
)
{
taosArraySet
(
pInfo
->
pTsBuckets
,
index
,
&
ts
);
taosArraySet
(
pInfo
->
pTsBuckets
,
index
,
&
ts
);
return
false
;
return
false
;
}
}
...
@@ -177,7 +189,7 @@ bool updateInfoIsUpdated(SUpdateInfo *pInfo, tb_uid_t tableId, TSKEY ts) {
...
@@ -177,7 +189,7 @@ bool updateInfoIsUpdated(SUpdateInfo *pInfo, tb_uid_t tableId, TSKEY ts) {
}
else
if
(
res
==
TSDB_CODE_SUCCESS
)
{
}
else
if
(
res
==
TSDB_CODE_SUCCESS
)
{
return
false
;
return
false
;
}
}
qDebug
(
"===stream===bucket:%d, tableId:%"
PRIu64
", maxTs:"
PRIu64
", maxMapTs:"
PRIu64
", ts:%"
PRIu64
,
index
,
tableId
,
maxTs
,
*
pMapMaxTs
,
ts
);
// check from tsdb api
// check from tsdb api
return
true
;
return
true
;
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录