Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
1ec6fa12
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看板
提交
1ec6fa12
编写于
4月 21, 2022
作者:
C
Cary Xu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add release method for rsma
上级
56ea47e7
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
32 addition
and
16 deletion
+32
-16
source/dnode/vnode/src/tsdb/tsdbMain.c
source/dnode/vnode/src/tsdb/tsdbMain.c
+2
-2
source/dnode/vnode/src/tsdb/tsdbSma.c
source/dnode/vnode/src/tsdb/tsdbSma.c
+30
-14
未找到文件。
source/dnode/vnode/src/tsdb/tsdbMain.c
浏览文件 @
1ec6fa12
...
...
@@ -81,8 +81,8 @@ static STsdb *tsdbNew(const char *path, SVnode *pVnode, const STsdbCfg *pTsdbCfg
static
void
tsdbFree
(
STsdb
*
pTsdb
)
{
if
(
pTsdb
)
{
//
tsdbFreeSmaEnv(REPO_TSMA_ENV(pTsdb));
//
tsdbFreeSmaEnv(REPO_RSMA_ENV(pTsdb));
tsdbFreeSmaEnv
(
REPO_TSMA_ENV
(
pTsdb
));
tsdbFreeSmaEnv
(
REPO_RSMA_ENV
(
pTsdb
));
tsdbFreeFS
(
pTsdb
->
fs
);
taosMemoryFreeClear
(
pTsdb
->
path
);
taosMemoryFree
(
pTsdb
);
...
...
source/dnode/vnode/src/tsdb/tsdbSma.c
浏览文件 @
1ec6fa12
...
...
@@ -48,6 +48,7 @@ typedef struct SPoolMem {
struct
SSmaEnv
{
TdThreadRwlock
lock
;
int8_t
type
;
TXN
txn
;
SPoolMem
*
pPool
;
SDiskID
did
;
...
...
@@ -57,6 +58,7 @@ struct SSmaEnv {
};
#define SMA_ENV_LOCK(env) ((env)->lock)
#define SMA_ENV_TYPE(env) ((env)->type)
#define SMA_ENV_DID(env) ((env)->did)
#define SMA_ENV_ENV(env) ((env)->dbEnv)
#define SMA_ENV_PATH(env) ((env)->path)
...
...
@@ -141,7 +143,7 @@ static int32_t tsdbSetExpiredWindow(STsdb *pTsdb, SHashObj *pItemsHash, int64_t
int64_t
version
);
static
int32_t
tsdbInitSmaStat
(
SSmaStat
**
pSmaStat
,
int8_t
smaType
);
static
void
*
tsdbFreeSmaStatItem
(
SSmaStatItem
*
pSmaStatItem
);
static
int32_t
tsdbDestroySmaState
(
SSmaStat
*
pSmaStat
);
static
int32_t
tsdbDestroySmaState
(
SSmaStat
*
pSmaStat
,
int8_t
smaType
);
static
SSmaEnv
*
tsdbNewSmaEnv
(
const
STsdb
*
pTsdb
,
int8_t
smaType
,
const
char
*
path
,
SDiskID
did
);
static
int32_t
tsdbInitSmaEnv
(
STsdb
*
pTsdb
,
int8_t
smaType
,
const
char
*
path
,
SDiskID
did
,
SSmaEnv
**
pEnv
);
static
int32_t
tsdbResetExpiredWindow
(
STsdb
*
pTsdb
,
SSmaStat
*
pStat
,
int64_t
indexUid
,
TSKEY
skey
);
...
...
@@ -357,6 +359,8 @@ static SSmaEnv *tsdbNewSmaEnv(const STsdb *pTsdb, int8_t smaType, const char *pa
return
NULL
;
}
SMA_ENV_TYPE
(
pEnv
)
=
smaType
;
int
code
=
taosThreadRwlockInit
(
&
(
pEnv
->
lock
),
NULL
);
if
(
code
)
{
terrno
=
TAOS_SYSTEM_ERROR
(
code
);
...
...
@@ -365,15 +369,15 @@ static SSmaEnv *tsdbNewSmaEnv(const STsdb *pTsdb, int8_t smaType, const char *pa
}
ASSERT
(
path
&&
(
strlen
(
path
)
>
0
));
pEnv
->
path
=
strdup
(
path
);
if
(
pEnv
->
path
==
NULL
)
{
SMA_ENV_PATH
(
pEnv
)
=
strdup
(
path
);
if
(
SMA_ENV_PATH
(
pEnv
)
==
NULL
)
{
tsdbFreeSmaEnv
(
pEnv
);
return
NULL
;
}
pEnv
->
did
=
did
;
SMA_ENV_DID
(
pEnv
)
=
did
;
if
(
tsdbInitSmaStat
(
&
pEnv
->
pStat
,
smaType
)
!=
TSDB_CODE_SUCCESS
)
{
if
(
tsdbInitSmaStat
(
&
SMA_ENV_STAT
(
pEnv
)
,
smaType
)
!=
TSDB_CODE_SUCCESS
)
{
tsdbFreeSmaEnv
(
pEnv
);
return
NULL
;
}
...
...
@@ -416,7 +420,7 @@ static int32_t tsdbInitSmaEnv(STsdb *pTsdb, int8_t smaType, const char *path, SD
*/
void
tsdbDestroySmaEnv
(
SSmaEnv
*
pSmaEnv
)
{
if
(
pSmaEnv
)
{
tsdbDestroySmaState
(
pSmaEnv
->
pStat
);
tsdbDestroySmaState
(
pSmaEnv
->
pStat
,
SMA_ENV_TYPE
(
pSmaEnv
)
);
taosMemoryFreeClear
(
pSmaEnv
->
pStat
);
taosMemoryFreeClear
(
pSmaEnv
->
path
);
taosThreadRwlockDestroy
(
&
(
pSmaEnv
->
lock
));
...
...
@@ -520,16 +524,28 @@ static void *tsdbFreeSmaStatItem(SSmaStatItem *pSmaStatItem) {
* @param pSmaStat
* @return int32_t
*/
int32_t
tsdbDestroySmaState
(
SSmaStat
*
pSmaStat
)
{
int32_t
tsdbDestroySmaState
(
SSmaStat
*
pSmaStat
,
int8_t
smaType
)
{
if
(
pSmaStat
)
{
// TODO: use taosHashSetFreeFp when taosHashSetFreeFp is ready.
void
*
item
=
taosHashIterate
(
pSmaStat
->
smaStatItems
,
NULL
);
while
(
item
!=
NULL
)
{
SSmaStatItem
*
pItem
=
*
(
SSmaStatItem
**
)
item
;
tsdbFreeSmaStatItem
(
pItem
);
item
=
taosHashIterate
(
pSmaStat
->
smaStatItems
,
item
);
if
(
smaType
==
TSDB_SMA_TYPE_TIME_RANGE
)
{
void
*
item
=
taosHashIterate
(
SSMA_STAT_ITEMS
(
pSmaStat
),
NULL
);
while
(
item
!=
NULL
)
{
SSmaStatItem
*
pItem
=
*
(
SSmaStatItem
**
)
item
;
tsdbFreeSmaStatItem
(
pItem
);
item
=
taosHashIterate
(
SSMA_STAT_ITEMS
(
pSmaStat
),
item
);
}
taosHashCleanup
(
SSMA_STAT_ITEMS
(
pSmaStat
));
}
else
if
(
smaType
==
TSDB_SMA_TYPE_ROLLUP
)
{
void
*
infoHash
=
taosHashIterate
(
SSMA_STAT_INFO_HASH
(
pSmaStat
),
NULL
);
while
(
infoHash
!=
NULL
)
{
SRSmaInfo
*
pInfoHash
=
*
(
SRSmaInfo
**
)
infoHash
;
tsdbFreeRSmaInfo
(
pInfoHash
);
infoHash
=
taosHashIterate
(
SSMA_STAT_INFO_HASH
(
pSmaStat
),
infoHash
);
}
taosHashCleanup
(
SSMA_STAT_INFO_HASH
(
pSmaStat
));
}
else
{
ASSERT
(
0
);
}
taosHashCleanup
(
pSmaStat
->
smaStatItems
);
}
return
TSDB_CODE_SUCCESS
;
}
...
...
@@ -1744,7 +1760,7 @@ int32_t tsdbRegisterRSma(STsdb *pTsdb, SMeta *pMeta, SVCreateTbReq *pReq) {
}
}
if
(
taosHashPut
(
pStat
->
rsmaInfoHash
,
&
pReq
->
stbCfg
.
suid
,
sizeof
(
tb_uid_t
),
&
pRSmaInfo
,
sizeof
(
pRSmaInfo
))
!=
0
)
{
if
(
taosHashPut
(
SSMA_STAT_INFO_HASH
(
pStat
)
,
&
pReq
->
stbCfg
.
suid
,
sizeof
(
tb_uid_t
),
&
pRSmaInfo
,
sizeof
(
pRSmaInfo
))
!=
0
)
{
return
TSDB_CODE_FAILED
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录