Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
6b6e2370
TDengine
项目概览
taosdata
/
TDengine
大约 2 年 前同步成功
通知
1192
Star
22018
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
6b6e2370
编写于
6月 28, 2023
作者:
dengyihao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add checkpoint
上级
871f6656
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
30 addition
and
15 deletion
+30
-15
include/libs/stream/streamSnapshot.h
include/libs/stream/streamSnapshot.h
+2
-2
source/dnode/vnode/src/inc/vnodeInt.h
source/dnode/vnode/src/inc/vnodeInt.h
+1
-0
source/dnode/vnode/src/tq/tqStreamStateSnap.c
source/dnode/vnode/src/tq/tqStreamStateSnap.c
+7
-2
source/dnode/vnode/src/tq/tqStreamTaskSnap.c
source/dnode/vnode/src/tq/tqStreamTaskSnap.c
+5
-1
source/dnode/vnode/src/vnd/vnodeSnapshot.c
source/dnode/vnode/src/vnd/vnodeSnapshot.c
+2
-0
source/dnode/vnode/src/vnd/vnodeSync.c
source/dnode/vnode/src/vnd/vnodeSync.c
+7
-5
source/libs/stream/src/streamSnapshot.c
source/libs/stream/src/streamSnapshot.c
+6
-5
未找到文件。
include/libs/stream/streamSnapshot.h
浏览文件 @
6b6e2370
...
@@ -22,12 +22,12 @@ typedef struct SStreamSnapWriter SStreamSnapWriter;
...
@@ -22,12 +22,12 @@ typedef struct SStreamSnapWriter SStreamSnapWriter;
typedef
struct
SStreamSnapHandle
SStreamSnapHandle
;
typedef
struct
SStreamSnapHandle
SStreamSnapHandle
;
typedef
struct
SStreamSnapBlockHdr
SStreamSnapBlockHdr
;
typedef
struct
SStreamSnapBlockHdr
SStreamSnapBlockHdr
;
int32_t
streamSnapReaderOpen
(
void
*
pMeta
,
int64_t
sver
,
int64_t
ever
,
SStreamSnapReader
**
ppReader
);
int32_t
streamSnapReaderOpen
(
void
*
pMeta
,
int64_t
sver
,
int64_t
ever
,
char
*
path
,
SStreamSnapReader
**
ppReader
);
int32_t
streamSnapReaderClose
(
SStreamSnapReader
*
pReader
);
int32_t
streamSnapReaderClose
(
SStreamSnapReader
*
pReader
);
int32_t
streamSnapRead
(
SStreamSnapReader
*
pReader
,
uint8_t
**
ppData
,
int64_t
*
size
);
int32_t
streamSnapRead
(
SStreamSnapReader
*
pReader
,
uint8_t
**
ppData
,
int64_t
*
size
);
// SMetaSnapWriter ========================================
// SMetaSnapWriter ========================================
int32_t
streamSnapWriterOpen
(
void
*
pMeta
,
int64_t
sver
,
int64_t
ever
,
SStreamSnapWriter
**
ppWriter
);
int32_t
streamSnapWriterOpen
(
void
*
pMeta
,
int64_t
sver
,
int64_t
ever
,
char
*
path
,
SStreamSnapWriter
**
ppWriter
);
int32_t
streamSnapWrite
(
SStreamSnapWriter
*
pWriter
,
uint8_t
*
pData
,
uint32_t
nData
);
int32_t
streamSnapWrite
(
SStreamSnapWriter
*
pWriter
,
uint8_t
*
pData
,
uint32_t
nData
);
int32_t
streamSnapWriterClose
(
SStreamSnapWriter
*
ppWriter
,
int8_t
rollback
);
int32_t
streamSnapWriterClose
(
SStreamSnapWriter
*
ppWriter
,
int8_t
rollback
);
...
...
source/dnode/vnode/src/inc/vnodeInt.h
浏览文件 @
6b6e2370
...
@@ -89,6 +89,7 @@ typedef struct SQueryNode SQueryNode;
...
@@ -89,6 +89,7 @@ typedef struct SQueryNode SQueryNode;
#define VNODE_RSMA0_DIR "tsdb"
#define VNODE_RSMA0_DIR "tsdb"
#define VNODE_RSMA1_DIR "rsma1"
#define VNODE_RSMA1_DIR "rsma1"
#define VNODE_RSMA2_DIR "rsma2"
#define VNODE_RSMA2_DIR "rsma2"
#define VNODE_TQ_STREAM "stream"
#define VNODE_BUFPOOL_SEGMENTS 3
#define VNODE_BUFPOOL_SEGMENTS 3
...
...
source/dnode/vnode/src/tq/tqStreamStateSnap.c
浏览文件 @
6b6e2370
...
@@ -32,6 +32,8 @@ int32_t streamStateSnapReaderOpen(STQ* pTq, int64_t sver, int64_t ever, SStreamS
...
@@ -32,6 +32,8 @@ int32_t streamStateSnapReaderOpen(STQ* pTq, int64_t sver, int64_t ever, SStreamS
int32_t
code
=
0
;
int32_t
code
=
0
;
SStreamStateReader
*
pReader
=
NULL
;
SStreamStateReader
*
pReader
=
NULL
;
char
tdir
[
TSDB_FILENAME_LEN
*
2
]
=
{
0
};
// alloc
// alloc
pReader
=
(
SStreamStateReader
*
)
taosMemoryCalloc
(
1
,
sizeof
(
SStreamStateReader
));
pReader
=
(
SStreamStateReader
*
)
taosMemoryCalloc
(
1
,
sizeof
(
SStreamStateReader
));
if
(
pReader
==
NULL
)
{
if
(
pReader
==
NULL
)
{
...
@@ -43,7 +45,8 @@ int32_t streamStateSnapReaderOpen(STQ* pTq, int64_t sver, int64_t ever, SStreamS
...
@@ -43,7 +45,8 @@ int32_t streamStateSnapReaderOpen(STQ* pTq, int64_t sver, int64_t ever, SStreamS
pReader
->
ever
=
ever
;
pReader
->
ever
=
ever
;
SStreamSnapReader
*
pSnapReader
=
NULL
;
SStreamSnapReader
*
pSnapReader
=
NULL
;
streamSnapReaderOpen
(
pTq
,
sver
,
ever
,
&
pSnapReader
);
sprintf
(
tdir
,
"%s%s%s"
,
pTq
->
path
,
TD_DIRSEP
,
VNODE_TQ_STREAM
);
streamSnapReaderOpen
(
pTq
,
sver
,
ever
,
tdir
,
&
pSnapReader
);
pReader
->
pReaderImpl
=
pSnapReader
;
pReader
->
pReaderImpl
=
pSnapReader
;
...
@@ -104,6 +107,7 @@ int32_t streamStateSnapWriterOpen(STQ* pTq, int64_t sver, int64_t ever, SStreamS
...
@@ -104,6 +107,7 @@ int32_t streamStateSnapWriterOpen(STQ* pTq, int64_t sver, int64_t ever, SStreamS
int32_t
code
=
0
;
int32_t
code
=
0
;
SStreamStateWriter
*
pWriter
;
SStreamStateWriter
*
pWriter
;
char
tdir
[
TSDB_FILENAME_LEN
*
2
]
=
{
0
};
// alloc
// alloc
pWriter
=
(
SStreamStateWriter
*
)
taosMemoryCalloc
(
1
,
sizeof
(
*
pWriter
));
pWriter
=
(
SStreamStateWriter
*
)
taosMemoryCalloc
(
1
,
sizeof
(
*
pWriter
));
if
(
pWriter
==
NULL
)
{
if
(
pWriter
==
NULL
)
{
...
@@ -114,8 +118,9 @@ int32_t streamStateSnapWriterOpen(STQ* pTq, int64_t sver, int64_t ever, SStreamS
...
@@ -114,8 +118,9 @@ int32_t streamStateSnapWriterOpen(STQ* pTq, int64_t sver, int64_t ever, SStreamS
pWriter
->
sver
=
sver
;
pWriter
->
sver
=
sver
;
pWriter
->
ever
=
ever
;
pWriter
->
ever
=
ever
;
sprintf
(
tdir
,
"%s%s%s"
,
pTq
->
path
,
TD_DIRSEP
,
VNODE_TQ_STREAM
);
SStreamSnapWriter
*
pSnapWriter
=
NULL
;
SStreamSnapWriter
*
pSnapWriter
=
NULL
;
streamSnapWriterOpen
(
pTq
,
sver
,
ever
,
&
pSnapWriter
);
streamSnapWriterOpen
(
pTq
,
sver
,
ever
,
tdir
,
&
pSnapWriter
);
pWriter
->
pWriterImpl
=
pSnapWriter
;
pWriter
->
pWriterImpl
=
pSnapWriter
;
...
...
source/dnode/vnode/src/tq/tqStreamTaskSnap.c
浏览文件 @
6b6e2370
...
@@ -102,6 +102,7 @@ int32_t streamTaskSnapRead(SStreamTaskReader* pReader, uint8_t** ppData) {
...
@@ -102,6 +102,7 @@ int32_t streamTaskSnapRead(SStreamTaskReader* pReader, uint8_t** ppData) {
STablePair
*
pPair
=
taosArrayGet
(
pReader
->
tdbTbList
,
pReader
->
pos
);
STablePair
*
pPair
=
taosArrayGet
(
pReader
->
tdbTbList
,
pReader
->
pos
);
NextTbl:
NextTbl:
except
=
0
;
for
(;;)
{
for
(;;)
{
if
(
tdbTbcGet
(
pReader
->
pCur
,
&
pKey
,
&
kLen
,
&
pVal
,
&
vLen
))
{
if
(
tdbTbcGet
(
pReader
->
pCur
,
&
pKey
,
&
kLen
,
&
pVal
,
&
vLen
))
{
except
=
1
;
except
=
1
;
...
@@ -123,7 +124,10 @@ NextTbl:
...
@@ -123,7 +124,10 @@ NextTbl:
goto
NextTbl
;
goto
NextTbl
;
}
}
}
}
if
(
pVal
==
NULL
||
vLen
==
0
)
{
*
ppData
=
NULL
;
return
code
;
}
*
ppData
=
taosMemoryMalloc
(
sizeof
(
SSnapDataHdr
)
+
vLen
);
*
ppData
=
taosMemoryMalloc
(
sizeof
(
SSnapDataHdr
)
+
vLen
);
if
(
*
ppData
==
NULL
)
{
if
(
*
ppData
==
NULL
)
{
code
=
TSDB_CODE_OUT_OF_MEMORY
;
code
=
TSDB_CODE_OUT_OF_MEMORY
;
...
...
source/dnode/vnode/src/vnd/vnodeSnapshot.c
浏览文件 @
6b6e2370
...
@@ -235,6 +235,7 @@ int32_t vnodeSnapRead(SVSnapReader *pReader, uint8_t **ppData, uint32_t *nData)
...
@@ -235,6 +235,7 @@ int32_t vnodeSnapRead(SVSnapReader *pReader, uint8_t **ppData, uint32_t *nData)
pReader
->
streamTaskDone
=
1
;
pReader
->
streamTaskDone
=
1
;
code
=
streamTaskSnapReaderClose
(
pReader
->
pStreamTaskReader
);
code
=
streamTaskSnapReaderClose
(
pReader
->
pStreamTaskReader
);
if
(
code
)
goto
_err
;
if
(
code
)
goto
_err
;
pReader
->
pStreamTaskReader
=
NULL
;
}
}
}
}
}
}
...
@@ -254,6 +255,7 @@ int32_t vnodeSnapRead(SVSnapReader *pReader, uint8_t **ppData, uint32_t *nData)
...
@@ -254,6 +255,7 @@ int32_t vnodeSnapRead(SVSnapReader *pReader, uint8_t **ppData, uint32_t *nData)
pReader
->
streamStateDone
=
1
;
pReader
->
streamStateDone
=
1
;
code
=
streamStateSnapReaderClose
(
pReader
->
pStreamStateReader
);
code
=
streamStateSnapReaderClose
(
pReader
->
pStreamStateReader
);
if
(
code
)
goto
_err
;
if
(
code
)
goto
_err
;
pReader
->
pStreamStateReader
=
NULL
;
}
}
}
}
}
}
...
...
source/dnode/vnode/src/vnd/vnodeSync.c
浏览文件 @
6b6e2370
...
@@ -216,7 +216,8 @@ void vnodeProposeWriteMsg(SQueueInfo *pInfo, STaosQall *qall, int32_t numOfMsgs)
...
@@ -216,7 +216,8 @@ void vnodeProposeWriteMsg(SQueueInfo *pInfo, STaosQall *qall, int32_t numOfMsgs)
isWeak
,
isBlock
,
msg
,
numOfMsgs
,
arrayPos
,
pMsg
->
info
.
handle
);
isWeak
,
isBlock
,
msg
,
numOfMsgs
,
arrayPos
,
pMsg
->
info
.
handle
);
if
(
!
pVnode
->
restored
)
{
if
(
!
pVnode
->
restored
)
{
vGError
(
"vgId:%d, msg:%p failed to process since restore not finished, type:%s"
,
vgId
,
pMsg
,
TMSG_INFO
(
pMsg
->
msgType
));
vGError
(
"vgId:%d, msg:%p failed to process since restore not finished, type:%s"
,
vgId
,
pMsg
,
TMSG_INFO
(
pMsg
->
msgType
));
terrno
=
TSDB_CODE_SYN_RESTORING
;
terrno
=
TSDB_CODE_SYN_RESTORING
;
vnodeHandleProposeError
(
pVnode
,
pMsg
,
TSDB_CODE_SYN_RESTORING
);
vnodeHandleProposeError
(
pVnode
,
pMsg
,
TSDB_CODE_SYN_RESTORING
);
rpcFreeCont
(
pMsg
->
pCont
);
rpcFreeCont
(
pMsg
->
pCont
);
...
@@ -279,7 +280,8 @@ void vnodeProposeWriteMsg(SQueueInfo *pInfo, STaosQall *qall, int32_t numOfMsgs)
...
@@ -279,7 +280,8 @@ void vnodeProposeWriteMsg(SQueueInfo *pInfo, STaosQall *qall, int32_t numOfMsgs)
vnodeIsMsgBlock
(
pMsg
->
msgType
),
msg
,
numOfMsgs
,
pMsg
->
info
.
handle
);
vnodeIsMsgBlock
(
pMsg
->
msgType
),
msg
,
numOfMsgs
,
pMsg
->
info
.
handle
);
if
(
!
pVnode
->
restored
)
{
if
(
!
pVnode
->
restored
)
{
vGError
(
"vgId:%d, msg:%p failed to process since restore not finished, type:%s"
,
vgId
,
pMsg
,
TMSG_INFO
(
pMsg
->
msgType
));
vGError
(
"vgId:%d, msg:%p failed to process since restore not finished, type:%s"
,
vgId
,
pMsg
,
TMSG_INFO
(
pMsg
->
msgType
));
vnodeHandleProposeError
(
pVnode
,
pMsg
,
TSDB_CODE_SYN_RESTORING
);
vnodeHandleProposeError
(
pVnode
,
pMsg
,
TSDB_CODE_SYN_RESTORING
);
rpcFreeCont
(
pMsg
->
pCont
);
rpcFreeCont
(
pMsg
->
pCont
);
taosFreeQitem
(
pMsg
);
taosFreeQitem
(
pMsg
);
...
@@ -526,7 +528,7 @@ static int32_t vnodeSnapshotDoWrite(const SSyncFSM *pFsm, void *pWriter, void *p
...
@@ -526,7 +528,7 @@ static int32_t vnodeSnapshotDoWrite(const SSyncFSM *pFsm, void *pWriter, void *p
}
}
static
void
vnodeRestoreFinish
(
const
SSyncFSM
*
pFsm
,
const
SyncIndex
commitIdx
)
{
static
void
vnodeRestoreFinish
(
const
SSyncFSM
*
pFsm
,
const
SyncIndex
commitIdx
)
{
SVnode
*
pVnode
=
pFsm
->
data
;
SVnode
*
pVnode
=
pFsm
->
data
;
SyncIndex
appliedIdx
=
-
1
;
SyncIndex
appliedIdx
=
-
1
;
do
{
do
{
...
@@ -660,8 +662,8 @@ int32_t vnodeSyncOpen(SVnode *pVnode, char *path) {
...
@@ -660,8 +662,8 @@ int32_t vnodeSyncOpen(SVnode *pVnode, char *path) {
vInfo
(
"vgId:%d, start to open sync, replica:%d selfIndex:%d"
,
pVnode
->
config
.
vgId
,
pCfg
->
replicaNum
,
pCfg
->
myIndex
);
vInfo
(
"vgId:%d, start to open sync, replica:%d selfIndex:%d"
,
pVnode
->
config
.
vgId
,
pCfg
->
replicaNum
,
pCfg
->
myIndex
);
for
(
int32_t
i
=
0
;
i
<
pCfg
->
totalReplicaNum
;
++
i
)
{
for
(
int32_t
i
=
0
;
i
<
pCfg
->
totalReplicaNum
;
++
i
)
{
SNodeInfo
*
pNode
=
&
pCfg
->
nodeInfo
[
i
];
SNodeInfo
*
pNode
=
&
pCfg
->
nodeInfo
[
i
];
vInfo
(
"vgId:%d, index:%d ep:%s:%u dnode:%d cluster:%"
PRId64
,
pVnode
->
config
.
vgId
,
i
,
pNode
->
nodeFqdn
,
pNode
->
nodePort
,
vInfo
(
"vgId:%d, index:%d ep:%s:%u dnode:%d cluster:%"
PRId64
,
pVnode
->
config
.
vgId
,
i
,
pNode
->
nodeFqdn
,
pNode
->
nodeId
,
pNode
->
clusterId
);
pNode
->
node
Port
,
pNode
->
node
Id
,
pNode
->
clusterId
);
}
}
pVnode
->
sync
=
syncOpen
(
&
syncInfo
);
pVnode
->
sync
=
syncOpen
(
&
syncInfo
);
...
...
source/libs/stream/src/streamSnapshot.c
浏览文件 @
6b6e2370
...
@@ -205,13 +205,13 @@ void streamSnapHandleDestroy(SStreamSnapHandle* handle) {
...
@@ -205,13 +205,13 @@ void streamSnapHandleDestroy(SStreamSnapHandle* handle) {
return
;
return
;
}
}
int32_t
streamSnapReaderOpen
(
void
*
pMeta
,
int64_t
sver
,
int64_t
ever
,
SStreamSnapReader
**
ppReader
)
{
int32_t
streamSnapReaderOpen
(
void
*
pMeta
,
int64_t
sver
,
int64_t
ever
,
char
*
path
,
SStreamSnapReader
**
ppReader
)
{
// impl later
// impl later
SStreamSnapReader
*
pReader
=
taosMemoryCalloc
(
1
,
sizeof
(
SStreamSnapReader
));
SStreamSnapReader
*
pReader
=
taosMemoryCalloc
(
1
,
sizeof
(
SStreamSnapReader
));
if
(
pReader
==
NULL
)
{
if
(
pReader
==
NULL
)
{
return
TSDB_CODE_OUT_OF_MEMORY
;
return
TSDB_CODE_OUT_OF_MEMORY
;
}
}
const
char
*
path
=
NULL
;
//
const char* path = NULL;
if
(
streamSnapHandleInit
(
&
pReader
->
handle
,
(
char
*
)
path
)
<
0
)
{
if
(
streamSnapHandleInit
(
&
pReader
->
handle
,
(
char
*
)
path
)
<
0
)
{
return
-
1
;
return
-
1
;
}
}
...
@@ -243,7 +243,7 @@ int32_t streamSnapRead(SStreamSnapReader* pReader, uint8_t** ppData, int64_t* si
...
@@ -243,7 +243,7 @@ int32_t streamSnapRead(SStreamSnapReader* pReader, uint8_t** ppData, int64_t* si
return
code
;
return
code
;
// handle later
// handle later
return
-
1
;
return
-
1
;
}
else
if
(
nread
<=
kBlockSize
)
{
}
else
if
(
nread
>
0
&&
nread
<=
kBlockSize
)
{
// left bytes less than kBlockSize
// left bytes less than kBlockSize
pHandle
->
offset
+=
nread
;
pHandle
->
offset
+=
nread
;
if
(
pHandle
->
offset
>=
item
->
size
||
nread
<
kBlockSize
)
{
if
(
pHandle
->
offset
>=
item
->
size
||
nread
<
kBlockSize
)
{
...
@@ -254,6 +254,8 @@ int32_t streamSnapRead(SStreamSnapReader* pReader, uint8_t** ppData, int64_t* si
...
@@ -254,6 +254,8 @@ int32_t streamSnapRead(SStreamSnapReader* pReader, uint8_t** ppData, int64_t* si
}
else
{
}
else
{
if
(
pHandle
->
currFileIdx
>=
taosArrayGetSize
(
pHandle
->
pFileList
))
{
if
(
pHandle
->
currFileIdx
>=
taosArrayGetSize
(
pHandle
->
pFileList
))
{
// finish
// finish
*
ppData
=
NULL
;
*
size
=
0
;
return
0
;
return
0
;
}
}
item
=
taosArrayGet
(
pHandle
->
pFileList
,
pHandle
->
currFileIdx
);
item
=
taosArrayGet
(
pHandle
->
pFileList
,
pHandle
->
currFileIdx
);
...
@@ -278,7 +280,7 @@ int32_t streamSnapRead(SStreamSnapReader* pReader, uint8_t** ppData, int64_t* si
...
@@ -278,7 +280,7 @@ int32_t streamSnapRead(SStreamSnapReader* pReader, uint8_t** ppData, int64_t* si
return
0
;
return
0
;
}
}
// SMetaSnapWriter ========================================
// SMetaSnapWriter ========================================
int32_t
streamSnapWriterOpen
(
void
*
pMeta
,
int64_t
sver
,
int64_t
ever
,
SStreamSnapWriter
**
ppWriter
)
{
int32_t
streamSnapWriterOpen
(
void
*
pMeta
,
int64_t
sver
,
int64_t
ever
,
char
*
path
,
SStreamSnapWriter
**
ppWriter
)
{
// impl later
// impl later
SStreamSnapWriter
*
pWriter
=
taosMemoryCalloc
(
1
,
sizeof
(
SStreamSnapWriter
));
SStreamSnapWriter
*
pWriter
=
taosMemoryCalloc
(
1
,
sizeof
(
SStreamSnapWriter
));
if
(
pWriter
==
NULL
)
{
if
(
pWriter
==
NULL
)
{
...
@@ -286,7 +288,6 @@ int32_t streamSnapWriterOpen(void* pMeta, int64_t sver, int64_t ever, SStreamSna
...
@@ -286,7 +288,6 @@ int32_t streamSnapWriterOpen(void* pMeta, int64_t sver, int64_t ever, SStreamSna
}
}
SStreamSnapHandle
*
pHandle
=
&
pWriter
->
handle
;
SStreamSnapHandle
*
pHandle
=
&
pWriter
->
handle
;
const
char
*
path
=
NULL
;
SBanckendFile
*
pFile
=
taosMemoryCalloc
(
1
,
sizeof
(
SBanckendFile
));
SBanckendFile
*
pFile
=
taosMemoryCalloc
(
1
,
sizeof
(
SBanckendFile
));
pFile
->
path
=
taosStrdup
(
path
);
pFile
->
path
=
taosStrdup
(
path
);
SArray
*
list
=
taosArrayInit
(
64
,
sizeof
(
SBackendFileItem
));
SArray
*
list
=
taosArrayInit
(
64
,
sizeof
(
SBackendFileItem
));
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录