Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
19ac9054
T
TDengine
项目概览
taosdata
/
TDengine
大约 2 年 前同步成功
通知
1192
Star
22018
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看板
提交
19ac9054
编写于
8月 09, 2023
作者:
dengyihao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
support reopen stream state
上级
1db15da4
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
15 addition
and
20 deletion
+15
-20
source/libs/stream/src/streamBackendRocksdb.c
source/libs/stream/src/streamBackendRocksdb.c
+15
-20
未找到文件。
source/libs/stream/src/streamBackendRocksdb.c
浏览文件 @
19ac9054
...
@@ -21,16 +21,15 @@
...
@@ -21,16 +21,15 @@
#include "tref.h"
#include "tref.h"
typedef
struct
{
typedef
struct
{
int8_t
init
;
int8_t
init
;
char
*
pCurrent
;
char
*
pCurrent
;
char
*
pManifest
;
char
*
pManifest
;
SArray
*
pSST
;
SArray
*
pSST
;
int64_t
preCkptId
;
int64_t
preCkptId
;
int64_t
curChkpId
;
int64_t
curChkpId
;
SHashObj
*
pSSTable
;
char
*
path
;
char
*
path
;
char
*
buf
;
char
*
buf
;
int32_t
len
;
int32_t
len
;
SHashObj
*
pSstTbl
[
2
];
SHashObj
*
pSstTbl
[
2
];
SArray
*
pAdd
;
SArray
*
pAdd
;
...
@@ -146,13 +145,12 @@ void destroyFunc(void* arg);
...
@@ -146,13 +145,12 @@ void destroyFunc(void* arg);
int32_t
encodeValueFunc
(
void
*
value
,
int32_t
vlen
,
int64_t
ttl
,
char
**
dest
);
int32_t
encodeValueFunc
(
void
*
value
,
int32_t
vlen
,
int64_t
ttl
,
char
**
dest
);
int32_t
decodeValueFunc
(
void
*
value
,
int32_t
vlen
,
int64_t
*
ttl
,
char
**
dest
);
int32_t
decodeValueFunc
(
void
*
value
,
int32_t
vlen
,
int64_t
*
ttl
,
char
**
dest
);
SBackendManager
*
b
ackendManager
Create
(
char
*
path
)
{
SBackendManager
*
b
kdMgt
Create
(
char
*
path
)
{
SBackendManager
*
p
=
taosMemoryCalloc
(
1
,
sizeof
(
SBackendManager
));
SBackendManager
*
p
=
taosMemoryCalloc
(
1
,
sizeof
(
SBackendManager
));
p
->
curChkpId
=
0
;
p
->
curChkpId
=
0
;
p
->
preCkptId
=
0
;
p
->
preCkptId
=
0
;
p
->
pSST
=
taosArrayInit
(
64
,
sizeof
(
void
*
));
p
->
pSST
=
taosArrayInit
(
64
,
sizeof
(
void
*
));
p
->
path
=
taosStrdup
(
path
);
p
->
path
=
taosStrdup
(
path
);
p
->
pSSTable
=
taosHashInit
(
64
,
taosGetDefaultHashFunction
(
TSDB_DATA_TYPE_BINARY
),
false
,
HASH_ENTRY_LOCK
);
p
->
len
=
strlen
(
path
)
+
128
;
p
->
len
=
strlen
(
path
)
+
128
;
p
->
buf
=
taosMemoryCalloc
(
1
,
p
->
len
);
p
->
buf
=
taosMemoryCalloc
(
1
,
p
->
len
);
...
@@ -165,14 +163,12 @@ SBackendManager* backendManagerCreate(char* path) {
...
@@ -165,14 +163,12 @@ SBackendManager* backendManagerCreate(char* path) {
p
->
update
=
0
;
p
->
update
=
0
;
return
p
;
return
p
;
}
}
void
b
ackendManager
Destroy
(
SBackendManager
*
bm
)
{
void
b
kdMgt
Destroy
(
SBackendManager
*
bm
)
{
if
(
bm
==
NULL
)
return
;
if
(
bm
==
NULL
)
return
;
taosMemoryFree
(
bm
->
buf
);
taosMemoryFree
(
bm
->
buf
);
taosMemoryFree
(
bm
->
path
);
taosMemoryFree
(
bm
->
path
);
taosHashCleanup
(
bm
->
pSSTable
);
taosArrayDestroyP
(
bm
->
pSST
,
taosMemoryFree
);
taosArrayDestroyP
(
bm
->
pSST
,
taosMemoryFree
);
taosArrayDestroyP
(
bm
->
pAdd
,
taosMemoryFree
);
taosArrayDestroyP
(
bm
->
pAdd
,
taosMemoryFree
);
taosArrayDestroyP
(
bm
->
pDel
,
taosMemoryFree
);
taosArrayDestroyP
(
bm
->
pDel
,
taosMemoryFree
);
...
@@ -204,7 +200,7 @@ int32_t compareHashTable(SHashObj* p1, SHashObj* p2, SArray* add, SArray* del) {
...
@@ -204,7 +200,7 @@ int32_t compareHashTable(SHashObj* p1, SHashObj* p2, SArray* add, SArray* del) {
return
code
;
return
code
;
}
}
int32_t
b
ackendManager
GetDelta
(
SBackendManager
*
bm
,
int64_t
chkpId
,
SArray
*
list
)
{
int32_t
b
kdMgt
GetDelta
(
SBackendManager
*
bm
,
int64_t
chkpId
,
SArray
*
list
)
{
const
char
*
pCurrent
=
"CURRENT"
;
const
char
*
pCurrent
=
"CURRENT"
;
int32_t
currLen
=
strlen
(
pCurrent
);
int32_t
currLen
=
strlen
(
pCurrent
);
...
@@ -259,8 +255,7 @@ int32_t backendManagerGetDelta(SBackendManager* bm, int64_t chkpId, SArray* list
...
@@ -259,8 +255,7 @@ int32_t backendManagerGetDelta(SBackendManager* bm, int64_t chkpId, SArray* list
}
}
pIter
=
taosHashIterate
(
bm
->
pSstTbl
[
1
-
bm
->
idx
],
pIter
);
pIter
=
taosHashIterate
(
bm
->
pSstTbl
[
1
-
bm
->
idx
],
pIter
);
}
}
bm
->
update
=
1
;
if
(
taosArrayGetSize
(
bm
->
pAdd
)
>
0
)
bm
->
update
=
1
;
}
else
{
}
else
{
int32_t
code
=
compareHashTable
(
bm
->
pSstTbl
[
bm
->
idx
],
bm
->
pSstTbl
[
1
-
bm
->
idx
],
bm
->
pAdd
,
bm
->
pDel
);
int32_t
code
=
compareHashTable
(
bm
->
pSstTbl
[
bm
->
idx
],
bm
->
pSstTbl
[
1
-
bm
->
idx
],
bm
->
pAdd
,
bm
->
pDel
);
...
@@ -276,7 +271,7 @@ int32_t backendManagerGetDelta(SBackendManager* bm, int64_t chkpId, SArray* list
...
@@ -276,7 +271,7 @@ int32_t backendManagerGetDelta(SBackendManager* bm, int64_t chkpId, SArray* list
return
0
;
return
0
;
}
}
int32_t
b
ackendManager
DumpTo
(
SBackendManager
*
bm
,
char
*
dname
)
{
int32_t
b
kdMgt
DumpTo
(
SBackendManager
*
bm
,
char
*
dname
)
{
int32_t
code
=
0
;
int32_t
code
=
0
;
int32_t
len
=
bm
->
len
+
128
;
int32_t
len
=
bm
->
len
+
128
;
...
@@ -340,7 +335,7 @@ int32_t backendManagerDumpTo(SBackendManager* bm, char* dname) {
...
@@ -340,7 +335,7 @@ int32_t backendManagerDumpTo(SBackendManager* bm, char* dname) {
sprintf
(
dstBuf
,
"%s%s%s"
,
dstDir
,
TD_DIRSEP
,
bm
->
pManifest
);
sprintf
(
dstBuf
,
"%s%s%s"
,
dstDir
,
TD_DIRSEP
,
bm
->
pManifest
);
taosCopyFile
(
srcBuf
,
dstBuf
);
taosCopyFile
(
srcBuf
,
dstBuf
);
// clear delta data
// clear delta data
buf
taosArrayClearP
(
bm
->
pAdd
,
taosMemoryFree
);
taosArrayClearP
(
bm
->
pAdd
,
taosMemoryFree
);
taosArrayClearP
(
bm
->
pDel
,
taosMemoryFree
);
taosArrayClearP
(
bm
->
pDel
,
taosMemoryFree
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录