Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
b683754f
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看板
提交
b683754f
编写于
8月 02, 2022
作者:
H
Haojun Liao
浏览文件
操作
浏览文件
下载
差异文件
Merge branch '3.0' into feature/3.0_query_optimize
上级
258d5030
6707cb88
变更
61
隐藏空白更改
内联
并排
Showing
61 changed file
with
1049 addition
and
334 deletion
+1049
-334
cmake/taostools_CMakeLists.txt.in
cmake/taostools_CMakeLists.txt.in
+1
-1
docs/zh/01-index.md
docs/zh/01-index.md
+1
-1
docs/zh/02-intro.md
docs/zh/02-intro.md
+11
-15
docs/zh/14-reference/04-taosadapter.md
docs/zh/14-reference/04-taosadapter.md
+1
-1
include/common/tgrant.h
include/common/tgrant.h
+31
-0
include/libs/sync/sync.h
include/libs/sync/sync.h
+4
-4
include/libs/wal/wal.h
include/libs/wal/wal.h
+1
-0
include/util/taoserror.h
include/util/taoserror.h
+2
-0
source/client/src/tmq.c
source/client/src/tmq.c
+2
-2
source/common/CMakeLists.txt
source/common/CMakeLists.txt
+13
-3
source/common/src/systable.c
source/common/src/systable.c
+2
-16
source/common/src/tdatablock.c
source/common/src/tdatablock.c
+13
-0
source/common/src/tglobal.c
source/common/src/tglobal.c
+6
-1
source/dnode/mgmt/mgmt_dnode/CMakeLists.txt
source/dnode/mgmt/mgmt_dnode/CMakeLists.txt
+4
-0
source/dnode/mgmt/mgmt_dnode/src/dmHandle.c
source/dnode/mgmt/mgmt_dnode/src/dmHandle.c
+2
-0
source/dnode/vnode/CMakeLists.txt
source/dnode/vnode/CMakeLists.txt
+2
-0
source/dnode/vnode/inc/vnode.h
source/dnode/vnode/inc/vnode.h
+34
-19
source/dnode/vnode/src/inc/meta.h
source/dnode/vnode/src/inc/meta.h
+2
-1
source/dnode/vnode/src/inc/tq.h
source/dnode/vnode/src/inc/tq.h
+9
-1
source/dnode/vnode/src/inc/vnodeInt.h
source/dnode/vnode/src/inc/vnodeInt.h
+48
-16
source/dnode/vnode/src/meta/metaOpen.c
source/dnode/vnode/src/meta/metaOpen.c
+3
-3
source/dnode/vnode/src/meta/metaQuery.c
source/dnode/vnode/src/meta/metaQuery.c
+12
-4
source/dnode/vnode/src/meta/metaSnapshot.c
source/dnode/vnode/src/meta/metaSnapshot.c
+7
-7
source/dnode/vnode/src/meta/metaStream.c
source/dnode/vnode/src/meta/metaStream.c
+16
-0
source/dnode/vnode/src/meta/metaTable.c
source/dnode/vnode/src/meta/metaTable.c
+12
-0
source/dnode/vnode/src/sma/smaEnv.c
source/dnode/vnode/src/sma/smaEnv.c
+1
-1
source/dnode/vnode/src/sma/smaSnapshot.c
source/dnode/vnode/src/sma/smaSnapshot.c
+19
-19
source/dnode/vnode/src/tq/tq.c
source/dnode/vnode/src/tq/tq.c
+3
-2
source/dnode/vnode/src/tq/tqCommit.c
source/dnode/vnode/src/tq/tqCommit.c
+1
-1
source/dnode/vnode/src/tq/tqMeta.c
source/dnode/vnode/src/tq/tqMeta.c
+28
-25
source/dnode/vnode/src/tq/tqOffset.c
source/dnode/vnode/src/tq/tqOffset.c
+29
-25
source/dnode/vnode/src/tq/tqOffsetSnapshot.c
source/dnode/vnode/src/tq/tqOffsetSnapshot.c
+155
-0
source/dnode/vnode/src/tq/tqPush.c
source/dnode/vnode/src/tq/tqPush.c
+1
-1
source/dnode/vnode/src/tq/tqSnapshot.c
source/dnode/vnode/src/tq/tqSnapshot.c
+209
-0
source/dnode/vnode/src/tsdb/tsdbCommit.c
source/dnode/vnode/src/tsdb/tsdbCommit.c
+21
-21
source/dnode/vnode/src/tsdb/tsdbFS.c
source/dnode/vnode/src/tsdb/tsdbFS.c
+8
-8
source/dnode/vnode/src/tsdb/tsdbFile.c
source/dnode/vnode/src/tsdb/tsdbFile.c
+1
-1
source/dnode/vnode/src/tsdb/tsdbMemTable.c
source/dnode/vnode/src/tsdb/tsdbMemTable.c
+1
-1
source/dnode/vnode/src/tsdb/tsdbRead.c
source/dnode/vnode/src/tsdb/tsdbRead.c
+2
-2
source/dnode/vnode/src/tsdb/tsdbReaderWriter.c
source/dnode/vnode/src/tsdb/tsdbReaderWriter.c
+24
-24
source/dnode/vnode/src/tsdb/tsdbRetention.c
source/dnode/vnode/src/tsdb/tsdbRetention.c
+1
-1
source/dnode/vnode/src/tsdb/tsdbSnapshot.c
source/dnode/vnode/src/tsdb/tsdbSnapshot.c
+30
-30
source/dnode/vnode/src/vnd/vnodeCfg.c
source/dnode/vnode/src/vnd/vnodeCfg.c
+15
-0
source/dnode/vnode/src/vnd/vnodeQuery.c
source/dnode/vnode/src/vnd/vnodeQuery.c
+106
-27
source/dnode/vnode/src/vnd/vnodeSnapshot.c
source/dnode/vnode/src/vnd/vnodeSnapshot.c
+84
-13
source/dnode/vnode/src/vnd/vnodeSync.c
source/dnode/vnode/src/vnd/vnodeSync.c
+28
-7
source/libs/command/src/command.c
source/libs/command/src/command.c
+2
-1
source/libs/sync/src/syncIndexMgr.c
source/libs/sync/src/syncIndexMgr.c
+2
-2
source/libs/sync/src/syncMain.c
source/libs/sync/src/syncMain.c
+4
-4
source/libs/sync/src/syncRaftEntry.c
source/libs/sync/src/syncRaftEntry.c
+4
-4
source/libs/sync/src/syncRaftLog.c
source/libs/sync/src/syncRaftLog.c
+4
-4
source/libs/sync/src/syncReplication.c
source/libs/sync/src/syncReplication.c
+2
-2
source/libs/transport/src/transCli.c
source/libs/transport/src/transCli.c
+1
-2
source/libs/transport/src/transSvr.c
source/libs/transport/src/transSvr.c
+1
-1
source/libs/wal/src/walRead.c
source/libs/wal/src/walRead.c
+7
-6
source/libs/wal/src/walRef.c
source/libs/wal/src/walRef.c
+5
-0
source/libs/wal/src/walWrite.c
source/libs/wal/src/walWrite.c
+1
-1
source/util/CMakeLists.txt
source/util/CMakeLists.txt
+5
-0
source/util/src/tconfig.c
source/util/src/tconfig.c
+2
-0
tests/system-test/0-others/taosdMonitor.py
tests/system-test/0-others/taosdMonitor.py
+2
-2
tools/shell/src/shellEngine.c
tools/shell/src/shellEngine.c
+1
-1
未找到文件。
cmake/taostools_CMakeLists.txt.in
浏览文件 @
b683754f
...
...
@@ -2,7 +2,7 @@
# taos-tools
ExternalProject_Add(taos-tools
GIT_REPOSITORY https://github.com/taosdata/taos-tools.git
GIT_TAG
f4e456a
GIT_TAG
2a2def1
SOURCE_DIR "${TD_SOURCE_DIR}/tools/taos-tools"
BINARY_DIR ""
#BUILD_IN_SOURCE TRUE
...
...
docs/zh/01-index.md
浏览文件 @
b683754f
...
...
@@ -4,7 +4,7 @@ sidebar_label: 文档首页
slug
:
/
---
TDengine是一款开源、
[
高性能
](
https://www.taosdata.com/fast
)
、云原生的
专为物联网、工业互联网、金融等优化设计的时序数据库(Time-Series Database)
。同时它还带有内建的缓存、流式计算、数据订阅等系统功能,能大幅减少系统设计的复杂度,降低研发和运营成本,是一极简的时序数据处理平台。本文档是 TDengine 用户手册,主要是介绍 TDengine 的基本概念、安装、使用、功能、开发接口、运营维护、TDengine 内核设计等等,它主要是面向架构师、开发者与系统管理员的。
TDengine是一款开源、
[
高性能
](
https://www.taosdata.com/fast
)
、云原生的
时序数据库(Time-Series Database, TSDB), 它专为物联网、工业互联网、金融等场景优化设计
。同时它还带有内建的缓存、流式计算、数据订阅等系统功能,能大幅减少系统设计的复杂度,降低研发和运营成本,是一极简的时序数据处理平台。本文档是 TDengine 用户手册,主要是介绍 TDengine 的基本概念、安装、使用、功能、开发接口、运营维护、TDengine 内核设计等等,它主要是面向架构师、开发者与系统管理员的。
TDengine 充分利用了时序数据的特点,提出了“一个数据采集点一张表”与“超级表”的概念,设计了创新的存储引擎,让数据的写入、查询和存储效率都得到极大的提升。为正确理解并使用TDengine, 无论如何,请您仔细阅读
[
基本概念
](
./concept
)
一章。
...
...
docs/zh/02-intro.md
浏览文件 @
b683754f
...
...
@@ -3,7 +3,7 @@ title: 产品简介
toc_max_heading_level
:
2
---
TDengine 是一款
高性能、分布式、支持 SQL 的时序数据库 (Database),其核心代码,包括集群功能全部开源(开源协议,AGPL v3.0)。TDengine 能被广泛运用于物联网、工业互联网、车联网、IT 运维、金融等领域。除核心的时序数据库 (Database) 功能外,TDengine 还提供
[
缓存
](
/develop/cache/
)
、
[
数据订阅
](
/develop/subscribe
)
、
[
流式计算
](
/develop/continuous-query
)
等大数据平台所需要的系列功能,最大程度减少研发和运维的复杂度
。
TDengine 是一款
开源、高性能、云原生的时序数据库 (Time-Series Database, TSDB)。TDengine 能被广泛运用于物联网、工业互联网、车联网、IT 运维、金融等领域。除核心的时序数据库功能外,TDengine 还提供
[
缓存
](
/develop/cache/
)
、
[
数据订阅
](
/develop/subscribe
)
、
[
流式计算
](
/develop/continuous-query
)
等功能,是一极简的时序数据处理平台,最大程度的减小系统设计的复杂度,降低研发和运营成本
。
本章节介绍TDengine的主要功能、竞争优势、适用场景、与其他数据库的对比测试等等,让大家对TDengine有个整体的了解。
...
...
@@ -16,7 +16,7 @@ TDengine的主要功能如下:
3.
支持
[
各种查询
](
/develop/query-data
)
,包括聚合查询、嵌套查询、降采样查询、插值等
4.
支持
[
用户自定义函数
](
/develop/udf
)
5.
支持
[
缓存
](
/develop/cache
)
,将每张表的最后一条记录缓存起来,这样无需 Redis
6.
支持
[
连续查询
](
/develop/continuous-query
)(
Continuous
Query
)
6.
支持
[
流式计算
](
/develop/continuous-query
)(
Stream
Processing
)
7.
支持
[
数据订阅
](
/develop/subscribe
)
,而且可以指定过滤条件
8.
支持
[
集群
](
/cluster/
)
,可以通过多节点进行水平扩展,并通过多副本实现高可靠
9.
提供
[
命令行程序
](
/reference/taos-shell
)
,便于管理集群,检查系统状态,做即席查询
...
...
@@ -33,28 +33,24 @@ TDengine的主要功能如下:
由于 TDengine 充分利用了
[
时序数据特点
](
https://www.taosdata.com/blog/2019/07/09/105.html
)
,比如结构化、无需事务、很少删除或更新、写多读少等等,设计了全新的针对时序数据的存储引擎和计算引擎,因此与其他时序数据库相比,TDengine 有以下特点:
-
**
[高性能](https://www.taosdata.com/fast)**
:通过创新的存储引擎设计,无论是数据写入还是查询,TDengine 的性能比通用数据库快 10 倍以上,也远超其他时序数据库,而且存储空间也大为节省
。
-
**
高性能**
:通过创新的存储引擎设计,无论是数据写入还是查询,TDengine 的性能比通用数据库快 10 倍以上,也远超其他时序数据库,存储空间不及通用数据库的1/10
。
-
**
[分布式](https://www.taosdata.com/scalable)**
:通过原生分布式的设计,TDengine 提供了水平扩展的能力,只需要增加节点就能获得更强的数据处理能力,同时通过多副本机制保证了系统的高可用
。
-
**
云原生**
:通过原生分布式的设计,充分利用云平台的优势,TDengine 提供了水平扩展能力,具备弹性、韧性和可观测性,支持k8s部署,可运行在公有云、私有云和混合云上
。
-
**
[支持 SQL](https://www.taosdata.com/sql-support)**
:TDengine 采用 SQL 作为数据查询语言,减少学习和迁移成本,同时提供 SQL 扩展来处理时序数据特有的分析,而且支持方便灵活的 schemaless 数据写入
。
-
**
极简时序数据平台**
:TDengine 内建消息队列、缓存、流式计算等功能,应用无需再集成 Kafka/Redis/HBase/Spark 等软件,大幅降低系统的复杂度,降低应用开发和运营成本
。
-
**
All in One**
:将数据库、消息队列、缓存、流式计算等功能融合一起,应用无需再集成 Kafka/Redis/HBase/Spark 等软件,大幅降低应用开发和维护成本
。
-
**
分析能力**
:支持 SQL,同时为时序数据特有的分析提供SQL扩展。通过超级表、存储计算分离、分区分片、预计算、自定义函数等技术,TDengine 具备强大的分析能力
。
-
**
零管理**
:安装、集群几秒搞定,无任何依赖,不用分库分表,系统运行状态监测能与 Grafana 或其他运维工具无缝集成
。
-
**
简单易用**
:无任何依赖,安装、集群几秒搞定;提供REST以及各种语言连接器,与众多第三方工具无缝集成;提供命令行程序,便于管理和即席查询;提供各种运维工具
。
-
**零学习成本**
:采用 SQL 查询语言,支持 C/C++、Python、Java、Go、Rust、Node.js、C#、Lua(社区贡献)、PHP(社区贡献) 等多种编程语言,与 MySQL 相似,零学习成本。
-
**无缝集成**
:不用一行代码,即可与 Telegraf、Grafana、Prometheus、EMQX、HiveMQ、StatsD、collectd、icinga、TCollector、Matlab、R 等第三方工具无缝集成。
-
**互动 Console**
: 通过命令行 console,不用编程,执行 SQL 语句就能做即席查询、各种数据库的操作、管理以及集群的维护.
-
**核心开源**
:TDengine 的核心代码包括集群功能全部开源,截止到2022年8月1日,全球超过 135.9k 个运行实例,GitHub Star 18.7k,Fork 4.4k,社区活跃。
采用 TDengine,可将典型的物联网、车联网、工业互联网大数据平台的总拥有成本大幅降低。表现在几个方面:
1.
由于其超强性能,它能将系统需要的计算资源和存储资源大幅降低
2.
因为
采用 SQL 接口
,能与众多第三方软件无缝集成,学习迁移成本大幅下降
3.
因为
其 All In One 的特性,系统复杂度降低,能降研发成本
4.
因为
运维
维护简单,运营维护成本能大幅降低
2.
因为
支持 SQL
,能与众多第三方软件无缝集成,学习迁移成本大幅下降
3.
因为
是一极简的时序数据平台,系统复杂度、研发和运营成本大幅降低
4.
因为维护简单,运营维护成本能大幅降低
## 技术生态
...
...
docs/zh/14-reference/04-taosadapter.md
浏览文件 @
b683754f
...
...
@@ -151,7 +151,7 @@ AllowWebSockets
关于 CORS 协议细节请参考:
[
https://www.w3.org/wiki/CORS_Enabled
](
https://www.w3.org/wiki/CORS_Enabled
)
或
[
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/CORS
](
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/CORS
)
。
示例配置文件参见
[
example/config/taosadapter.toml
](
.
/example/config/taosadapter.toml
)
。
示例配置文件参见
[
example/config/taosadapter.toml
](
https://github.com/taosdata/taosadapter/blob/3.0
/example/config/taosadapter.toml
)
。
## 功能列表
...
...
include/common/tgrant.h
浏览文件 @
b683754f
...
...
@@ -22,6 +22,9 @@ extern "C" {
#include "os.h"
#include "taoserror.h"
#ifdef GRANTS_CFG
#include "tgrantCfg.h"
#endif
typedef
enum
{
TSDB_GRANT_ALL
,
...
...
@@ -37,10 +40,38 @@ typedef enum {
TSDB_GRANT_CONNS
,
TSDB_GRANT_STREAMS
,
TSDB_GRANT_CPU_CORES
,
TSDB_GRANT_STABLE
,
TSDB_GRANT_TABLE
,
}
EGrantType
;
int32_t
grantCheck
(
EGrantType
grant
);
#ifndef GRANTS_CFG
#define GRANTS_SCHEMA static const SSysDbTableSchema grantsSchema[] = { \
{.name = "version", .bytes = 9 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR}, \
{.name = "expire time", .bytes = 19 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR}, \
{.name = "expired", .bytes = 5 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR}, \
{.name = "storage(GB)", .bytes = 21 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR}, \
{.name = "timeseries", .bytes = 21 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR}, \
{.name = "databases", .bytes = 10 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR}, \
{.name = "users", .bytes = 10 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR}, \
{.name = "accounts", .bytes = 10 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR}, \
{.name = "dnodes", .bytes = 10 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR}, \
{.name = "connections", .bytes = 11 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR}, \
{.name = "streams", .bytes = 9 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR}, \
{.name = "cpu cores", .bytes = 9 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR}, \
{.name = "speed(PPS)", .bytes = 9 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR}, \
{.name = "querytime", .bytes = 9 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR}, \
}
#define GRANT_CFG_ADD
#define GRANT_CFG_SET
#define GRANT_CFG_GET
#define GRANT_CFG_CHECK
#define GRANT_CFG_SKIP
#define GRANT_CFG_DECLARE
#define GRANT_CFG_EXTERN
#endif
#ifdef __cplusplus
}
#endif
...
...
include/libs/sync/sync.h
浏览文件 @
b683754f
...
...
@@ -28,10 +28,10 @@ extern bool gRaftDetailLog;
#define SYNC_RESP_TTL_MS 10000000
#define SYNC_MAX_BATCH_SIZE
500
#define SYNC_INDEX_BEGIN 0
#define SYNC_INDEX_INVALID -1
#define SYNC_TERM_INVALID 0xFFFFFFFFFFFFFFFF
#define SYNC_MAX_BATCH_SIZE
1
#define SYNC_INDEX_BEGIN
0
#define SYNC_INDEX_INVALID
-1
#define SYNC_TERM_INVALID
0xFFFFFFFFFFFFFFFF
typedef
enum
{
SYNC_STRATEGY_NO_SNAPSHOT
=
0
,
...
...
include/libs/wal/wal.h
浏览文件 @
b683754f
...
...
@@ -203,6 +203,7 @@ SWalRef *walRefCommittedVer(SWal *);
SWalRef
*
walOpenRef
(
SWal
*
);
void
walCloseRef
(
SWal
*
pWal
,
int64_t
refId
);
int32_t
walRefVer
(
SWalRef
*
,
int64_t
ver
);
int32_t
walPreRefVer
(
SWalRef
*
pRef
,
int64_t
ver
);
void
walUnrefVer
(
SWalRef
*
);
// helper function for raft
...
...
include/util/taoserror.h
浏览文件 @
b683754f
...
...
@@ -406,6 +406,8 @@ int32_t* taosGetErrno();
#define TSDB_CODE_GRANT_STORAGE_LIMITED TAOS_DEF_ERROR_CODE(0, 0x0809)
#define TSDB_CODE_GRANT_QUERYTIME_LIMITED TAOS_DEF_ERROR_CODE(0, 0x080A)
#define TSDB_CODE_GRANT_CPU_LIMITED TAOS_DEF_ERROR_CODE(0, 0x080B)
#define TSDB_CODE_GRANT_STABLE_LIMITED TAOS_DEF_ERROR_CODE(0, 0x080C)
#define TSDB_CODE_GRANT_TABLE_LIMITED TAOS_DEF_ERROR_CODE(0, 0x080D)
// sync
#define TSDB_CODE_SYN_TIMEOUT TAOS_DEF_ERROR_CODE(0, 0x0903)
...
...
source/client/src/tmq.c
浏览文件 @
b683754f
...
...
@@ -1733,7 +1733,7 @@ void* tmqHandleAllRsp(tmq_t* tmq, int64_t timeout, bool pollIfReset) {
int32_t
consumerEpoch
=
atomic_load_32
(
&
tmq
->
epoch
);
if
(
pollRspWrapper
->
dataRsp
.
head
.
epoch
==
consumerEpoch
)
{
SMqClientVg
*
pVg
=
pollRspWrapper
->
vgHandle
;
/*printf("vgId:%d offset %" PRId64 " up to %" PRId64 "\n", pVg->vgId, pVg->currentOffset,
/*printf("vgId:%d
,
offset %" PRId64 " up to %" PRId64 "\n", pVg->vgId, pVg->currentOffset,
* rspMsg->msg.rspOffset);*/
pVg
->
currentOffsetNew
=
pollRspWrapper
->
dataRsp
.
rspOffset
;
atomic_store_32
(
&
pVg
->
vgStatus
,
TMQ_VG_STATUS__IDLE
);
...
...
@@ -1756,7 +1756,7 @@ void* tmqHandleAllRsp(tmq_t* tmq, int64_t timeout, bool pollIfReset) {
int32_t
consumerEpoch
=
atomic_load_32
(
&
tmq
->
epoch
);
if
(
pollRspWrapper
->
metaRsp
.
head
.
epoch
==
consumerEpoch
)
{
SMqClientVg
*
pVg
=
pollRspWrapper
->
vgHandle
;
/*printf("vgId:%d offset %" PRId64 " up to %" PRId64 "\n", pVg->vgId, pVg->currentOffset,
/*printf("vgId:%d
,
offset %" PRId64 " up to %" PRId64 "\n", pVg->vgId, pVg->currentOffset,
* rspMsg->msg.rspOffset);*/
pVg
->
currentOffsetNew
.
version
=
pollRspWrapper
->
metaRsp
.
rspOffset
;
pVg
->
currentOffsetNew
.
type
=
TMQ_OFFSET__LOG
;
...
...
source/common/CMakeLists.txt
浏览文件 @
b683754f
aux_source_directory
(
src COMMON_SRC
)
add_library
(
common STATIC
${
COMMON_SRC
}
)
if
(
DEFINED GRANT_CFG_INCLUDE_DIR
)
add_definitions
(
-DGRANTS_CFG
)
endif
()
target_include_directories
(
common
PUBLIC
"
${
TD_SOURCE_DIR
}
/include/common"
PRIVATE
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/inc"
PRIVATE
"
${
GRANT_CFG_INCLUDE_DIR
}
"
)
IF
(
${
TD_WINDOWS
}
)
PRIVATE
"
${
TD_SOURCE_DIR
}
/contrib/pthread"
PRIVATE
"
${
TD_SOURCE_DIR
}
/contrib/msvcregex"
target_include_directories
(
common
PRIVATE
"
${
TD_SOURCE_DIR
}
/contrib/pthread"
PRIVATE
"
${
TD_SOURCE_DIR
}
/contrib/msvcregex"
)
ENDIF
()
)
target_link_libraries
(
common
PUBLIC os
...
...
source/common/src/systable.c
浏览文件 @
b683754f
...
...
@@ -17,6 +17,7 @@
#include "taos.h"
#include "tdef.h"
#include "types.h"
#include "tgrant.h"
#define SYSTABLE_SCH_TABLE_NAME_LEN ((TSDB_TABLE_NAME_LEN - 1) + VARSTR_HEADER_SIZE)
#define SYSTABLE_SCH_DB_NAME_LEN ((TSDB_DB_NAME_LEN - 1) + VARSTR_HEADER_SIZE)
...
...
@@ -188,22 +189,7 @@ static const SSysDbTableSchema userUsersSchema[] = {
{.
name
=
"create_time"
,
.
bytes
=
8
,
.
type
=
TSDB_DATA_TYPE_TIMESTAMP
},
};
static
const
SSysDbTableSchema
grantsSchema
[]
=
{
{.
name
=
"version"
,
.
bytes
=
9
+
VARSTR_HEADER_SIZE
,
.
type
=
TSDB_DATA_TYPE_VARCHAR
},
{.
name
=
"expire time"
,
.
bytes
=
19
+
VARSTR_HEADER_SIZE
,
.
type
=
TSDB_DATA_TYPE_VARCHAR
},
{.
name
=
"expired"
,
.
bytes
=
5
+
VARSTR_HEADER_SIZE
,
.
type
=
TSDB_DATA_TYPE_VARCHAR
},
{.
name
=
"storage(GB)"
,
.
bytes
=
21
+
VARSTR_HEADER_SIZE
,
.
type
=
TSDB_DATA_TYPE_VARCHAR
},
{.
name
=
"timeseries"
,
.
bytes
=
21
+
VARSTR_HEADER_SIZE
,
.
type
=
TSDB_DATA_TYPE_VARCHAR
},
{.
name
=
"databases"
,
.
bytes
=
10
+
VARSTR_HEADER_SIZE
,
.
type
=
TSDB_DATA_TYPE_VARCHAR
},
{.
name
=
"users"
,
.
bytes
=
10
+
VARSTR_HEADER_SIZE
,
.
type
=
TSDB_DATA_TYPE_VARCHAR
},
{.
name
=
"accounts"
,
.
bytes
=
10
+
VARSTR_HEADER_SIZE
,
.
type
=
TSDB_DATA_TYPE_VARCHAR
},
{.
name
=
"dnodes"
,
.
bytes
=
10
+
VARSTR_HEADER_SIZE
,
.
type
=
TSDB_DATA_TYPE_VARCHAR
},
{.
name
=
"connections"
,
.
bytes
=
11
+
VARSTR_HEADER_SIZE
,
.
type
=
TSDB_DATA_TYPE_VARCHAR
},
{.
name
=
"streams"
,
.
bytes
=
9
+
VARSTR_HEADER_SIZE
,
.
type
=
TSDB_DATA_TYPE_VARCHAR
},
{.
name
=
"cpu cores"
,
.
bytes
=
9
+
VARSTR_HEADER_SIZE
,
.
type
=
TSDB_DATA_TYPE_VARCHAR
},
{.
name
=
"speed(PPS)"
,
.
bytes
=
9
+
VARSTR_HEADER_SIZE
,
.
type
=
TSDB_DATA_TYPE_VARCHAR
},
{.
name
=
"querytime"
,
.
bytes
=
9
+
VARSTR_HEADER_SIZE
,
.
type
=
TSDB_DATA_TYPE_VARCHAR
},
};
GRANTS_SCHEMA
;
static
const
SSysDbTableSchema
vgroupsSchema
[]
=
{
{.
name
=
"vgroup_id"
,
.
bytes
=
4
,
.
type
=
TSDB_DATA_TYPE_INT
},
...
...
source/common/src/tdatablock.c
浏览文件 @
b683754f
...
...
@@ -1725,6 +1725,7 @@ char* dumpBlockData(SSDataBlock* pDataBlock, const char* flag, char** pDataBuf)
}
switch
(
pColInfoData
->
info
.
type
)
{
case
TSDB_DATA_TYPE_TIMESTAMP
:
memset
(
pBuf
,
0
,
sizeof
(
pBuf
));
formatTimestamp
(
pBuf
,
*
(
uint64_t
*
)
var
,
TSDB_TIME_PRECISION_MILLI
);
len
+=
snprintf
(
dumpBuf
+
len
,
size
-
len
,
" %25s |"
,
pBuf
);
if
(
len
>=
size
-
1
)
return
dumpBuf
;
...
...
@@ -1753,6 +1754,18 @@ char* dumpBlockData(SSDataBlock* pDataBlock, const char* flag, char** pDataBuf)
len
+=
snprintf
(
dumpBuf
+
len
,
size
-
len
,
" %15lf |"
,
*
(
double
*
)
var
);
if
(
len
>=
size
-
1
)
return
dumpBuf
;
break
;
case
TSDB_DATA_TYPE_BOOL
:
len
+=
snprintf
(
dumpBuf
+
len
,
size
-
len
,
" %15d |"
,
*
(
bool
*
)
var
);
if
(
len
>=
size
-
1
)
return
dumpBuf
;
break
;
case
TSDB_DATA_TYPE_VARCHAR
:
case
TSDB_DATA_TYPE_NCHAR
:
memset
(
pBuf
,
0
,
sizeof
(
pBuf
));
char
*
pData
=
colDataGetVarData
(
pColInfoData
,
j
);
memcpy
(
pBuf
,
varDataVal
(
pData
),
varDataLen
(
pData
));
len
+=
snprintf
(
dumpBuf
+
len
,
size
-
len
,
" %15s |"
,
pBuf
);
if
(
len
>=
size
-
1
)
return
dumpBuf
;
break
;
}
}
len
+=
snprintf
(
dumpBuf
+
len
,
size
-
len
,
"
\n
"
);
...
...
source/common/src/tglobal.c
浏览文件 @
b683754f
...
...
@@ -19,6 +19,9 @@
#include "tconfig.h"
#include "tdatablock.h"
#include "tlog.h"
#include "tgrant.h"
GRANT_CFG_DECLARE
;
SConfig
*
tsCfg
=
NULL
;
...
...
@@ -441,6 +444,7 @@ static int32_t taosAddServerCfg(SConfig *pCfg) {
if
(
cfgAddInt32
(
pCfg
,
"ttlPushInterval"
,
tsTtlPushInterval
,
1
,
100000
,
1
)
!=
0
)
return
-
1
;
if
(
cfgAddBool
(
pCfg
,
"udf"
,
tsStartUdfd
,
0
)
!=
0
)
return
-
1
;
GRANT_CFG_ADD
;
return
0
;
}
...
...
@@ -590,7 +594,7 @@ static int32_t taosSetServerCfg(SConfig *pCfg) {
if
(
tsQueryBufferSize
>=
0
)
{
tsQueryBufferSizeBytes
=
tsQueryBufferSize
*
1048576UL
;
}
GRANT_CFG_GET
;
return
0
;
}
...
...
@@ -603,6 +607,7 @@ void taosLocalCfgForbiddenToChange(char* name, bool* forbidden) {
*
forbidden
=
true
;
return
;
}
GRANT_CFG_CHECK
;
*
forbidden
=
false
;
}
...
...
source/dnode/mgmt/mgmt_dnode/CMakeLists.txt
浏览文件 @
b683754f
aux_source_directory
(
src MGMT_DNODE
)
add_library
(
mgmt_dnode STATIC
${
MGMT_DNODE
}
)
if
(
DEFINED GRANT_CFG_INCLUDE_DIR
)
add_definitions
(
-DGRANTS_CFG
)
endif
()
target_include_directories
(
mgmt_dnode
PUBLIC
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/inc"
PUBLIC
"
${
GRANT_CFG_INCLUDE_DIR
}
"
)
target_link_libraries
(
mgmt_dnode node_util
...
...
source/dnode/mgmt/mgmt_dnode/src/dmHandle.c
浏览文件 @
b683754f
...
...
@@ -16,6 +16,7 @@
#define _DEFAULT_SOURCE
#include "dmInt.h"
#include "systable.h"
#include "tgrant.h"
extern
SConfig
*
tsCfg
;
...
...
@@ -223,6 +224,7 @@ int32_t dmAppendVariablesToBlock(SSDataBlock *pBlock, int32_t dnodeId) {
for
(
int32_t
i
=
0
,
c
=
0
;
i
<
numOfCfg
;
++
i
,
c
=
0
)
{
SConfigItem
*
pItem
=
taosArrayGet
(
tsCfg
->
array
,
i
);
GRANT_CFG_SKIP
;
SColumnInfoData
*
pColInfo
=
taosArrayGet
(
pBlock
->
pDataBlock
,
c
++
);
colDataAppend
(
pColInfo
,
i
,
(
const
char
*
)
&
dnodeId
,
false
);
...
...
source/dnode/vnode/CMakeLists.txt
浏览文件 @
b683754f
...
...
@@ -58,6 +58,8 @@ target_sources(
"src/tq/tqPush.c"
"src/tq/tqSink.c"
"src/tq/tqCommit.c"
"src/tq/tqSnapshot.c"
"src/tq/tqOffsetSnapshot.c"
)
target_include_directories
(
vnode
...
...
source/dnode/vnode/inc/vnode.h
浏览文件 @
b683754f
...
...
@@ -66,6 +66,10 @@ int32_t vnodeGetCtbIdList(SVnode *pVnode, int64_t suid, SArray *list);
void
*
vnodeGetIdx
(
SVnode
*
pVnode
);
void
*
vnodeGetIvtIdx
(
SVnode
*
pVnode
);
int32_t
vnodeGetCtbNum
(
SVnode
*
pVnode
,
int64_t
suid
,
int64_t
*
num
);
int32_t
vnodeGetTimeSeriesNum
(
SVnode
*
pVnode
,
int64_t
*
num
);
int32_t
vnodeGetAllCtbNum
(
SVnode
*
pVnode
,
int64_t
*
num
);
int32_t
vnodeGetLoad
(
SVnode
*
pVnode
,
SVnodeLoad
*
pLoad
);
int32_t
vnodeValidateTableHash
(
SVnode
*
pVnode
,
char
*
tableFName
);
...
...
@@ -211,26 +215,37 @@ struct STsdbCfg {
SRetention
retentions
[
TSDB_RETENTION_MAX
];
};
typedef
struct
{
int64_t
numOfSTables
;
int64_t
numOfCTables
;
int64_t
numOfNTables
;
int64_t
numOfTimeSeries
;
int64_t
pointsWritten
;
int64_t
totalStorage
;
int64_t
compStorage
;
}
SVnodeStats
;
struct
SVnodeCfg
{
int32_t
vgId
;
char
dbname
[
TSDB_DB_FNAME_LEN
];
uint64_t
dbId
;
int32_t
cacheLastSize
;
int32_t
szPage
;
int32_t
szCache
;
uint64_t
szBuf
;
bool
isHeap
;
bool
isWeak
;
int8_t
cacheLast
;
int8_t
isTsma
;
int8_t
isRsma
;
int8_t
hashMethod
;
int8_t
standby
;
STsdbCfg
tsdbCfg
;
SWalCfg
walCfg
;
SSyncCfg
syncCfg
;
uint32_t
hashBegin
;
uint32_t
hashEnd
;
int32_t
vgId
;
char
dbname
[
TSDB_DB_FNAME_LEN
];
uint64_t
dbId
;
int32_t
cacheLastSize
;
int32_t
szPage
;
int32_t
szCache
;
uint64_t
szBuf
;
bool
isHeap
;
bool
isWeak
;
int8_t
cacheLast
;
int8_t
isTsma
;
int8_t
isRsma
;
int8_t
hashMethod
;
int8_t
standby
;
STsdbCfg
tsdbCfg
;
SWalCfg
walCfg
;
SSyncCfg
syncCfg
;
SVnodeStats
vndStats
;
uint32_t
hashBegin
;
uint32_t
hashEnd
;
};
typedef
struct
{
...
...
source/dnode/vnode/src/inc/meta.h
浏览文件 @
b683754f
...
...
@@ -80,7 +80,8 @@ struct SMeta {
TTB
*
pSmaIdx
;
TTB
*
pTaskIdx
;
// stream
TTB
*
pStreamDb
;
SMetaIdx
*
pIdx
;
};
...
...
source/dnode/vnode/src/inc/tq.h
浏览文件 @
b683754f
...
...
@@ -133,6 +133,9 @@ typedef struct {
static
STqMgmt
tqMgmt
=
{
0
};
int32_t
tEncodeSTqHandle
(
SEncoder
*
pEncoder
,
const
STqHandle
*
pHandle
);
int32_t
tDecodeSTqHandle
(
SDecoder
*
pDecoder
,
STqHandle
*
pHandle
);
// tqRead
int64_t
tqScan
(
STQ
*
pTq
,
const
STqHandle
*
pHandle
,
SMqDataRsp
*
pRsp
,
STqOffsetVal
*
offset
);
int64_t
tqFetchLog
(
STQ
*
pTq
,
STqHandle
*
pHandle
,
int64_t
*
fetchOffset
,
SWalCkHead
**
pHeadWithCkSum
);
...
...
@@ -146,6 +149,7 @@ int32_t tqMetaOpen(STQ* pTq);
int32_t
tqMetaClose
(
STQ
*
pTq
);
int32_t
tqMetaSaveHandle
(
STQ
*
pTq
,
const
char
*
key
,
const
STqHandle
*
pHandle
);
int32_t
tqMetaDeleteHandle
(
STQ
*
pTq
,
const
char
*
key
);
int32_t
tqMetaRestoreHandle
(
STQ
*
pTq
);
typedef
struct
{
int32_t
size
;
...
...
@@ -156,11 +160,15 @@ void tqOffsetClose(STqOffsetStore*);
STqOffset
*
tqOffsetRead
(
STqOffsetStore
*
pStore
,
const
char
*
subscribeKey
);
int32_t
tqOffsetWrite
(
STqOffsetStore
*
pStore
,
const
STqOffset
*
pOffset
);
int32_t
tqOffsetDelete
(
STqOffsetStore
*
pStore
,
const
char
*
subscribeKey
);
int32_t
tqOffset
Snapshot
(
STqOffsetStore
*
pStore
);
int32_t
tqOffset
CommitFile
(
STqOffsetStore
*
pStore
);
// tqSink
void
tqTableSink
(
SStreamTask
*
pTask
,
void
*
vnode
,
int64_t
ver
,
void
*
data
);
// tqOffset
char
*
tqOffsetBuildFName
(
const
char
*
path
,
int32_t
ver
);
int32_t
tqOffsetRestoreFromFile
(
STqOffsetStore
*
pStore
,
const
char
*
fname
);
static
FORCE_INLINE
void
tqOffsetResetToData
(
STqOffsetVal
*
pOffsetVal
,
int64_t
uid
,
int64_t
ts
)
{
pOffsetVal
->
type
=
TMQ_OFFSET__SNAPSHOT_DATA
;
pOffsetVal
->
uid
=
uid
;
...
...
source/dnode/vnode/src/inc/vnodeInt.h
浏览文件 @
b683754f
...
...
@@ -49,22 +49,30 @@
extern
"C"
{
#endif
typedef
struct
SVnodeInfo
SVnodeInfo
;
typedef
struct
SMeta
SMeta
;
typedef
struct
SSma
SSma
;
typedef
struct
STsdb
STsdb
;
typedef
struct
STQ
STQ
;
typedef
struct
SVState
SVState
;
typedef
struct
SVBufPool
SVBufPool
;
typedef
struct
SQWorker
SQHandle
;
typedef
struct
STsdbKeepCfg
STsdbKeepCfg
;
typedef
struct
SMetaSnapReader
SMetaSnapReader
;
typedef
struct
SMetaSnapWriter
SMetaSnapWriter
;
typedef
struct
STsdbSnapReader
STsdbSnapReader
;
typedef
struct
STsdbSnapWriter
STsdbSnapWriter
;
typedef
struct
SRsmaSnapReader
SRsmaSnapReader
;
typedef
struct
SRsmaSnapWriter
SRsmaSnapWriter
;
typedef
struct
SSnapDataHdr
SSnapDataHdr
;
typedef
struct
SVnodeInfo
SVnodeInfo
;
typedef
struct
SMeta
SMeta
;
typedef
struct
SSma
SSma
;
typedef
struct
STsdb
STsdb
;
typedef
struct
STQ
STQ
;
typedef
struct
SVState
SVState
;
typedef
struct
SVBufPool
SVBufPool
;
typedef
struct
SQWorker
SQHandle
;
typedef
struct
STsdbKeepCfg
STsdbKeepCfg
;
typedef
struct
SMetaSnapReader
SMetaSnapReader
;
typedef
struct
SMetaSnapWriter
SMetaSnapWriter
;
typedef
struct
STsdbSnapReader
STsdbSnapReader
;
typedef
struct
STsdbSnapWriter
STsdbSnapWriter
;
typedef
struct
STqSnapReader
STqSnapReader
;
typedef
struct
STqSnapWriter
STqSnapWriter
;
typedef
struct
STqOffsetReader
STqOffsetReader
;
typedef
struct
STqOffsetWriter
STqOffsetWriter
;
typedef
struct
SStreamTaskReader
SStreamTaskReader
;
typedef
struct
SStreamTaskWriter
SStreamTaskWriter
;
typedef
struct
SStreamStateReader
SStreamStateReader
;
typedef
struct
SStreamStateWriter
SStreamStateWriter
;
typedef
struct
SRsmaSnapReader
SRsmaSnapReader
;
typedef
struct
SRsmaSnapWriter
SRsmaSnapWriter
;
typedef
struct
SSnapDataHdr
SSnapDataHdr
;
#define VNODE_META_DIR "meta"
#define VNODE_TSDB_DIR "tsdb"
...
...
@@ -206,6 +214,26 @@ int32_t tsdbSnapRead(STsdbSnapReader* pReader, uint8_t** ppData);
int32_t
tsdbSnapWriterOpen
(
STsdb
*
pTsdb
,
int64_t
sver
,
int64_t
ever
,
STsdbSnapWriter
**
ppWriter
);
int32_t
tsdbSnapWrite
(
STsdbSnapWriter
*
pWriter
,
uint8_t
*
pData
,
uint32_t
nData
);
int32_t
tsdbSnapWriterClose
(
STsdbSnapWriter
**
ppWriter
,
int8_t
rollback
);
// STqSnapshotReader ==
int32_t
tqSnapReaderOpen
(
STQ
*
pTq
,
int64_t
sver
,
int64_t
ever
,
STqSnapReader
**
ppReader
);
int32_t
tqSnapReaderClose
(
STqSnapReader
**
ppReader
);
int32_t
tqSnapRead
(
STqSnapReader
*
pReader
,
uint8_t
**
ppData
);
// STqSnapshotWriter ======================================
int32_t
tqSnapWriterOpen
(
STQ
*
pTq
,
int64_t
sver
,
int64_t
ever
,
STqSnapWriter
**
ppWriter
);
int32_t
tqSnapWriterClose
(
STqSnapWriter
**
ppWriter
,
int8_t
rollback
);
int32_t
tqSnapWrite
(
STqSnapWriter
*
pWriter
,
uint8_t
*
pData
,
uint32_t
nData
);
// STqOffsetReader ========================================
int32_t
tqOffsetReaderOpen
(
STQ
*
pTq
,
int64_t
sver
,
int64_t
ever
,
STqOffsetReader
**
ppReader
);
int32_t
tqOffsetReaderClose
(
STqOffsetReader
**
ppReader
);
int32_t
tqOffsetSnapRead
(
STqOffsetReader
*
pReader
,
uint8_t
**
ppData
);
// STqOffsetWriter ========================================
int32_t
tqOffsetWriterOpen
(
STQ
*
pTq
,
int64_t
sver
,
int64_t
ever
,
STqOffsetWriter
**
ppWriter
);
int32_t
tqOffsetWriterClose
(
STqOffsetWriter
**
ppWriter
,
int8_t
rollback
);
int32_t
tqOffsetSnapWrite
(
STqOffsetWriter
*
pWriter
,
uint8_t
*
pData
,
uint32_t
nData
);
// SStreamTaskWriter ======================================
// SStreamTaskReader ======================================
// SStreamStateWriter =====================================
// SStreamStateReader =====================================
// SRsmaSnapReader ========================================
int32_t
rsmaSnapReaderOpen
(
SSma
*
pSma
,
int64_t
sver
,
int64_t
ever
,
SRsmaSnapReader
**
ppReader
);
int32_t
rsmaSnapReaderClose
(
SRsmaSnapReader
**
ppReader
);
...
...
@@ -332,6 +360,10 @@ enum {
SNAP_DATA_RSMA1
=
3
,
SNAP_DATA_RSMA2
=
4
,
SNAP_DATA_QTASK
=
5
,
SNAP_DATA_TQ_HANDLE
=
6
,
SNAP_DATA_TQ_OFFSET
=
7
,
SNAP_DATA_STREAM_TASK
=
8
,
SNAP_DATA_STREAM_STATE
=
9
,
};
struct
SSnapDataHdr
{
...
...
source/dnode/vnode/src/meta/metaOpen.c
浏览文件 @
b683754f
...
...
@@ -131,7 +131,7 @@ int metaOpen(SVnode *pVnode, SMeta **ppMeta) {
goto
_err
;
}
ret
=
tdbTbOpen
(
"stream.task.db"
,
sizeof
(
int64_t
),
-
1
,
taskIdxKeyCmpr
,
pMeta
->
pEnv
,
&
pMeta
->
p
TaskIdx
);
ret
=
tdbTbOpen
(
"stream.task.db"
,
sizeof
(
int64_t
),
-
1
,
taskIdxKeyCmpr
,
pMeta
->
pEnv
,
&
pMeta
->
p
StreamDb
);
if
(
ret
<
0
)
{
metaError
(
"vgId: %d, failed to open meta stream task index since %s"
,
TD_VID
(
pVnode
),
tstrerror
(
terrno
));
goto
_err
;
...
...
@@ -150,7 +150,7 @@ int metaOpen(SVnode *pVnode, SMeta **ppMeta) {
_err:
if
(
pMeta
->
pIdx
)
metaCloseIdx
(
pMeta
);
if
(
pMeta
->
p
TaskIdx
)
tdbTbClose
(
pMeta
->
pTaskIdx
);
if
(
pMeta
->
p
StreamDb
)
tdbTbClose
(
pMeta
->
pStreamDb
);
if
(
pMeta
->
pSmaIdx
)
tdbTbClose
(
pMeta
->
pSmaIdx
);
if
(
pMeta
->
pTtlIdx
)
tdbTbClose
(
pMeta
->
pTtlIdx
);
if
(
pMeta
->
pTagIvtIdx
)
indexClose
(
pMeta
->
pTagIvtIdx
);
...
...
@@ -170,7 +170,7 @@ _err:
int
metaClose
(
SMeta
*
pMeta
)
{
if
(
pMeta
)
{
if
(
pMeta
->
pIdx
)
metaCloseIdx
(
pMeta
);
if
(
pMeta
->
p
TaskIdx
)
tdbTbClose
(
pMeta
->
pTaskIdx
);
if
(
pMeta
->
p
StreamDb
)
tdbTbClose
(
pMeta
->
pStreamDb
);
if
(
pMeta
->
pSmaIdx
)
tdbTbClose
(
pMeta
->
pSmaIdx
);
if
(
pMeta
->
pTtlIdx
)
tdbTbClose
(
pMeta
->
pTtlIdx
);
if
(
pMeta
->
pTagIvtIdx
)
indexClose
(
pMeta
->
pTagIvtIdx
);
...
...
source/dnode/vnode/src/meta/metaQuery.c
浏览文件 @
b683754f
...
...
@@ -476,14 +476,22 @@ _err:
// N.B. Called by statusReq per second
int64_t
metaGetTbNum
(
SMeta
*
pMeta
)
{
// TODO
return
0
;
// num of child tables (excluding normal tables , stables and others)
/* int64_t num = 0; */
/* vnodeGetAllCtbNum(pMeta->pVnode, &num); */
return
pMeta
->
pVnode
->
config
.
vndStats
.
numOfCTables
;
}
// N.B. Called by statusReq per second
int64_t
metaGetTimeSeriesNum
(
SMeta
*
pMeta
)
{
// TODO
return
400
;
// sum of (number of columns of stable - 1) * number of ctables (excluding timestamp column)
int64_t
num
=
0
;
vnodeGetTimeSeriesNum
(
pMeta
->
pVnode
,
&
num
);
pMeta
->
pVnode
->
config
.
vndStats
.
numOfTimeSeries
=
num
;
return
pMeta
->
pVnode
->
config
.
vndStats
.
numOfTimeSeries
;
}
typedef
struct
{
...
...
source/dnode/vnode/src/meta/metaSnapshot.c
浏览文件 @
b683754f
...
...
@@ -51,13 +51,13 @@ int32_t metaSnapReaderOpen(SMeta* pMeta, int64_t sver, int64_t ever, SMetaSnapRe
goto
_err
;
}
metaInfo
(
"vgId:%d vnode snapshot meta reader opened"
,
TD_VID
(
pMeta
->
pVnode
));
metaInfo
(
"vgId:%d
,
vnode snapshot meta reader opened"
,
TD_VID
(
pMeta
->
pVnode
));
*
ppReader
=
pReader
;
return
code
;
_err:
metaError
(
"vgId:%d vnode snapshot meta reader open failed since %s"
,
TD_VID
(
pMeta
->
pVnode
),
tstrerror
(
code
));
metaError
(
"vgId:%d
,
vnode snapshot meta reader open failed since %s"
,
TD_VID
(
pMeta
->
pVnode
),
tstrerror
(
code
));
*
ppReader
=
NULL
;
return
code
;
}
...
...
@@ -113,14 +113,14 @@ int32_t metaSnapRead(SMetaSnapReader* pReader, uint8_t** ppData) {
pHdr
->
size
=
nData
;
memcpy
(
pHdr
->
data
,
pData
,
nData
);
metaInfo
(
"vgId:%d vnode snapshot meta read data, version:%"
PRId64
" uid:%"
PRId64
" nData:%d"
,
metaInfo
(
"vgId:%d
,
vnode snapshot meta read data, version:%"
PRId64
" uid:%"
PRId64
" nData:%d"
,
TD_VID
(
pReader
->
pMeta
->
pVnode
),
key
.
version
,
key
.
uid
,
nData
);
_exit:
return
code
;
_err:
metaError
(
"vgId:%d vnode snapshot meta read data failed since %s"
,
TD_VID
(
pReader
->
pMeta
->
pVnode
),
tstrerror
(
code
));
metaError
(
"vgId:%d
,
vnode snapshot meta read data failed since %s"
,
TD_VID
(
pReader
->
pMeta
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
...
...
@@ -151,7 +151,7 @@ int32_t metaSnapWriterOpen(SMeta* pMeta, int64_t sver, int64_t ever, SMetaSnapWr
return
code
;
_err:
metaError
(
"vgId:%d meta snapshot writer open failed since %s"
,
TD_VID
(
pMeta
->
pVnode
),
tstrerror
(
code
));
metaError
(
"vgId:%d
,
meta snapshot writer open failed since %s"
,
TD_VID
(
pMeta
->
pVnode
),
tstrerror
(
code
));
*
ppWriter
=
NULL
;
return
code
;
}
...
...
@@ -172,7 +172,7 @@ int32_t metaSnapWriterClose(SMetaSnapWriter** ppWriter, int8_t rollback) {
return
code
;
_err:
metaError
(
"vgId:%d meta snapshot writer close failed since %s"
,
TD_VID
(
pWriter
->
pMeta
->
pVnode
),
tstrerror
(
code
));
metaError
(
"vgId:%d
,
meta snapshot writer close failed since %s"
,
TD_VID
(
pWriter
->
pMeta
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
...
...
@@ -192,6 +192,6 @@ int32_t metaSnapWrite(SMetaSnapWriter* pWriter, uint8_t* pData, uint32_t nData)
return
code
;
_err:
metaError
(
"vgId:%d vnode snapshot meta write failed since %s"
,
TD_VID
(
pMeta
->
pVnode
),
tstrerror
(
code
));
metaError
(
"vgId:%d
,
vnode snapshot meta write failed since %s"
,
TD_VID
(
pMeta
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
source/dnode/vnode/src/meta/metaStream.c
0 → 100644
浏览文件 @
b683754f
/*
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
*
* This program is free software: you can use, redistribute, and/or modify
* it under the terms of the GNU Affero General Public License, version 3
* or later ("AGPL"), as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "meta.h"
source/dnode/vnode/src/meta/metaTable.c
浏览文件 @
b683754f
...
...
@@ -202,6 +202,8 @@ int metaCreateSTable(SMeta *pMeta, int64_t version, SVCreateStbReq *pReq) {
if
(
metaHandleEntry
(
pMeta
,
&
me
)
<
0
)
goto
_err
;
++
pMeta
->
pVnode
->
config
.
vndStats
.
numOfSTables
;
metaDebug
(
"vgId:%d, super table is created, name:%s uid: %"
PRId64
,
TD_VID
(
pMeta
->
pVnode
),
pReq
->
name
,
pReq
->
suid
);
return
0
;
...
...
@@ -394,6 +396,8 @@ int metaCreateTable(SMeta *pMeta, int64_t version, SVCreateTbReq *pReq) {
me
.
ctbEntry
.
comment
=
pReq
->
comment
;
me
.
ctbEntry
.
suid
=
pReq
->
ctb
.
suid
;
me
.
ctbEntry
.
pTags
=
pReq
->
ctb
.
pTag
;
++
pMeta
->
pVnode
->
config
.
vndStats
.
numOfCTables
;
}
else
{
me
.
ntbEntry
.
ctime
=
pReq
->
ctime
;
me
.
ntbEntry
.
ttlDays
=
pReq
->
ttl
;
...
...
@@ -401,6 +405,8 @@ int metaCreateTable(SMeta *pMeta, int64_t version, SVCreateTbReq *pReq) {
me
.
ntbEntry
.
comment
=
pReq
->
comment
;
me
.
ntbEntry
.
schemaRow
=
pReq
->
ntb
.
schemaRow
;
me
.
ntbEntry
.
ncid
=
me
.
ntbEntry
.
schemaRow
.
pSchema
[
me
.
ntbEntry
.
schemaRow
.
nCols
-
1
].
colId
+
1
;
++
pMeta
->
pVnode
->
config
.
vndStats
.
numOfNTables
;
}
if
(
metaHandleEntry
(
pMeta
,
&
me
)
<
0
)
goto
_err
;
...
...
@@ -534,11 +540,17 @@ static int metaDropTableByUid(SMeta *pMeta, tb_uid_t uid, int *type) {
if
(
e
.
type
==
TSDB_CHILD_TABLE
)
{
tdbTbDelete
(
pMeta
->
pCtbIdx
,
&
(
SCtbIdxKey
){.
suid
=
e
.
ctbEntry
.
suid
,
.
uid
=
uid
},
sizeof
(
SCtbIdxKey
),
&
pMeta
->
txn
);
--
pMeta
->
pVnode
->
config
.
vndStats
.
numOfCTables
;
}
else
if
(
e
.
type
==
TSDB_NORMAL_TABLE
)
{
// drop schema.db (todo)
--
pMeta
->
pVnode
->
config
.
vndStats
.
numOfNTables
;
}
else
if
(
e
.
type
==
TSDB_SUPER_TABLE
)
{
tdbTbDelete
(
pMeta
->
pSuidIdx
,
&
e
.
uid
,
sizeof
(
tb_uid_t
),
&
pMeta
->
txn
);
// drop schema.db (todo)
--
pMeta
->
pVnode
->
config
.
vndStats
.
numOfSTables
;
}
tDecoderClear
(
&
dc
);
...
...
source/dnode/vnode/src/sma/smaEnv.c
浏览文件 @
b683754f
...
...
@@ -373,7 +373,7 @@ int32_t tdCheckAndInitSmaEnv(SSma *pSma, int8_t smaType) {
}
break
;
default:
smaError
(
"vgId:%d undefined smaType:%"
,
SMA_VID
(
pSma
),
smaType
);
smaError
(
"vgId:%d
,
undefined smaType:%"
,
SMA_VID
(
pSma
),
smaType
);
return
TSDB_CODE_FAILED
;
}
...
...
source/dnode/vnode/src/sma/smaSnapshot.c
浏览文件 @
b683754f
...
...
@@ -57,10 +57,10 @@ int32_t rsmaSnapReaderOpen(SSma* pSma, int64_t sver, int64_t ever, SRsmaSnapRead
}
}
*
ppReader
=
pReader
;
smaInfo
(
"vgId:%d vnode snapshot rsma reader opened succeed"
,
SMA_VID
(
pSma
));
smaInfo
(
"vgId:%d
,
vnode snapshot rsma reader opened succeed"
,
SMA_VID
(
pSma
));
return
TSDB_CODE_SUCCESS
;
_err:
smaError
(
"vgId:%d vnode snapshot rsma reader opened failed since %s"
,
SMA_VID
(
pSma
),
tstrerror
(
code
));
smaError
(
"vgId:%d
,
vnode snapshot rsma reader opened failed since %s"
,
SMA_VID
(
pSma
),
tstrerror
(
code
));
return
TSDB_CODE_FAILED
;
}
...
...
@@ -69,11 +69,11 @@ static int32_t rsmaSnapReadQTaskInfo(SRsmaSnapReader* pReader, uint8_t** ppData)
SSma
*
pSma
=
pReader
->
pSma
;
_exit:
smaInfo
(
"vgId:%d vnode snapshot rsma read qtaskinfo succeed"
,
SMA_VID
(
pSma
));
smaInfo
(
"vgId:%d
,
vnode snapshot rsma read qtaskinfo succeed"
,
SMA_VID
(
pSma
));
return
code
;
_err:
smaError
(
"vgId:%d vnode snapshot rsma read qtaskinfo failed since %s"
,
SMA_VID
(
pSma
),
tstrerror
(
code
));
smaError
(
"vgId:%d
,
vnode snapshot rsma read qtaskinfo failed since %s"
,
SMA_VID
(
pSma
),
tstrerror
(
code
));
return
code
;
}
...
...
@@ -82,7 +82,7 @@ int32_t rsmaSnapRead(SRsmaSnapReader* pReader, uint8_t** ppData) {
*
ppData
=
NULL
;
smaInfo
(
"vgId:%d vnode snapshot rsma read entry"
,
SMA_VID
(
pReader
->
pSma
));
smaInfo
(
"vgId:%d
,
vnode snapshot rsma read entry"
,
SMA_VID
(
pReader
->
pSma
));
// read rsma1/rsma2 file
for
(
int32_t
i
=
0
;
i
<
TSDB_RETENTION_L2
;
++
i
)
{
STsdbSnapReader
*
pTsdbSnapReader
=
pReader
->
pDataReader
[
i
];
...
...
@@ -90,7 +90,7 @@ int32_t rsmaSnapRead(SRsmaSnapReader* pReader, uint8_t** ppData) {
continue
;
}
if
(
!
pReader
->
rsmaDataDone
[
i
])
{
smaInfo
(
"vgId:%d vnode snapshot rsma read level %d not done"
,
SMA_VID
(
pReader
->
pSma
),
i
);
smaInfo
(
"vgId:%d
,
vnode snapshot rsma read level %d not done"
,
SMA_VID
(
pReader
->
pSma
),
i
);
code
=
tsdbSnapRead
(
pTsdbSnapReader
,
ppData
);
if
(
code
)
{
goto
_err
;
...
...
@@ -102,7 +102,7 @@ int32_t rsmaSnapRead(SRsmaSnapReader* pReader, uint8_t** ppData) {
}
}
}
else
{
smaInfo
(
"vgId:%d vnode snapshot rsma read level %d is done"
,
SMA_VID
(
pReader
->
pSma
),
i
);
smaInfo
(
"vgId:%d
,
vnode snapshot rsma read level %d is done"
,
SMA_VID
(
pReader
->
pSma
),
i
);
}
}
...
...
@@ -121,11 +121,11 @@ int32_t rsmaSnapRead(SRsmaSnapReader* pReader, uint8_t** ppData) {
}
_exit:
smaInfo
(
"vgId:%d vnode snapshot rsma read succeed"
,
SMA_VID
(
pReader
->
pSma
));
smaInfo
(
"vgId:%d
,
vnode snapshot rsma read succeed"
,
SMA_VID
(
pReader
->
pSma
));
return
code
;
_err:
smaError
(
"vgId:%d vnode snapshot rsma read failed since %s"
,
SMA_VID
(
pReader
->
pSma
),
tstrerror
(
code
));
smaError
(
"vgId:%d
,
vnode snapshot rsma read failed since %s"
,
SMA_VID
(
pReader
->
pSma
),
tstrerror
(
code
));
return
code
;
}
...
...
@@ -141,11 +141,11 @@ int32_t rsmaSnapReaderClose(SRsmaSnapReader** ppReader) {
if
(
pReader
->
pQTaskFReader
)
{
// TODO: close for qtaskinfo
smaInfo
(
"vgId:%d vnode snapshot rsma reader closed for qTaskInfo"
,
SMA_VID
(
pReader
->
pSma
));
smaInfo
(
"vgId:%d
,
vnode snapshot rsma reader closed for qTaskInfo"
,
SMA_VID
(
pReader
->
pSma
));
}
smaInfo
(
"vgId:%d vnode snapshot rsma reader closed"
,
SMA_VID
(
pReader
->
pSma
));
smaInfo
(
"vgId:%d
,
vnode snapshot rsma reader closed"
,
SMA_VID
(
pReader
->
pSma
));
taosMemoryFreeClear
(
*
ppReader
);
return
code
;
...
...
@@ -196,11 +196,11 @@ int32_t rsmaSnapWriterOpen(SSma* pSma, int64_t sver, int64_t ever, SRsmaSnapWrit
*
ppWriter
=
pWriter
;
smaInfo
(
"vgId:%d rsma snapshot writer open succeed"
,
TD_VID
(
pSma
->
pVnode
));
smaInfo
(
"vgId:%d
,
rsma snapshot writer open succeed"
,
TD_VID
(
pSma
->
pVnode
));
return
code
;
_err:
smaError
(
"vgId:%d rsma snapshot writer open failed since %s"
,
TD_VID
(
pSma
->
pVnode
),
tstrerror
(
code
));
smaError
(
"vgId:%d
,
rsma snapshot writer open failed since %s"
,
TD_VID
(
pSma
->
pVnode
),
tstrerror
(
code
));
*
ppWriter
=
NULL
;
return
code
;
}
...
...
@@ -222,13 +222,13 @@ int32_t rsmaSnapWriterClose(SRsmaSnapWriter** ppWriter, int8_t rollback) {
}
}
smaInfo
(
"vgId:%d vnode snapshot rsma writer close succeed"
,
SMA_VID
(
pWriter
->
pSma
));
smaInfo
(
"vgId:%d
,
vnode snapshot rsma writer close succeed"
,
SMA_VID
(
pWriter
->
pSma
));
taosMemoryFree
(
pWriter
);
*
ppWriter
=
NULL
;
return
code
;
_err:
smaError
(
"vgId:%d vnode snapshot rsma writer close failed since %s"
,
SMA_VID
(
pWriter
->
pSma
),
tstrerror
(
code
));
smaError
(
"vgId:%d
,
vnode snapshot rsma writer close failed since %s"
,
SMA_VID
(
pWriter
->
pSma
),
tstrerror
(
code
));
return
code
;
}
...
...
@@ -251,11 +251,11 @@ int32_t rsmaSnapWrite(SRsmaSnapWriter* pWriter, uint8_t* pData, uint32_t nData)
if
(
code
<
0
)
goto
_err
;
_exit:
smaInfo
(
"vgId:%d rsma snapshot write for data type %"
PRIi8
" succeed"
,
SMA_VID
(
pWriter
->
pSma
),
pHdr
->
type
);
smaInfo
(
"vgId:%d
,
rsma snapshot write for data type %"
PRIi8
" succeed"
,
SMA_VID
(
pWriter
->
pSma
),
pHdr
->
type
);
return
code
;
_err:
smaError
(
"vgId:%d rsma snapshot write for data type %"
PRIi8
" failed since %s"
,
SMA_VID
(
pWriter
->
pSma
),
pHdr
->
type
,
smaError
(
"vgId:%d
,
rsma snapshot write for data type %"
PRIi8
" failed since %s"
,
SMA_VID
(
pWriter
->
pSma
),
pHdr
->
type
,
tstrerror
(
code
));
return
code
;
}
...
...
@@ -280,11 +280,11 @@ static int32_t rsmaSnapWriteQTaskInfo(SRsmaSnapWriter* pWriter, uint8_t* pData,
// code = tsdbDelFWriterOpen(&pWriter->pDelFWriter, &delFile, pTsdb);
// if (code) goto _err;
}
smaInfo
(
"vgId:%d vnode snapshot rsma write qtaskinfo succeed"
,
SMA_VID
(
pWriter
->
pSma
));
smaInfo
(
"vgId:%d
,
vnode snapshot rsma write qtaskinfo succeed"
,
SMA_VID
(
pWriter
->
pSma
));
_exit:
return
code
;
_err:
smaError
(
"vgId:%d vnode snapshot rsma write qtaskinfo failed since %s"
,
SMA_VID
(
pWriter
->
pSma
),
tstrerror
(
code
));
smaError
(
"vgId:%d
,
vnode snapshot rsma write qtaskinfo failed since %s"
,
SMA_VID
(
pWriter
->
pSma
),
tstrerror
(
code
));
return
code
;
}
source/dnode/vnode/src/tq/tq.c
浏览文件 @
b683754f
...
...
@@ -121,7 +121,7 @@ int32_t tqSendMetaPollRsp(STQ* pTq, const SRpcMsg* pMsg, const SMqPollReq* pReq,
};
tmsgSendRsp
(
&
resp
);
tqDebug
(
"vgId:%d from consumer:%"
PRId64
", (epoch %d) send rsp, res msg type %d, reqOffset:%"
PRId64
tqDebug
(
"vgId:%d
,
from consumer:%"
PRId64
", (epoch %d) send rsp, res msg type %d, reqOffset:%"
PRId64
", rspOffset:%"
PRId64
,
TD_VID
(
pTq
->
pVnode
),
pReq
->
consumerId
,
pReq
->
epoch
,
pRsp
->
resMsgType
,
pRsp
->
reqOffset
,
pRsp
->
rspOffset
);
...
...
@@ -181,7 +181,7 @@ int32_t tqSendDataRsp(STQ* pTq, const SRpcMsg* pMsg, const SMqPollReq* pReq, con
char
buf2
[
80
]
=
{
0
};
tFormatOffset
(
buf1
,
80
,
&
pRsp
->
reqOffset
);
tFormatOffset
(
buf2
,
80
,
&
pRsp
->
rspOffset
);
tqDebug
(
"vgId:%d from consumer:%"
PRId64
", (epoch %d) send rsp, block num: %d, reqOffset:%s, rspOffset:%s"
,
tqDebug
(
"vgId:%d
,
from consumer:%"
PRId64
", (epoch %d) send rsp, block num: %d, reqOffset:%s, rspOffset:%s"
,
TD_VID
(
pTq
->
pVnode
),
pReq
->
consumerId
,
pReq
->
epoch
,
pRsp
->
blockNum
,
buf1
,
buf2
);
return
0
;
...
...
@@ -548,6 +548,7 @@ int32_t tqProcessVgChangeReq(STQ* pTq, char* msg, int32_t msgLen) {
SWalRef
*
pRef
=
walRefCommittedVer
(
pTq
->
pVnode
->
pWal
);
if
(
pRef
==
NULL
)
{
ASSERT
(
0
);
return
-
1
;
}
int64_t
ver
=
pRef
->
refVer
;
pHandle
->
pRef
=
pRef
;
...
...
source/dnode/vnode/src/tq/tqCommit.c
浏览文件 @
b683754f
...
...
@@ -15,4 +15,4 @@
#include "tq.h"
int
tqCommit
(
STQ
*
pTq
)
{
return
tqOffset
Snapshot
(
pTq
->
pOffsetStore
);
}
int
tqCommit
(
STQ
*
pTq
)
{
return
tqOffset
CommitFile
(
pTq
->
pOffsetStore
);
}
source/dnode/vnode/src/tq/tqMeta.c
浏览文件 @
b683754f
...
...
@@ -15,7 +15,7 @@
#include "tdbInt.h"
#include "tq.h"
static
int32_t
tEncodeSTqHandle
(
SEncoder
*
pEncoder
,
const
STqHandle
*
pHandle
)
{
int32_t
tEncodeSTqHandle
(
SEncoder
*
pEncoder
,
const
STqHandle
*
pHandle
)
{
if
(
tStartEncode
(
pEncoder
)
<
0
)
return
-
1
;
if
(
tEncodeCStr
(
pEncoder
,
pHandle
->
subKey
)
<
0
)
return
-
1
;
if
(
tEncodeI64
(
pEncoder
,
pHandle
->
consumerId
)
<
0
)
return
-
1
;
...
...
@@ -29,7 +29,7 @@ static int32_t tEncodeSTqHandle(SEncoder* pEncoder, const STqHandle* pHandle) {
return
pEncoder
->
pos
;
}
static
int32_t
tDecodeSTqHandle
(
SDecoder
*
pDecoder
,
STqHandle
*
pHandle
)
{
int32_t
tDecodeSTqHandle
(
SDecoder
*
pDecoder
,
STqHandle
*
pHandle
)
{
if
(
tStartDecode
(
pDecoder
)
<
0
)
return
-
1
;
if
(
tDecodeCStrTo
(
pDecoder
,
pHandle
->
subKey
)
<
0
)
return
-
1
;
if
(
tDecodeI64
(
pDecoder
,
&
pHandle
->
consumerId
)
<
0
)
return
-
1
;
...
...
@@ -43,33 +43,20 @@ static int32_t tDecodeSTqHandle(SDecoder* pDecoder, STqHandle* pHandle) {
return
0
;
}
int32_t
tqMetaOpen
(
STQ
*
pTq
)
{
if
(
tdbOpen
(
pTq
->
path
,
16
*
1024
,
1
,
&
pTq
->
pMetaStore
)
<
0
)
{
int32_t
tqMetaRestoreHandle
(
STQ
*
pTq
)
{
TBC
*
pCur
=
NULL
;
if
(
tdbTbcOpen
(
pTq
->
pExecStore
,
&
pCur
,
NULL
)
<
0
)
{
ASSERT
(
0
);
return
-
1
;
}
if
(
tdbTbOpen
(
"handles"
,
-
1
,
-
1
,
NULL
,
pTq
->
pMetaStore
,
&
pTq
->
pExecStore
)
<
0
)
{
ASSERT
(
0
);
}
TXN
txn
=
{
0
};
if
(
tdbTxnOpen
(
&
txn
,
0
,
tdbDefaultMalloc
,
tdbDefaultFree
,
NULL
,
0
)
<
0
)
{
ASSERT
(
0
);
}
TBC
*
pCur
;
if
(
tdbTbcOpen
(
pTq
->
pExecStore
,
&
pCur
,
&
txn
)
<
0
)
{
ASSERT
(
0
);
}
void
*
pKey
=
NULL
;
int
kLen
=
0
;
void
*
pVal
=
NULL
;
int
vLen
=
0
;
void
*
pKey
=
NULL
;
int
kLen
=
0
;
void
*
pVal
=
NULL
;
int
vLen
=
0
;
SDecoder
decoder
;
tdbTbcMoveToFirst
(
pCur
);
SDecoder
decoder
;
while
(
tdbTbcNext
(
pCur
,
&
pKey
,
&
kLen
,
&
pVal
,
&
vLen
)
==
0
)
{
STqHandle
handle
;
...
...
@@ -79,6 +66,7 @@ int32_t tqMetaOpen(STQ* pTq) {
handle
.
pRef
=
walOpenRef
(
pTq
->
pVnode
->
pWal
);
if
(
handle
.
pRef
==
NULL
)
{
ASSERT
(
0
);
return
-
1
;
}
walRefVer
(
handle
.
pRef
,
handle
.
snapshotVer
);
...
...
@@ -109,9 +97,24 @@ int32_t tqMetaOpen(STQ* pTq) {
}
tdbTbcClose
(
pCur
);
if
(
tdbTxnClose
(
&
txn
)
<
0
)
{
return
0
;
}
int32_t
tqMetaOpen
(
STQ
*
pTq
)
{
if
(
tdbOpen
(
pTq
->
path
,
16
*
1024
,
1
,
&
pTq
->
pMetaStore
)
<
0
)
{
ASSERT
(
0
);
return
-
1
;
}
if
(
tdbTbOpen
(
"tq.db"
,
-
1
,
-
1
,
NULL
,
pTq
->
pMetaStore
,
&
pTq
->
pExecStore
)
<
0
)
{
ASSERT
(
0
);
return
-
1
;
}
if
(
tqMetaRestoreHandle
(
pTq
)
<
0
)
{
return
-
1
;
}
return
0
;
}
...
...
source/dnode/vnode/src/tq/tqOffset.c
浏览文件 @
b683754f
...
...
@@ -22,29 +22,15 @@ struct STqOffsetStore {
SHashObj
*
pHash
;
// SHashObj<subscribeKey, offset>
};
static
char
*
buildFileName
(
const
char
*
path
)
{
char
*
tqOffsetBuildFName
(
const
char
*
path
,
int32_t
ver
)
{
int32_t
len
=
strlen
(
path
);
char
*
fname
=
taosMemoryCalloc
(
1
,
len
+
2
0
);
snprintf
(
fname
,
len
+
20
,
"%s/offset"
,
path
);
char
*
fname
=
taosMemoryCalloc
(
1
,
len
+
4
0
);
snprintf
(
fname
,
len
+
40
,
"%s/offset-ver%d"
,
path
,
ver
);
return
fname
;
}
STqOffsetStore
*
tqOffsetOpen
(
STQ
*
pTq
)
{
STqOffsetStore
*
pStore
=
taosMemoryCalloc
(
1
,
sizeof
(
STqOffsetStore
));
if
(
pStore
==
NULL
)
{
return
NULL
;
}
pStore
->
pTq
=
pTq
;
pTq
->
pOffsetStore
=
pStore
;
pStore
->
pHash
=
taosHashInit
(
64
,
MurmurHash3_32
,
true
,
HASH_NO_LOCK
);
if
(
pStore
->
pHash
==
NULL
)
{
if
(
pStore
->
pHash
)
taosHashCleanup
(
pStore
->
pHash
);
return
NULL
;
}
char
*
fname
=
buildFileName
(
pStore
->
pTq
->
path
);
int32_t
tqOffsetRestoreFromFile
(
STqOffsetStore
*
pStore
,
const
char
*
fname
)
{
TdFilePtr
pFile
=
taosOpenFile
(
fname
,
TD_FILE_READ
);
taosMemoryFree
(
fname
);
if
(
pFile
!=
NULL
)
{
STqOffsetHead
head
=
{
0
};
int64_t
code
;
...
...
@@ -79,11 +65,32 @@ STqOffsetStore* tqOffsetOpen(STQ* pTq) {
taosCloseFile
(
&
pFile
);
}
return
0
;
}
STqOffsetStore
*
tqOffsetOpen
(
STQ
*
pTq
)
{
STqOffsetStore
*
pStore
=
taosMemoryCalloc
(
1
,
sizeof
(
STqOffsetStore
));
if
(
pStore
==
NULL
)
{
return
NULL
;
}
pStore
->
pTq
=
pTq
;
pTq
->
pOffsetStore
=
pStore
;
pStore
->
pHash
=
taosHashInit
(
64
,
MurmurHash3_32
,
true
,
HASH_NO_LOCK
);
if
(
pStore
->
pHash
==
NULL
)
{
taosMemoryFree
(
pStore
);
return
NULL
;
}
char
*
fname
=
tqOffsetBuildFName
(
pStore
->
pTq
->
path
,
0
);
if
(
tqOffsetRestoreFromFile
(
pStore
,
fname
)
<
0
)
{
ASSERT
(
0
);
}
taosMemoryFree
(
fname
);
return
pStore
;
}
void
tqOffsetClose
(
STqOffsetStore
*
pStore
)
{
tqOffset
Snapshot
(
pStore
);
tqOffset
CommitFile
(
pStore
);
taosHashCleanup
(
pStore
->
pHash
);
taosMemoryFree
(
pStore
);
}
...
...
@@ -93,8 +100,6 @@ STqOffset* tqOffsetRead(STqOffsetStore* pStore, const char* subscribeKey) {
}
int32_t
tqOffsetWrite
(
STqOffsetStore
*
pStore
,
const
STqOffset
*
pOffset
)
{
/*ASSERT(pOffset->val.type == TMQ_OFFSET__LOG);*/
/*ASSERT(pOffset->val.version >= 0);*/
return
taosHashPut
(
pStore
->
pHash
,
pOffset
->
subKey
,
strlen
(
pOffset
->
subKey
),
pOffset
,
sizeof
(
STqOffset
));
}
...
...
@@ -102,10 +107,9 @@ int32_t tqOffsetDelete(STqOffsetStore* pStore, const char* subscribeKey) {
return
taosHashRemove
(
pStore
->
pHash
,
subscribeKey
,
strlen
(
subscribeKey
));
}
int32_t
tqOffsetSnapshot
(
STqOffsetStore
*
pStore
)
{
// open file
// TODO file name should be with a version
char
*
fname
=
buildFileName
(
pStore
->
pTq
->
path
);
int32_t
tqOffsetCommitFile
(
STqOffsetStore
*
pStore
)
{
// TODO file name should be with a newer version
char
*
fname
=
tqOffsetBuildFName
(
pStore
->
pTq
->
path
,
0
);
TdFilePtr
pFile
=
taosOpenFile
(
fname
,
TD_FILE_CREATE
|
TD_FILE_WRITE
|
TD_FILE_APPEND
);
taosMemoryFree
(
fname
);
if
(
pFile
==
NULL
)
{
...
...
source/dnode/vnode/src/tq/tqOffsetSnapshot.c
0 → 100644
浏览文件 @
b683754f
/*
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
*
* This program is free software: you can use, redistribute, and/or modify
* it under the terms of the GNU Affero General Public License, version 3
* or later ("AGPL"), as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "meta.h"
#include "tdbInt.h"
#include "tq.h"
// STqOffsetReader ========================================
struct
STqOffsetReader
{
STQ
*
pTq
;
int64_t
sver
;
int64_t
ever
;
int8_t
readEnd
;
};
int32_t
tqOffsetReaderOpen
(
STQ
*
pTq
,
int64_t
sver
,
int64_t
ever
,
STqOffsetReader
**
ppReader
)
{
STqOffsetReader
*
pReader
=
NULL
;
pReader
=
taosMemoryCalloc
(
1
,
sizeof
(
STqOffsetReader
));
if
(
pReader
==
NULL
)
{
*
ppReader
=
NULL
;
return
-
1
;
}
pReader
->
pTq
=
pTq
;
pReader
->
sver
=
sver
;
pReader
->
ever
=
ever
;
tqInfo
(
"vgId:%d vnode snapshot tq offset reader opened"
,
TD_VID
(
pTq
->
pVnode
));
*
ppReader
=
pReader
;
return
0
;
}
int32_t
tqOffsetReaderClose
(
STqOffsetReader
**
ppReader
)
{
taosMemoryFree
(
*
ppReader
);
*
ppReader
=
NULL
;
return
0
;
}
int32_t
tqOffsetSnapRead
(
STqOffsetReader
*
pReader
,
uint8_t
**
ppData
)
{
if
(
pReader
->
readEnd
!=
0
)
return
0
;
char
*
fname
=
tqOffsetBuildFName
(
pReader
->
pTq
->
path
,
0
);
TdFilePtr
pFile
=
taosOpenFile
(
fname
,
TD_FILE_READ
);
taosMemoryFree
(
fname
);
if
(
pFile
!=
NULL
)
{
return
0
;
}
int64_t
sz
=
0
;
if
(
taosStatFile
(
fname
,
&
sz
,
NULL
)
<
0
)
{
ASSERT
(
0
);
}
SSnapDataHdr
*
buf
=
taosMemoryCalloc
(
1
,
sz
+
sizeof
(
SSnapDataHdr
));
if
(
buf
==
NULL
)
{
terrno
=
TSDB_CODE_OUT_OF_MEMORY
;
return
terrno
;
}
void
*
abuf
=
POINTER_SHIFT
(
buf
,
sizeof
(
SSnapDataHdr
));
int64_t
contLen
=
taosReadFile
(
pFile
,
abuf
,
sz
);
if
(
contLen
!=
sz
)
{
ASSERT
(
0
);
return
-
1
;
}
buf
->
size
=
sz
;
buf
->
type
=
SNAP_DATA_TQ_OFFSET
;
*
ppData
=
(
uint8_t
*
)
buf
;
pReader
->
readEnd
=
1
;
return
0
;
}
// STqOffseWriter ========================================
struct
STqOffsetWriter
{
STQ
*
pTq
;
int64_t
sver
;
int64_t
ever
;
int32_t
tmpFileVer
;
char
*
fname
;
};
int32_t
tqOffsetWriterOpen
(
STQ
*
pTq
,
int64_t
sver
,
int64_t
ever
,
STqOffsetWriter
**
ppWriter
)
{
int32_t
code
=
0
;
STqOffsetWriter
*
pWriter
;
pWriter
=
(
STqOffsetWriter
*
)
taosMemoryCalloc
(
1
,
sizeof
(
STqOffsetWriter
));
if
(
pWriter
==
NULL
)
{
code
=
TSDB_CODE_OUT_OF_MEMORY
;
goto
_err
;
}
pWriter
->
pTq
=
pTq
;
pWriter
->
sver
=
sver
;
pWriter
->
ever
=
ever
;
*
ppWriter
=
pWriter
;
return
code
;
_err:
tqError
(
"vgId:%d tq snapshot writer open failed since %s"
,
TD_VID
(
pTq
->
pVnode
),
tstrerror
(
code
));
*
ppWriter
=
NULL
;
return
code
;
}
int32_t
tqOffsetWriterClose
(
STqOffsetWriter
**
ppWriter
,
int8_t
rollback
)
{
STqOffsetWriter
*
pWriter
=
*
ppWriter
;
STQ
*
pTq
=
pWriter
->
pTq
;
char
*
fname
=
tqOffsetBuildFName
(
pTq
->
path
,
0
);
if
(
rollback
)
{
taosRemoveFile
(
pWriter
->
fname
);
}
else
{
taosRenameFile
(
pWriter
->
fname
,
fname
);
if
(
tqOffsetRestoreFromFile
(
pTq
->
pOffsetStore
,
fname
)
<
0
)
{
ASSERT
(
0
);
}
}
taosMemoryFree
(
fname
);
taosMemoryFree
(
pWriter
->
fname
);
taosMemoryFree
(
pWriter
);
*
ppWriter
=
NULL
;
return
0
;
}
int32_t
tqOffsetSnapWrite
(
STqOffsetWriter
*
pWriter
,
uint8_t
*
pData
,
uint32_t
nData
)
{
STQ
*
pTq
=
pWriter
->
pTq
;
pWriter
->
tmpFileVer
=
1
;
pWriter
->
fname
=
tqOffsetBuildFName
(
pTq
->
path
,
pWriter
->
tmpFileVer
);
TdFilePtr
pFile
=
taosOpenFile
(
pWriter
->
fname
,
TD_FILE_CREATE
|
TD_FILE_WRITE
);
SSnapDataHdr
*
pHdr
=
(
SSnapDataHdr
*
)
pData
;
int64_t
size
=
pHdr
->
size
;
ASSERT
(
size
==
nData
-
sizeof
(
SSnapDataHdr
));
if
(
pFile
)
{
int64_t
contLen
=
taosWriteFile
(
pFile
,
pHdr
->
data
,
size
);
if
(
contLen
!=
size
)
{
ASSERT
(
0
);
}
}
else
{
ASSERT
(
0
);
return
-
1
;
}
return
0
;
}
source/dnode/vnode/src/tq/tqPush.c
浏览文件 @
b683754f
...
...
@@ -223,7 +223,7 @@ int32_t tqPushMsgNew(STQ* pTq, void* msg, int32_t msgLen, tmsg_t msgType, int64_
memset(&pHandle->pushHandle.rpcInfo, 0, sizeof(SRpcHandleInfo));
taosWUnLockLatch(&pHandle->pushHandle.lock);
tqDebug("vgId:%d offset %" PRId64 " from consumer:%" PRId64 ", (epoch %d) send rsp, block num: %d, reqOffset:%" PRId64 ", rspOffset:%" PRId64,
tqDebug("vgId:%d
,
offset %" PRId64 " from consumer:%" PRId64 ", (epoch %d) send rsp, block num: %d, reqOffset:%" PRId64 ", rspOffset:%" PRId64,
TD_VID(pTq->pVnode), fetchOffset, pHandle->pushHandle.consumerId, pHandle->pushHandle.epoch, rsp.blockNum,
rsp.reqOffset, rsp.rspOffset);
...
...
source/dnode/vnode/src/tq/tqSnapshot.c
0 → 100644
浏览文件 @
b683754f
/*
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
*
* This program is free software: you can use, redistribute, and/or modify
* it under the terms of the GNU Affero General Public License, version 3
* or later ("AGPL"), as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "meta.h"
#include "tdbInt.h"
#include "tq.h"
// STqSnapReader ========================================
struct
STqSnapReader
{
STQ
*
pTq
;
int64_t
sver
;
int64_t
ever
;
TBC
*
pCur
;
};
int32_t
tqSnapReaderOpen
(
STQ
*
pTq
,
int64_t
sver
,
int64_t
ever
,
STqSnapReader
**
ppReader
)
{
int32_t
code
=
0
;
STqSnapReader
*
pReader
=
NULL
;
// alloc
pReader
=
(
STqSnapReader
*
)
taosMemoryCalloc
(
1
,
sizeof
(
STqSnapReader
));
if
(
pReader
==
NULL
)
{
code
=
TSDB_CODE_OUT_OF_MEMORY
;
goto
_err
;
}
pReader
->
pTq
=
pTq
;
pReader
->
sver
=
sver
;
pReader
->
ever
=
ever
;
// impl
code
=
tdbTbcOpen
(
pTq
->
pExecStore
,
&
pReader
->
pCur
,
NULL
);
if
(
code
)
{
taosMemoryFree
(
pReader
);
goto
_err
;
}
code
=
tdbTbcMoveToFirst
(
pReader
->
pCur
);
if
(
code
)
{
taosMemoryFree
(
pReader
);
goto
_err
;
}
tqInfo
(
"vgId:%d vnode snapshot tq reader opened"
,
TD_VID
(
pTq
->
pVnode
));
*
ppReader
=
pReader
;
return
code
;
_err:
tqError
(
"vgId:%d vnode snapshot tq reader open failed since %s"
,
TD_VID
(
pTq
->
pVnode
),
tstrerror
(
code
));
*
ppReader
=
NULL
;
return
code
;
}
int32_t
tqSnapReaderClose
(
STqSnapReader
**
ppReader
)
{
int32_t
code
=
0
;
tdbTbcClose
((
*
ppReader
)
->
pCur
);
taosMemoryFree
(
*
ppReader
);
*
ppReader
=
NULL
;
return
code
;
}
int32_t
tqSnapRead
(
STqSnapReader
*
pReader
,
uint8_t
**
ppData
)
{
int32_t
code
=
0
;
const
void
*
pKey
=
NULL
;
const
void
*
pVal
=
NULL
;
int32_t
kLen
=
0
;
int32_t
vLen
=
0
;
SDecoder
decoder
;
STqHandle
handle
;
*
ppData
=
NULL
;
for
(;;)
{
if
(
tdbTbcGet
(
pReader
->
pCur
,
&
pKey
,
&
kLen
,
&
pVal
,
&
vLen
))
{
goto
_exit
;
}
tDecoderInit
(
&
decoder
,
(
uint8_t
*
)
pVal
,
vLen
);
tDecodeSTqHandle
(
&
decoder
,
&
handle
);
tDecoderClear
(
&
decoder
);
if
(
handle
.
snapshotVer
<=
pReader
->
sver
&&
handle
.
snapshotVer
>=
pReader
->
ever
)
{
tdbTbcMoveToNext
(
pReader
->
pCur
);
break
;
}
else
{
tdbTbcMoveToNext
(
pReader
->
pCur
);
}
}
ASSERT
(
pVal
&&
vLen
);
*
ppData
=
taosMemoryMalloc
(
sizeof
(
SSnapDataHdr
)
+
vLen
);
if
(
*
ppData
==
NULL
)
{
code
=
TSDB_CODE_OUT_OF_MEMORY
;
goto
_err
;
}
SSnapDataHdr
*
pHdr
=
(
SSnapDataHdr
*
)(
*
ppData
);
pHdr
->
type
=
SNAP_DATA_TQ_HANDLE
;
pHdr
->
size
=
vLen
;
memcpy
(
pHdr
->
data
,
pVal
,
vLen
);
tqInfo
(
"vgId:%d vnode snapshot tq read data, version:%"
PRId64
" subKey: %s vLen:%d"
,
TD_VID
(
pReader
->
pTq
->
pVnode
),
handle
.
snapshotVer
,
handle
.
subKey
,
vLen
);
_exit:
return
code
;
_err:
tqError
(
"vgId:%d vnode snapshot tq read data failed since %s"
,
TD_VID
(
pReader
->
pTq
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
// STqSnapWriter ========================================
struct
STqSnapWriter
{
STQ
*
pTq
;
int64_t
sver
;
int64_t
ever
;
TXN
txn
;
};
int32_t
tqSnapWriterOpen
(
STQ
*
pTq
,
int64_t
sver
,
int64_t
ever
,
STqSnapWriter
**
ppWriter
)
{
int32_t
code
=
0
;
STqSnapWriter
*
pWriter
;
// alloc
pWriter
=
(
STqSnapWriter
*
)
taosMemoryCalloc
(
1
,
sizeof
(
*
pWriter
));
if
(
pWriter
==
NULL
)
{
code
=
TSDB_CODE_OUT_OF_MEMORY
;
goto
_err
;
}
pWriter
->
pTq
=
pTq
;
pWriter
->
sver
=
sver
;
pWriter
->
ever
=
ever
;
if
(
tdbTxnOpen
(
&
pWriter
->
txn
,
0
,
tdbDefaultMalloc
,
tdbDefaultFree
,
NULL
,
0
)
<
0
)
{
ASSERT
(
0
);
}
*
ppWriter
=
pWriter
;
return
code
;
_err:
tqError
(
"vgId:%d tq snapshot writer open failed since %s"
,
TD_VID
(
pTq
->
pVnode
),
tstrerror
(
code
));
*
ppWriter
=
NULL
;
return
code
;
}
int32_t
tqSnapWriterClose
(
STqSnapWriter
**
ppWriter
,
int8_t
rollback
)
{
int32_t
code
=
0
;
STqSnapWriter
*
pWriter
=
*
ppWriter
;
STQ
*
pTq
=
pWriter
->
pTq
;
if
(
rollback
)
{
ASSERT
(
0
);
}
else
{
code
=
tdbCommit
(
pWriter
->
pTq
->
pMetaStore
,
&
pWriter
->
txn
);
if
(
code
)
goto
_err
;
}
taosMemoryFree
(
pWriter
);
*
ppWriter
=
NULL
;
// restore from metastore
if
(
tqMetaRestoreHandle
(
pTq
)
<
0
)
{
goto
_err
;
}
return
code
;
_err:
tqError
(
"vgId:%d tq snapshot writer close failed since %s"
,
TD_VID
(
pWriter
->
pTq
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
int32_t
tqSnapWrite
(
STqSnapWriter
*
pWriter
,
uint8_t
*
pData
,
uint32_t
nData
)
{
int32_t
code
=
0
;
STQ
*
pTq
=
pWriter
->
pTq
;
SDecoder
decoder
=
{
0
};
SDecoder
*
pDecoder
=
&
decoder
;
STqHandle
handle
;
tDecoderInit
(
pDecoder
,
pData
+
sizeof
(
SSnapDataHdr
),
nData
-
sizeof
(
SSnapDataHdr
));
code
=
tDecodeSTqHandle
(
pDecoder
,
&
handle
);
if
(
code
)
goto
_err
;
code
=
tqMetaSaveHandle
(
pTq
,
handle
.
subKey
,
&
handle
);
if
(
code
<
0
)
goto
_err
;
tDecoderClear
(
pDecoder
);
return
code
;
_err:
tDecoderClear
(
pDecoder
);
tqError
(
"vgId:%d vnode snapshot tq write failed since %s"
,
TD_VID
(
pTq
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
source/dnode/vnode/src/tsdb/tsdbCommit.c
浏览文件 @
b683754f
...
...
@@ -92,7 +92,7 @@ int32_t tsdbBegin(STsdb *pTsdb) {
return
code
;
_err:
tsdbError
(
"vgId:%d tsdb begin failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
tsdb begin failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
...
...
@@ -175,11 +175,11 @@ static int32_t tsdbCommitDelStart(SCommitter *pCommitter) {
if
(
code
)
goto
_err
;
_exit:
tsdbDebug
(
"vgId:%d commit del start"
,
TD_VID
(
pTsdb
->
pVnode
));
tsdbDebug
(
"vgId:%d
,
commit del start"
,
TD_VID
(
pTsdb
->
pVnode
));
return
code
;
_err:
tsdbError
(
"vgId:%d commit del start failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
commit del start failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
...
...
@@ -235,7 +235,7 @@ _exit:
return
code
;
_err:
tsdbError
(
"vgId:%d commit table del failed since %s"
,
TD_VID
(
pCommitter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
commit table del failed since %s"
,
TD_VID
(
pCommitter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
...
...
@@ -267,7 +267,7 @@ static int32_t tsdbCommitDelEnd(SCommitter *pCommitter) {
return
code
;
_err:
tsdbError
(
"vgId:%d commit del end failed since %s"
,
TD_VID
(
pCommitter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
commit del end failed since %s"
,
TD_VID
(
pCommitter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
...
...
@@ -331,7 +331,7 @@ _exit:
return
code
;
_err:
tsdbError
(
"vgId:%d commit file data start failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
commit file data start failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
...
...
@@ -509,7 +509,7 @@ static int32_t tsdbMergeTableData(SCommitter *pCommitter, STbDataIter *pIter, SB
return
code
;
_err:
tsdbError
(
"vgId:%d tsdb merge block and mem failed since %s"
,
TD_VID
(
pCommitter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
tsdb merge block and mem failed since %s"
,
TD_VID
(
pCommitter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
...
...
@@ -571,7 +571,7 @@ static int32_t tsdbCommitTableMemData(SCommitter *pCommitter, STbDataIter *pIter
return
code
;
_err:
tsdbError
(
"vgId:%d tsdb commit table mem data failed since %s"
,
TD_VID
(
pCommitter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
tsdb commit table mem data failed since %s"
,
TD_VID
(
pCommitter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
...
...
@@ -594,7 +594,7 @@ static int32_t tsdbCommitTableDiskData(SCommitter *pCommitter, SBlock *pBlock, S
return
code
;
_err:
tsdbError
(
"vgId:%d tsdb commit table disk data failed since %s"
,
TD_VID
(
pCommitter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
tsdb commit table disk data failed since %s"
,
TD_VID
(
pCommitter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
...
...
@@ -614,7 +614,7 @@ static int32_t tsdbCommitTableDataEnd(SCommitter *pCommitter, int64_t suid, int6
return
code
;
_err:
tsdbError
(
"vgId:%d commit table data end failed since %s"
,
TD_VID
(
pCommitter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
commit table data end failed since %s"
,
TD_VID
(
pCommitter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
...
...
@@ -689,7 +689,7 @@ static int32_t tsdbMergeAsSubBlock(SCommitter *pCommitter, STbDataIter *pIter, S
return
code
;
_err:
tsdbError
(
"vgId:%d tsdb merge as subblock failed since %s"
,
TD_VID
(
pCommitter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
tsdb merge as subblock failed since %s"
,
TD_VID
(
pCommitter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
...
...
@@ -854,7 +854,7 @@ _exit:
return
code
;
_err:
tsdbError
(
"vgId:%d tsdb commit table data failed since %s"
,
TD_VID
(
pCommitter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
tsdb commit table data failed since %s"
,
TD_VID
(
pCommitter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
...
...
@@ -886,7 +886,7 @@ _exit:
return
code
;
_err:
tsdbError
(
"vgId:%d commit file data end failed since %s"
,
TD_VID
(
pCommitter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
commit file data end failed since %s"
,
TD_VID
(
pCommitter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
...
...
@@ -962,7 +962,7 @@ static int32_t tsdbCommitFileData(SCommitter *pCommitter) {
return
code
;
_err:
tsdbError
(
"vgId:%d commit file data failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
commit file data failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbDataFReaderClose
(
&
pCommitter
->
dReader
.
pReader
);
tsdbDataFWriterClose
(
&
pCommitter
->
dWriter
.
pWriter
,
0
);
return
code
;
...
...
@@ -994,7 +994,7 @@ static int32_t tsdbStartCommit(STsdb *pTsdb, SCommitter *pCommitter) {
return
code
;
_err:
tsdbError
(
"vgId:%d tsdb start commit failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
tsdb start commit failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
...
...
@@ -1060,12 +1060,12 @@ static int32_t tsdbCommitData(SCommitter *pCommitter) {
tsdbCommitDataEnd
(
pCommitter
);
_exit:
tsdbDebug
(
"vgId:%d commit data done, nRow:%"
PRId64
,
TD_VID
(
pTsdb
->
pVnode
),
pMemTable
->
nRow
);
tsdbDebug
(
"vgId:%d
,
commit data done, nRow:%"
PRId64
,
TD_VID
(
pTsdb
->
pVnode
),
pMemTable
->
nRow
);
return
code
;
_err:
tsdbCommitDataEnd
(
pCommitter
);
tsdbError
(
"vgId:%d commit data failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
commit data failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
...
...
@@ -1149,11 +1149,11 @@ static int32_t tsdbCommitDel(SCommitter *pCommitter) {
}
_exit:
tsdbDebug
(
"vgId:%d commit del done, nDel:%"
PRId64
,
TD_VID
(
pTsdb
->
pVnode
),
pMemTable
->
nDel
);
tsdbDebug
(
"vgId:%d
,
commit del done, nDel:%"
PRId64
,
TD_VID
(
pTsdb
->
pVnode
),
pMemTable
->
nDel
);
return
code
;
_err:
tsdbError
(
"vgId:%d commit del failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
commit del failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
...
...
@@ -1185,10 +1185,10 @@ static int32_t tsdbEndCommit(SCommitter *pCommitter, int32_t eno) {
tsdbUnrefMemTable
(
pMemTable
);
tsdbFSDestroy
(
&
pCommitter
->
fs
);
tsdbInfo
(
"vgId:%d tsdb end commit"
,
TD_VID
(
pTsdb
->
pVnode
));
tsdbInfo
(
"vgId:%d
,
tsdb end commit"
,
TD_VID
(
pTsdb
->
pVnode
));
return
code
;
_err:
tsdbError
(
"vgId:%d tsdb end commit failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
tsdb end commit failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
source/dnode/vnode/src/tsdb/tsdbFS.c
浏览文件 @
b683754f
...
...
@@ -78,7 +78,7 @@ static int32_t tsdbGnrtCurrent(STsdb *pTsdb, STsdbFS *pFS, char *fname) {
return
code
;
_err:
tsdbError
(
"vgId:%d tsdb gnrt current failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
tsdb gnrt current failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
if
(
pData
)
taosMemoryFree
(
pData
);
return
code
;
}
...
...
@@ -152,7 +152,7 @@ _err:
// return code;
// _err:
// tsdbError("vgId:%d tsdb apply disk file set change failed since %s", TD_VID(pFS->pTsdb->pVnode), tstrerror(code));
// tsdbError("vgId:%d
,
tsdb apply disk file set change failed since %s", TD_VID(pFS->pTsdb->pVnode), tstrerror(code));
// return code;
// }
...
...
@@ -181,7 +181,7 @@ _err:
// return code;
// _err:
// tsdbError("vgId:%d tsdb apply del file change failed since %s", TD_VID(pFS->pTsdb->pVnode), tstrerror(code));
// tsdbError("vgId:%d
,
tsdb apply del file change failed since %s", TD_VID(pFS->pTsdb->pVnode), tstrerror(code));
// return code;
// }
...
...
@@ -241,7 +241,7 @@ _err:
// return code;
// _err:
// tsdbError("vgId:%d tsdb fs apply disk change failed sicne %s", TD_VID(pFS->pTsdb->pVnode), tstrerror(code));
// tsdbError("vgId:%d
,
tsdb fs apply disk change failed sicne %s", TD_VID(pFS->pTsdb->pVnode), tstrerror(code));
// return code;
// }
...
...
@@ -342,7 +342,7 @@ static int32_t tsdbScanAndTryFixFS(STsdb *pTsdb) {
return
code
;
_err:
tsdbError
(
"vgId:%d tsdb scan and try fix fs failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
tsdb scan and try fix fs failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
...
...
@@ -509,7 +509,7 @@ int32_t tsdbFSOpen(STsdb *pTsdb) {
return
code
;
_err:
tsdbError
(
"vgId:%d tsdb fs open failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
tsdb fs open failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
...
...
@@ -734,7 +734,7 @@ int32_t tsdbFSCommit1(STsdb *pTsdb, STsdbFS *pFSNew) {
return
code
;
_err:
tsdbError
(
"vgId:%d tsdb fs commit phase 1 failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
tsdb fs commit phase 1 failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
...
...
@@ -980,7 +980,7 @@ int32_t tsdbFSCommit2(STsdb *pTsdb, STsdbFS *pFSNew) {
return
code
;
_err:
tsdbError
(
"vgId:%d tsdb fs commit phase 2 failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
tsdb fs commit phase 2 failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
...
...
source/dnode/vnode/src/tsdb/tsdbFile.c
浏览文件 @
b683754f
...
...
@@ -176,7 +176,7 @@ int32_t tsdbDFileRollback(STsdb *pTsdb, SDFileSet *pSet, EDataFileT ftype) {
return
code
;
_err:
tsdbError
(
"vgId:%d tsdb rollback file failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
tsdb rollback file failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
...
...
source/dnode/vnode/src/tsdb/tsdbMemTable.c
浏览文件 @
b683754f
...
...
@@ -374,7 +374,7 @@ static int32_t tsdbGetOrCreateTbData(SMemTable *pMemTable, tb_uid_t suid, tb_uid
p
=
taosArrayInsert
(
pMemTable
->
aTbData
,
idx
,
&
pTbData
);
taosWUnLockLatch
(
&
pMemTable
->
latch
);
tsdbDebug
(
"vgId:%d add table data %p at idx:%d"
,
TD_VID
(
pMemTable
->
pTsdb
->
pVnode
),
pTbData
,
idx
);
tsdbDebug
(
"vgId:%d
,
add table data %p at idx:%d"
,
TD_VID
(
pMemTable
->
pTsdb
->
pVnode
),
pTbData
,
idx
);
if
(
p
==
NULL
)
{
code
=
TSDB_CODE_OUT_OF_MEMORY
;
...
...
source/dnode/vnode/src/tsdb/tsdbRead.c
浏览文件 @
b683754f
...
...
@@ -3118,7 +3118,7 @@ int32_t tsdbTakeReadSnap(STsdb* pTsdb, STsdbReadSnap** ppSnap) {
goto
_exit
;
}
tsdbTrace
(
"vgId:%d take read snapshot"
,
TD_VID
(
pTsdb
->
pVnode
));
tsdbTrace
(
"vgId:%d
,
take read snapshot"
,
TD_VID
(
pTsdb
->
pVnode
));
_exit:
return
code
;
}
...
...
@@ -3137,5 +3137,5 @@ void tsdbUntakeReadSnap(STsdb* pTsdb, STsdbReadSnap* pSnap) {
taosMemoryFree
(
pSnap
);
}
tsdbTrace
(
"vgId:%d untake read snapshot"
,
TD_VID
(
pTsdb
->
pVnode
));
tsdbTrace
(
"vgId:%d
,
untake read snapshot"
,
TD_VID
(
pTsdb
->
pVnode
));
}
source/dnode/vnode/src/tsdb/tsdbReaderWriter.c
浏览文件 @
b683754f
...
...
@@ -55,7 +55,7 @@ int32_t tsdbDelFWriterOpen(SDelFWriter **ppWriter, SDelFile *pFile, STsdb *pTsdb
return
code
;
_err:
tsdbError
(
"vgId:%d failed to open del file writer since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
failed to open del file writer since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
*
ppWriter
=
NULL
;
return
code
;
}
...
...
@@ -80,7 +80,7 @@ int32_t tsdbDelFWriterClose(SDelFWriter **ppWriter, int8_t sync) {
return
code
;
_err:
tsdbError
(
"vgId:%d failed to close del file writer since %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
failed to close del file writer since %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
...
...
@@ -133,7 +133,7 @@ int32_t tsdbWriteDelData(SDelFWriter *pWriter, SArray *aDelData, uint8_t **ppBuf
return
code
;
_err:
tsdbError
(
"vgId:%d failed to write del data since %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
failed to write del data since %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tFree
(
pBuf
);
return
code
;
}
...
...
@@ -184,7 +184,7 @@ int32_t tsdbWriteDelIdx(SDelFWriter *pWriter, SArray *aDelIdx, uint8_t **ppBuf)
return
code
;
_err:
tsdbError
(
"vgId:%d write del idx failed since %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
write del idx failed since %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tFree
(
pBuf
);
return
code
;
}
...
...
@@ -216,7 +216,7 @@ int32_t tsdbUpdateDelFileHdr(SDelFWriter *pWriter) {
return
code
;
_err:
tsdbError
(
"vgId:%d update del file hdr failed since %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
update del file hdr failed since %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
...
...
@@ -283,7 +283,7 @@ _exit:
return
code
;
_err:
tsdbError
(
"vgId:%d del file reader open failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
del file reader open failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
*
ppReader
=
NULL
;
return
code
;
}
...
...
@@ -365,7 +365,7 @@ int32_t tsdbReadDelData(SDelFReader *pReader, SDelIdx *pDelIdx, SArray *aDelData
return
code
;
_err:
tsdbError
(
"vgId:%d read del data failed since %s"
,
TD_VID
(
pReader
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
read del data failed since %s"
,
TD_VID
(
pReader
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tFree
(
pBuf
);
return
code
;
}
...
...
@@ -428,7 +428,7 @@ int32_t tsdbReadDelIdx(SDelFReader *pReader, SArray *aDelIdx, uint8_t **ppBuf) {
return
code
;
_err:
tsdbError
(
"vgId:%d read del idx failed since %s"
,
TD_VID
(
pReader
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
read del idx failed since %s"
,
TD_VID
(
pReader
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tFree
(
pBuf
);
return
code
;
}
...
...
@@ -494,7 +494,7 @@ int32_t tsdbDataFReaderOpen(SDataFReader **ppReader, STsdb *pTsdb, SDFileSet *pS
return
code
;
_err:
tsdbError
(
"vgId:%d tsdb data file reader open failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
tsdb data file reader open failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
*
ppReader
=
NULL
;
return
code
;
}
...
...
@@ -530,7 +530,7 @@ _exit:
return
code
;
_err:
tsdbError
(
"vgId:%d data file reader close failed since %s"
,
TD_VID
((
*
ppReader
)
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
data file reader close failed since %s"
,
TD_VID
((
*
ppReader
)
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
...
...
@@ -592,7 +592,7 @@ int32_t tsdbReadBlockIdx(SDataFReader *pReader, SArray *aBlockIdx, uint8_t **ppB
return
code
;
_err:
tsdbError
(
"vgId:%d read block idx failed since %s"
,
TD_VID
(
pReader
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
read block idx failed since %s"
,
TD_VID
(
pReader
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tFree
(
pBuf
);
return
code
;
}
...
...
@@ -653,7 +653,7 @@ int32_t tsdbReadBlock(SDataFReader *pReader, SBlockIdx *pBlockIdx, SMapData *mBl
return
code
;
_err:
tsdbError
(
"vgId:%d read block failed since %s"
,
TD_VID
(
pReader
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
read block failed since %s"
,
TD_VID
(
pReader
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tFree
(
pBuf
);
return
code
;
}
...
...
@@ -1001,7 +1001,7 @@ int32_t tsdbReadColData(SDataFReader *pReader, SBlockIdx *pBlockIdx, SBlock *pBl
return
code
;
_err:
tsdbError
(
"vgId:%d tsdb read col data failed since %s"
,
TD_VID
(
pReader
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
tsdb read col data failed since %s"
,
TD_VID
(
pReader
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tFree
(
pBuf1
);
tFree
(
pBuf2
);
return
code
;
...
...
@@ -1084,7 +1084,7 @@ static int32_t tsdbReadSubBlockData(SDataFReader *pReader, SBlockIdx *pBlockIdx,
return
code
;
_err:
tsdbError
(
"vgId:%d tsdb read sub block data failed since %s"
,
TD_VID
(
pReader
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
tsdb read sub block data failed since %s"
,
TD_VID
(
pReader
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
taosArrayDestroy
(
aBlockCol
);
return
code
;
}
...
...
@@ -1149,7 +1149,7 @@ int32_t tsdbReadBlockData(SDataFReader *pReader, SBlockIdx *pBlockIdx, SBlock *p
return
code
;
_err:
tsdbError
(
"vgId:%d tsdb read block data failed since %s"
,
TD_VID
(
pReader
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
tsdb read block data failed since %s"
,
TD_VID
(
pReader
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
if
(
pBuf1
)
tFree
(
pBuf1
);
if
(
pBuf2
)
tFree
(
pBuf2
);
return
code
;
...
...
@@ -1205,7 +1205,7 @@ int32_t tsdbReadBlockSma(SDataFReader *pReader, SBlock *pBlock, SArray *aColumnD
return
code
;
_err:
tsdbError
(
"vgId:%d read block sma failed since %s"
,
TD_VID
(
pReader
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
read block sma failed since %s"
,
TD_VID
(
pReader
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tFree
(
pBuf
);
return
code
;
}
...
...
@@ -1350,7 +1350,7 @@ int32_t tsdbDataFWriterOpen(SDataFWriter **ppWriter, STsdb *pTsdb, SDFileSet *pS
return
code
;
_err:
tsdbError
(
"vgId:%d tsdb data file writer open failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
tsdb data file writer open failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
*
ppWriter
=
NULL
;
return
code
;
}
...
...
@@ -1409,7 +1409,7 @@ _exit:
return
code
;
_err:
tsdbError
(
"vgId:%d data file writer close failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
data file writer close failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
...
...
@@ -1489,7 +1489,7 @@ int32_t tsdbUpdateDFileSetHeader(SDataFWriter *pWriter) {
return
code
;
_err:
tsdbError
(
"vgId:%d update DFileSet header failed since %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
update DFileSet header failed since %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
...
...
@@ -1538,7 +1538,7 @@ int32_t tsdbWriteBlockIdx(SDataFWriter *pWriter, SArray *aBlockIdx, uint8_t **pp
return
code
;
_err:
tsdbError
(
"vgId:%d write block idx failed since %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
write block idx failed since %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tFree
(
pBuf
);
return
code
;
}
...
...
@@ -1583,13 +1583,13 @@ int32_t tsdbWriteBlock(SDataFWriter *pWriter, SMapData *mBlock, uint8_t **ppBuf,
pHeadFile
->
size
+=
size
;
tFree
(
pBuf
);
tsdbTrace
(
"vgId:%d write block, offset:%"
PRId64
" size:%"
PRId64
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
pBlockIdx
->
offset
,
tsdbTrace
(
"vgId:%d
,
write block, offset:%"
PRId64
" size:%"
PRId64
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
pBlockIdx
->
offset
,
pBlockIdx
->
size
);
return
code
;
_err:
tFree
(
pBuf
);
tsdbError
(
"vgId:%d write block failed since %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
write block failed since %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
...
...
@@ -1958,7 +1958,7 @@ _exit:
return
code
;
_err:
tsdbError
(
"vgId:%d write block data failed since %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
write block data failed since %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
tstrerror
(
code
));
tFree
(
pBuf1
);
tFree
(
pBuf2
);
taosArrayDestroy
(
aBlockCol
);
...
...
@@ -2073,6 +2073,6 @@ int32_t tsdbDFileSetCopy(STsdb *pTsdb, SDFileSet *pSetFrom, SDFileSet *pSetTo) {
return
code
;
_err:
tsdbError
(
"vgId:%d tsdb DFileSet copy failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
tsdb DFileSet copy failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
\ No newline at end of file
source/dnode/vnode/src/tsdb/tsdbRetention.c
浏览文件 @
b683754f
...
...
@@ -106,7 +106,7 @@ _exit:
return
code
;
_err:
tsdbError
(
"vgId:%d tsdb do retention failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
tsdbError
(
"vgId:%d
,
tsdb do retention failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
tstrerror
(
code
));
ASSERT
(
0
);
// tsdbFSRollback(pTsdb->pFS);
return
code
;
...
...
source/dnode/vnode/src/tsdb/tsdbSnapshot.c
浏览文件 @
b683754f
...
...
@@ -63,7 +63,7 @@ static int32_t tsdbSnapReadData(STsdbSnapReader* pReader, uint8_t** ppData) {
pReader
->
iBlockIdx
=
0
;
pReader
->
pBlockIdx
=
NULL
;
tsdbInfo
(
"vgId:%d vnode snapshot tsdb open data file to read for %s, fid:%d"
,
TD_VID
(
pTsdb
->
pVnode
),
pTsdb
->
path
,
tsdbInfo
(
"vgId:%d
,
vnode snapshot tsdb open data file to read for %s, fid:%d"
,
TD_VID
(
pTsdb
->
pVnode
),
pTsdb
->
path
,
pReader
->
fid
);
}
...
...
@@ -141,7 +141,7 @@ static int32_t tsdbSnapReadData(STsdbSnapReader* pReader, uint8_t** ppData) {
tPutBlockData
((
uint8_t
*
)(
&
pId
[
1
]),
&
pReader
->
nBlockData
);
tsdbInfo
(
"vgId:%d vnode snapshot read data for %s, fid:%d suid:%"
PRId64
" uid:%"
PRId64
tsdbInfo
(
"vgId:%d
,
vnode snapshot read data for %s, fid:%d suid:%"
PRId64
" uid:%"
PRId64
" iBlock:%d minVersion:%d maxVersion:%d nRow:%d out of %d size:%d"
,
TD_VID
(
pTsdb
->
pVnode
),
pTsdb
->
path
,
pReader
->
fid
,
pReader
->
pBlockIdx
->
suid
,
pReader
->
pBlockIdx
->
uid
,
pReader
->
iBlock
-
1
,
pBlock
->
minVersion
,
pBlock
->
maxVersion
,
pReader
->
nBlockData
.
nRow
,
pBlock
->
nRow
,
...
...
@@ -156,7 +156,7 @@ _exit:
return
code
;
_err:
tsdbError
(
"vgId:%d vnode snapshot tsdb read data for %s failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
pTsdb
->
path
,
tsdbError
(
"vgId:%d
,
vnode snapshot tsdb read data for %s failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
pTsdb
->
path
,
tstrerror
(
code
));
return
code
;
}
...
...
@@ -231,7 +231,7 @@ static int32_t tsdbSnapReadDel(STsdbSnapReader* pReader, uint8_t** ppData) {
n
+=
tPutDelData
((
*
ppData
)
+
n
,
pDelData
);
}
tsdbInfo
(
"vgId:%d vnode snapshot tsdb read del data for %s, suid:%"
PRId64
" uid:%d"
PRId64
" size:%d"
,
tsdbInfo
(
"vgId:%d
,
vnode snapshot tsdb read del data for %s, suid:%"
PRId64
" uid:%d"
PRId64
" size:%d"
,
TD_VID
(
pTsdb
->
pVnode
),
pTsdb
->
path
,
pDelIdx
->
suid
,
pDelIdx
->
uid
,
size
);
break
;
...
...
@@ -241,7 +241,7 @@ _exit:
return
code
;
_err:
tsdbError
(
"vgId:%d vnode snapshot tsdb read del for %s failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
pTsdb
->
pVnode
,
tsdbError
(
"vgId:%d
,
vnode snapshot tsdb read del for %s failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
pTsdb
->
pVnode
,
tstrerror
(
code
));
return
code
;
}
...
...
@@ -302,12 +302,12 @@ int32_t tsdbSnapReaderOpen(STsdb* pTsdb, int64_t sver, int64_t ever, int8_t type
goto
_err
;
}
tsdbInfo
(
"vgId:%d vnode snapshot tsdb reader opened for %s"
,
TD_VID
(
pTsdb
->
pVnode
),
pTsdb
->
path
);
tsdbInfo
(
"vgId:%d
,
vnode snapshot tsdb reader opened for %s"
,
TD_VID
(
pTsdb
->
pVnode
),
pTsdb
->
path
);
*
ppReader
=
pReader
;
return
code
;
_err:
tsdbError
(
"vgId:%d vnode snapshot tsdb reader open for %s failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
pTsdb
->
path
,
tsdbError
(
"vgId:%d
,
vnode snapshot tsdb reader open for %s failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
pTsdb
->
path
,
tstrerror
(
code
));
*
ppReader
=
NULL
;
return
code
;
...
...
@@ -333,7 +333,7 @@ int32_t tsdbSnapReaderClose(STsdbSnapReader** ppReader) {
tsdbFSUnref
(
pReader
->
pTsdb
,
&
pReader
->
fs
);
tsdbInfo
(
"vgId:%d vnode snapshot tsdb reader closed for %s"
,
TD_VID
(
pReader
->
pTsdb
->
pVnode
),
pReader
->
pTsdb
->
path
);
tsdbInfo
(
"vgId:%d
,
vnode snapshot tsdb reader closed for %s"
,
TD_VID
(
pReader
->
pTsdb
->
pVnode
),
pReader
->
pTsdb
->
path
);
taosMemoryFree
(
pReader
);
*
ppReader
=
NULL
;
...
...
@@ -374,11 +374,11 @@ int32_t tsdbSnapRead(STsdbSnapReader* pReader, uint8_t** ppData) {
}
_exit:
tsdbDebug
(
"vgId:%d vnode snapshot tsdb read for %s"
,
TD_VID
(
pReader
->
pTsdb
->
pVnode
),
pReader
->
pTsdb
->
path
);
tsdbDebug
(
"vgId:%d
,
vnode snapshot tsdb read for %s"
,
TD_VID
(
pReader
->
pTsdb
->
pVnode
),
pReader
->
pTsdb
->
path
);
return
code
;
_err:
tsdbError
(
"vgId:%d vnode snapshot tsdb read for %s failed since %s"
,
TD_VID
(
pReader
->
pTsdb
->
pVnode
),
tsdbError
(
"vgId:%d
,
vnode snapshot tsdb read for %s failed since %s"
,
TD_VID
(
pReader
->
pTsdb
->
pVnode
),
pReader
->
pTsdb
->
path
,
tstrerror
(
code
));
return
code
;
}
...
...
@@ -444,7 +444,7 @@ static int32_t tsdbSnapWriteAppendData(STsdbSnapWriter* pWriter, uint8_t* pData,
return
code
;
_err:
tsdbError
(
"vgId:%d tsdb snapshot write append data for %s failed since %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
tsdbError
(
"vgId:%d
,
tsdb snapshot write append data for %s failed since %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
pWriter
->
pTsdb
->
path
,
tstrerror
(
code
));
return
code
;
}
...
...
@@ -531,11 +531,11 @@ static int32_t tsdbSnapWriteTableDataEnd(STsdbSnapWriter* pWriter) {
}
_exit:
tsdbInfo
(
"vgId:%d tsdb snapshot write table data end for %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
pWriter
->
pTsdb
->
path
);
tsdbInfo
(
"vgId:%d
,
tsdb snapshot write table data end for %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
pWriter
->
pTsdb
->
path
);
return
code
;
_err:
tsdbError
(
"vgId:%d tsdb snapshot write table data end for %s failed since %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
tsdbError
(
"vgId:%d
,
tsdb snapshot write table data end for %s failed since %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
pWriter
->
pTsdb
->
path
,
tstrerror
(
code
));
return
code
;
}
...
...
@@ -582,7 +582,7 @@ _exit:
return
code
;
_err:
tsdbError
(
"vgId:%d tsdb snapshot move write table data for %s failed since %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
tsdbError
(
"vgId:%d
,
tsdb snapshot move write table data for %s failed since %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
pWriter
->
pTsdb
->
path
,
tstrerror
(
code
));
return
code
;
}
...
...
@@ -722,7 +722,7 @@ static int32_t tsdbSnapWriteTableDataImpl(STsdbSnapWriter* pWriter) {
return
code
;
_err:
tsdbError
(
"vgId:%d vnode snapshot tsdb write table data impl for %s failed since %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
tsdbError
(
"vgId:%d
,
vnode snapshot tsdb write table data impl for %s failed since %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
pWriter
->
pTsdb
->
path
,
tstrerror
(
code
));
return
code
;
}
...
...
@@ -808,11 +808,11 @@ static int32_t tsdbSnapWriteTableData(STsdbSnapWriter* pWriter, TABLEID id) {
if
(
code
)
goto
_err
;
_exit:
tsdbDebug
(
"vgId:%d vnode snapshot tsdb write data impl for %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
pWriter
->
pTsdb
->
path
);
tsdbDebug
(
"vgId:%d
,
vnode snapshot tsdb write data impl for %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
pWriter
->
pTsdb
->
path
);
return
code
;
_err:
tsdbError
(
"vgId:%d vnode snapshot tsdb write data impl for %s failed since %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
tsdbError
(
"vgId:%d
,
vnode snapshot tsdb write data impl for %s failed since %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
pWriter
->
pTsdb
->
path
,
tstrerror
(
code
));
return
code
;
}
...
...
@@ -848,11 +848,11 @@ static int32_t tsdbSnapWriteDataEnd(STsdbSnapWriter* pWriter) {
}
_exit:
tsdbInfo
(
"vgId:%d vnode snapshot tsdb writer data end for %s"
,
TD_VID
(
pTsdb
->
pVnode
),
pTsdb
->
path
);
tsdbInfo
(
"vgId:%d
,
vnode snapshot tsdb writer data end for %s"
,
TD_VID
(
pTsdb
->
pVnode
),
pTsdb
->
path
);
return
code
;
_err:
tsdbError
(
"vgId:%d vnode snapshot tsdb writer data end for %s failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
pTsdb
->
path
,
tsdbError
(
"vgId:%d
,
vnode snapshot tsdb writer data end for %s failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
pTsdb
->
path
,
tstrerror
(
code
));
return
code
;
}
...
...
@@ -936,12 +936,12 @@ static int32_t tsdbSnapWriteData(STsdbSnapWriter* pWriter, uint8_t* pData, uint3
code
=
tsdbSnapWriteTableData
(
pWriter
,
id
);
if
(
code
)
goto
_err
;
tsdbInfo
(
"vgId:%d vnode snapshot tsdb write data for %s, fid:%d suid:%"
PRId64
" uid:%"
PRId64
" nRow:%d"
,
tsdbInfo
(
"vgId:%d
,
vnode snapshot tsdb write data for %s, fid:%d suid:%"
PRId64
" uid:%"
PRId64
" nRow:%d"
,
TD_VID
(
pTsdb
->
pVnode
),
pTsdb
->
path
,
fid
,
id
.
suid
,
id
.
suid
,
pBlockData
->
nRow
);
return
code
;
_err:
tsdbError
(
"vgId:%d vnode snapshot tsdb write data for %s failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
pTsdb
->
path
,
tsdbError
(
"vgId:%d
,
vnode snapshot tsdb write data for %s failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
pTsdb
->
path
,
tstrerror
(
code
));
return
code
;
}
...
...
@@ -1032,7 +1032,7 @@ _exit:
return
code
;
_err:
tsdbError
(
"vgId:%d vnode snapshot tsdb write del for %s failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
pTsdb
->
path
,
tsdbError
(
"vgId:%d
,
vnode snapshot tsdb write del for %s failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
pTsdb
->
path
,
tstrerror
(
code
));
return
code
;
}
...
...
@@ -1074,11 +1074,11 @@ static int32_t tsdbSnapWriteDelEnd(STsdbSnapWriter* pWriter) {
}
_exit:
tsdbInfo
(
"vgId:%d vnode snapshot tsdb write del for %s end"
,
TD_VID
(
pTsdb
->
pVnode
),
pTsdb
->
path
);
tsdbInfo
(
"vgId:%d
,
vnode snapshot tsdb write del for %s end"
,
TD_VID
(
pTsdb
->
pVnode
),
pTsdb
->
path
);
return
code
;
_err:
tsdbError
(
"vgId:%d vnode snapshot tsdb write del end for %s failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
pTsdb
->
path
,
tsdbError
(
"vgId:%d
,
vnode snapshot tsdb write del end for %s failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
pTsdb
->
path
,
tstrerror
(
code
));
return
code
;
}
...
...
@@ -1147,10 +1147,10 @@ int32_t tsdbSnapWriterOpen(STsdb* pTsdb, int64_t sver, int64_t ever, STsdbSnapWr
*
ppWriter
=
pWriter
;
tsdbInfo
(
"vgId:%d tsdb snapshot writer open for %s succeed"
,
TD_VID
(
pTsdb
->
pVnode
),
pTsdb
->
path
);
tsdbInfo
(
"vgId:%d
,
tsdb snapshot writer open for %s succeed"
,
TD_VID
(
pTsdb
->
pVnode
),
pTsdb
->
path
);
return
code
;
_err:
tsdbError
(
"vgId:%d tsdb snapshot writer open for %s failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
pTsdb
->
path
,
tsdbError
(
"vgId:%d
,
tsdb snapshot writer open for %s failed since %s"
,
TD_VID
(
pTsdb
->
pVnode
),
pTsdb
->
path
,
tstrerror
(
code
));
*
ppWriter
=
NULL
;
return
code
;
...
...
@@ -1178,13 +1178,13 @@ int32_t tsdbSnapWriterClose(STsdbSnapWriter** ppWriter, int8_t rollback) {
if
(
code
)
goto
_err
;
}
tsdbInfo
(
"vgId:%d vnode snapshot tsdb writer close for %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
pWriter
->
pTsdb
->
path
);
tsdbInfo
(
"vgId:%d
,
vnode snapshot tsdb writer close for %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
pWriter
->
pTsdb
->
path
);
taosMemoryFree
(
pWriter
);
*
ppWriter
=
NULL
;
return
code
;
_err:
tsdbError
(
"vgId:%d vnode snapshot tsdb writer close for %s failed since %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
tsdbError
(
"vgId:%d
,
vnode snapshot tsdb writer close for %s failed since %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
pWriter
->
pTsdb
->
path
,
tstrerror
(
code
));
taosMemoryFree
(
pWriter
);
*
ppWriter
=
NULL
;
...
...
@@ -1215,11 +1215,11 @@ int32_t tsdbSnapWrite(STsdbSnapWriter* pWriter, uint8_t* pData, uint32_t nData)
}
_exit:
tsdbDebug
(
"vgId:%d tsdb snapshow write for %s succeed"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
pWriter
->
pTsdb
->
path
);
tsdbDebug
(
"vgId:%d
,
tsdb snapshow write for %s succeed"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
pWriter
->
pTsdb
->
path
);
return
code
;
_err:
tsdbError
(
"vgId:%d tsdb snapshow write for %s failed since %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
pWriter
->
pTsdb
->
path
,
tsdbError
(
"vgId:%d
,
tsdb snapshow write for %s failed since %s"
,
TD_VID
(
pWriter
->
pTsdb
->
pVnode
),
pWriter
->
pTsdb
->
path
,
tstrerror
(
code
));
return
code
;
}
source/dnode/vnode/src/vnd/vnodeCfg.c
浏览文件 @
b683754f
...
...
@@ -112,6 +112,12 @@ int vnodeEncodeConfig(const void *pObj, SJson *pJson) {
if
(
tjsonAddIntegerToObject
(
pJson
,
"syncCfg.replicaNum"
,
pCfg
->
syncCfg
.
replicaNum
)
<
0
)
return
-
1
;
if
(
tjsonAddIntegerToObject
(
pJson
,
"syncCfg.myIndex"
,
pCfg
->
syncCfg
.
myIndex
)
<
0
)
return
-
1
;
if
(
tjsonAddIntegerToObject
(
pJson
,
"vndStats.stables"
,
pCfg
->
vndStats
.
numOfSTables
)
<
0
)
return
-
1
;
if
(
tjsonAddIntegerToObject
(
pJson
,
"vndStats.ctables"
,
pCfg
->
vndStats
.
numOfCTables
)
<
0
)
return
-
1
;
if
(
tjsonAddIntegerToObject
(
pJson
,
"vndStats.ntables"
,
pCfg
->
vndStats
.
numOfNTables
)
<
0
)
return
-
1
;
if
(
tjsonAddIntegerToObject
(
pJson
,
"vndStats.timeseries"
,
pCfg
->
vndStats
.
numOfTimeSeries
)
<
0
)
return
-
1
;
SJson
*
pNodeInfoArr
=
tjsonCreateArray
();
tjsonAddItemToObject
(
pJson
,
"syncCfg.nodeInfo"
,
pNodeInfoArr
);
for
(
int
i
=
0
;
i
<
pCfg
->
syncCfg
.
replicaNum
;
++
i
)
{
...
...
@@ -210,6 +216,15 @@ int vnodeDecodeConfig(const SJson *pJson, void *pObj) {
tjsonGetNumberValue
(
pJson
,
"syncCfg.myIndex"
,
pCfg
->
syncCfg
.
myIndex
,
code
);
if
(
code
<
0
)
return
-
1
;
tjsonGetNumberValue
(
pJson
,
"vndStats.stables"
,
pCfg
->
vndStats
.
numOfSTables
,
code
);
if
(
code
<
0
)
return
-
1
;
tjsonGetNumberValue
(
pJson
,
"vndStats.ctables"
,
pCfg
->
vndStats
.
numOfCTables
,
code
);
if
(
code
<
0
)
return
-
1
;
tjsonGetNumberValue
(
pJson
,
"vndStats.ntables"
,
pCfg
->
vndStats
.
numOfNTables
,
code
);
if
(
code
<
0
)
return
-
1
;
tjsonGetNumberValue
(
pJson
,
"vndStats.timeseries"
,
pCfg
->
vndStats
.
numOfTimeSeries
,
code
);
if
(
code
<
0
)
return
-
1
;
SJson
*
pNodeInfoArr
=
tjsonGetObjectItem
(
pJson
,
"syncCfg.nodeInfo"
);
int
arraySize
=
tjsonGetArraySize
(
pNodeInfoArr
);
assert
(
arraySize
==
pCfg
->
syncCfg
.
replicaNum
);
...
...
source/dnode/vnode/src/vnd/vnodeQuery.c
浏览文件 @
b683754f
...
...
@@ -30,7 +30,7 @@ int vnodeGetTableMeta(SVnode *pVnode, SRpcMsg *pMsg, bool direct) {
SRpcMsg
rpcMsg
=
{
0
};
int32_t
code
=
0
;
int32_t
rspLen
=
0
;
void
*
pRsp
=
NULL
;
void
*
pRsp
=
NULL
;
SSchemaWrapper
schema
=
{
0
};
SSchemaWrapper
schemaTag
=
{
0
};
...
...
@@ -104,7 +104,7 @@ int vnodeGetTableMeta(SVnode *pVnode, SRpcMsg *pMsg, bool direct) {
}
else
{
pRsp
=
taosMemoryCalloc
(
1
,
rspLen
);
}
if
(
pRsp
==
NULL
)
{
code
=
TSDB_CODE_OUT_OF_MEMORY
;
goto
_exit
;
...
...
@@ -127,7 +127,7 @@ _exit:
}
else
{
*
pMsg
=
rpcMsg
;
}
taosMemoryFree
(
metaRsp
.
pSchemas
);
metaReaderClear
(
&
mer2
);
metaReaderClear
(
&
mer1
);
...
...
@@ -143,7 +143,7 @@ int vnodeGetTableCfg(SVnode *pVnode, SRpcMsg *pMsg, bool direct) {
SRpcMsg
rpcMsg
=
{
0
};
int32_t
code
=
0
;
int32_t
rspLen
=
0
;
void
*
pRsp
=
NULL
;
void
*
pRsp
=
NULL
;
SSchemaWrapper
schema
=
{
0
};
SSchemaWrapper
schemaTag
=
{
0
};
...
...
@@ -246,7 +246,7 @@ _exit:
}
else
{
*
pMsg
=
rpcMsg
;
}
tFreeSTableCfgRsp
(
&
cfgRsp
);
metaReaderClear
(
&
mer2
);
metaReaderClear
(
&
mer1
);
...
...
@@ -254,38 +254,38 @@ _exit:
}
int32_t
vnodeGetBatchMeta
(
SVnode
*
pVnode
,
SRpcMsg
*
pMsg
)
{
int32_t
code
=
0
;
int32_t
offset
=
0
;
int32_t
rspSize
=
0
;
SBatchReq
*
batchReq
=
(
SBatchReq
*
)
pMsg
->
pCont
;
int32_t
msgNum
=
ntohl
(
batchReq
->
msgNum
);
int32_t
code
=
0
;
int32_t
offset
=
0
;
int32_t
rspSize
=
0
;
SBatchReq
*
batchReq
=
(
SBatchReq
*
)
pMsg
->
pCont
;
int32_t
msgNum
=
ntohl
(
batchReq
->
msgNum
);
offset
+=
sizeof
(
SBatchReq
);
SBatchMsg
req
=
{
0
};
SBatchRsp
rsp
=
{
0
};
SRpcMsg
reqMsg
=
*
pMsg
;
SRpcMsg
rspMsg
=
{
0
};
void
*
pRsp
=
NULL
;
SRpcMsg
reqMsg
=
*
pMsg
;
SRpcMsg
rspMsg
=
{
0
};
void
*
pRsp
=
NULL
;
SArray
*
batchRsp
=
taosArrayInit
(
msgNum
,
sizeof
(
SBatchRsp
));
SArray
*
batchRsp
=
taosArrayInit
(
msgNum
,
sizeof
(
SBatchRsp
));
if
(
NULL
==
batchRsp
)
{
code
=
TSDB_CODE_OUT_OF_MEMORY
;
goto
_exit
;
}
for
(
int32_t
i
=
0
;
i
<
msgNum
;
++
i
)
{
req
.
msgType
=
ntohl
(
*
(
int32_t
*
)((
char
*
)
pMsg
->
pCont
+
offset
));
req
.
msgType
=
ntohl
(
*
(
int32_t
*
)((
char
*
)
pMsg
->
pCont
+
offset
));
offset
+=
sizeof
(
req
.
msgType
);
req
.
msgLen
=
ntohl
(
*
(
int32_t
*
)((
char
*
)
pMsg
->
pCont
+
offset
));
req
.
msgLen
=
ntohl
(
*
(
int32_t
*
)((
char
*
)
pMsg
->
pCont
+
offset
));
offset
+=
sizeof
(
req
.
msgLen
);
req
.
msg
=
(
char
*
)
pMsg
->
pCont
+
offset
;
req
.
msg
=
(
char
*
)
pMsg
->
pCont
+
offset
;
offset
+=
req
.
msgLen
;
reqMsg
.
msgType
=
req
.
msgType
;
reqMsg
.
pCont
=
req
.
msg
;
reqMsg
.
contLen
=
req
.
msgLen
;
switch
(
req
.
msgType
)
{
case
TDMT_VND_TABLE_META
:
vnodeGetTableMeta
(
pVnode
,
&
reqMsg
,
false
);
...
...
@@ -305,7 +305,7 @@ int32_t vnodeGetBatchMeta(SVnode *pVnode, SRpcMsg *pMsg) {
rsp
.
msgLen
=
reqMsg
.
contLen
;
rsp
.
rspCode
=
reqMsg
.
code
;
rsp
.
msg
=
reqMsg
.
pCont
;
taosArrayPush
(
batchRsp
,
&
rsp
);
rspSize
+=
sizeof
(
rsp
)
+
rsp
.
msgLen
-
POINTER_BYTES
;
...
...
@@ -313,25 +313,25 @@ int32_t vnodeGetBatchMeta(SVnode *pVnode, SRpcMsg *pMsg) {
rspSize
+=
sizeof
(
int32_t
);
offset
=
0
;
pRsp
=
rpcMallocCont
(
rspSize
);
if
(
pRsp
==
NULL
)
{
code
=
TSDB_CODE_OUT_OF_MEMORY
;
goto
_exit
;
}
*
(
int32_t
*
)((
char
*
)
pRsp
+
offset
)
=
htonl
(
msgNum
);
*
(
int32_t
*
)((
char
*
)
pRsp
+
offset
)
=
htonl
(
msgNum
);
offset
+=
sizeof
(
msgNum
);
for
(
int32_t
i
=
0
;
i
<
msgNum
;
++
i
)
{
SBatchRsp
*
p
=
taosArrayGet
(
batchRsp
,
i
);
*
(
int32_t
*
)((
char
*
)
pRsp
+
offset
)
=
htonl
(
p
->
reqType
);
*
(
int32_t
*
)((
char
*
)
pRsp
+
offset
)
=
htonl
(
p
->
reqType
);
offset
+=
sizeof
(
p
->
reqType
);
*
(
int32_t
*
)((
char
*
)
pRsp
+
offset
)
=
htonl
(
p
->
msgLen
);
*
(
int32_t
*
)((
char
*
)
pRsp
+
offset
)
=
htonl
(
p
->
msgLen
);
offset
+=
sizeof
(
p
->
msgLen
);
*
(
int32_t
*
)((
char
*
)
pRsp
+
offset
)
=
htonl
(
p
->
rspCode
);
*
(
int32_t
*
)((
char
*
)
pRsp
+
offset
)
=
htonl
(
p
->
rspCode
);
offset
+=
sizeof
(
p
->
rspCode
);
memcpy
((
char
*
)
pRsp
+
offset
,
p
->
msg
,
p
->
msgLen
);
memcpy
((
char
*
)
pRsp
+
offset
,
p
->
msg
,
p
->
msgLen
);
offset
+=
p
->
msgLen
;
taosMemoryFreeClear
(
p
->
msg
);
...
...
@@ -418,6 +418,85 @@ int32_t vnodeGetCtbIdList(SVnode *pVnode, int64_t suid, SArray *list) {
return
TSDB_CODE_SUCCESS
;
}
int32_t
vnodeGetCtbNum
(
SVnode
*
pVnode
,
int64_t
suid
,
int64_t
*
num
)
{
SMCtbCursor
*
pCur
=
metaOpenCtbCursor
(
pVnode
->
pMeta
,
suid
);
if
(
!
pCur
)
{
return
TSDB_CODE_FAILED
;
}
*
num
=
0
;
while
(
1
)
{
tb_uid_t
id
=
metaCtbCursorNext
(
pCur
);
if
(
id
==
0
)
{
break
;
}
++
(
*
num
);
}
metaCloseCtbCursor
(
pCur
);
return
TSDB_CODE_SUCCESS
;
}
static
int32_t
vnodeGetStbColumnNum
(
SVnode
*
pVnode
,
tb_uid_t
suid
,
int
*
num
)
{
STSchema
*
pTSchema
=
metaGetTbTSchema
(
pVnode
->
pMeta
,
suid
,
-
1
);
// metaGetTbTSchemaEx(pVnode->pMeta, suid, suid, -1, &pTSchema);
*
num
=
pTSchema
->
numOfCols
;
taosMemoryFree
(
pTSchema
);
return
TSDB_CODE_SUCCESS
;
}
int32_t
vnodeGetTimeSeriesNum
(
SVnode
*
pVnode
,
int64_t
*
num
)
{
SMStbCursor
*
pCur
=
metaOpenStbCursor
(
pVnode
->
pMeta
,
0
);
if
(
!
pCur
)
{
return
TSDB_CODE_FAILED
;
}
*
num
=
0
;
while
(
1
)
{
tb_uid_t
id
=
metaStbCursorNext
(
pCur
);
if
(
id
==
0
)
{
break
;
}
int64_t
ctbNum
=
0
;
vnodeGetCtbNum
(
pVnode
,
id
,
&
ctbNum
);
int
numOfCols
=
0
;
vnodeGetStbColumnNum
(
pVnode
,
id
,
&
numOfCols
);
*
num
+=
ctbNum
*
numOfCols
;
}
metaCloseStbCursor
(
pCur
);
return
TSDB_CODE_SUCCESS
;
}
int32_t
vnodeGetAllCtbNum
(
SVnode
*
pVnode
,
int64_t
*
num
)
{
SMStbCursor
*
pCur
=
metaOpenStbCursor
(
pVnode
->
pMeta
,
0
);
if
(
!
pCur
)
{
return
TSDB_CODE_FAILED
;
}
*
num
=
0
;
while
(
1
)
{
tb_uid_t
id
=
metaStbCursorNext
(
pCur
);
if
(
id
==
0
)
{
break
;
}
int64_t
ctbNum
=
0
;
vnodeGetCtbNum
(
pVnode
,
id
,
&
ctbNum
);
*
num
+=
ctbNum
;
}
metaCloseStbCursor
(
pCur
);
return
TSDB_CODE_SUCCESS
;
}
void
*
vnodeGetIdx
(
SVnode
*
pVnode
)
{
if
(
pVnode
==
NULL
)
{
return
NULL
;
...
...
source/dnode/vnode/src/vnd/vnodeSnapshot.c
浏览文件 @
b683754f
...
...
@@ -27,6 +27,16 @@ struct SVSnapReader {
// tsdb
int8_t
tsdbDone
;
STsdbSnapReader
*
pTsdbReader
;
// tq
int8_t
tqHandleDone
;
STqSnapReader
*
pTqSnapReader
;
int8_t
tqOffsetDone
;
STqOffsetReader
*
pTqOffsetReader
;
// stream
int8_t
streamTaskDone
;
SStreamTaskReader
*
pStreamTaskReader
;
int8_t
streamStateDone
;
SStreamStateReader
*
pStreamStateReader
;
// rsma
int8_t
rsmaDone
;
SRsmaSnapReader
*
pRsmaReader
;
...
...
@@ -45,12 +55,12 @@ int32_t vnodeSnapReaderOpen(SVnode *pVnode, int64_t sver, int64_t ever, SVSnapRe
pReader
->
sver
=
sver
;
pReader
->
ever
=
ever
;
vInfo
(
"vgId:%d vnode snapshot reader opened, sver:%"
PRId64
" ever:%"
PRId64
,
TD_VID
(
pVnode
),
sver
,
ever
);
vInfo
(
"vgId:%d
,
vnode snapshot reader opened, sver:%"
PRId64
" ever:%"
PRId64
,
TD_VID
(
pVnode
),
sver
,
ever
);
*
ppReader
=
pReader
;
return
code
;
_err:
vError
(
"vgId:%d vnode snapshot reader open failed since %s"
,
TD_VID
(
pVnode
),
tstrerror
(
code
));
vError
(
"vgId:%d
,
vnode snapshot reader open failed since %s"
,
TD_VID
(
pVnode
),
tstrerror
(
code
));
*
ppReader
=
NULL
;
return
code
;
}
...
...
@@ -70,7 +80,7 @@ int32_t vnodeSnapReaderClose(SVSnapReader *pReader) {
metaSnapReaderClose
(
&
pReader
->
pMetaReader
);
}
vInfo
(
"vgId:%d vnode snapshot reader closed"
,
TD_VID
(
pReader
->
pVnode
));
vInfo
(
"vgId:%d
,
vnode snapshot reader closed"
,
TD_VID
(
pReader
->
pVnode
));
taosMemoryFree
(
pReader
);
return
code
;
}
...
...
@@ -104,7 +114,8 @@ int32_t vnodeSnapRead(SVSnapReader *pReader, uint8_t **ppData, uint32_t *nData)
if
(
!
pReader
->
tsdbDone
)
{
// open if not
if
(
pReader
->
pTsdbReader
==
NULL
)
{
code
=
tsdbSnapReaderOpen
(
pReader
->
pVnode
->
pTsdb
,
pReader
->
sver
,
pReader
->
ever
,
SNAP_DATA_TSDB
,
&
pReader
->
pTsdbReader
);
code
=
tsdbSnapReaderOpen
(
pReader
->
pVnode
->
pTsdb
,
pReader
->
sver
,
pReader
->
ever
,
SNAP_DATA_TSDB
,
&
pReader
->
pTsdbReader
);
if
(
code
)
goto
_err
;
}
...
...
@@ -122,6 +133,52 @@ int32_t vnodeSnapRead(SVSnapReader *pReader, uint8_t **ppData, uint32_t *nData)
}
}
// TQ ================
if
(
!
pReader
->
tqHandleDone
)
{
if
(
pReader
->
pTqSnapReader
==
NULL
)
{
code
=
tqSnapReaderOpen
(
pReader
->
pVnode
->
pTq
,
pReader
->
sver
,
pReader
->
ever
,
&
pReader
->
pTqSnapReader
);
if
(
code
<
0
)
goto
_err
;
}
code
=
tqSnapRead
(
pReader
->
pTqSnapReader
,
ppData
);
if
(
code
)
{
goto
_err
;
}
else
{
if
(
*
ppData
)
{
goto
_exit
;
}
else
{
pReader
->
tqHandleDone
=
1
;
code
=
tqSnapReaderClose
(
&
pReader
->
pTqSnapReader
);
if
(
code
)
goto
_err
;
}
}
}
if
(
!
pReader
->
tqOffsetDone
)
{
if
(
pReader
->
pTqOffsetReader
==
NULL
)
{
code
=
tqOffsetReaderOpen
(
pReader
->
pVnode
->
pTq
,
pReader
->
sver
,
pReader
->
ever
,
&
pReader
->
pTqOffsetReader
);
if
(
code
<
0
)
goto
_err
;
}
code
=
tqOffsetSnapRead
(
pReader
->
pTqOffsetReader
,
ppData
);
if
(
code
)
{
goto
_err
;
}
else
{
if
(
*
ppData
)
{
goto
_exit
;
}
else
{
pReader
->
tqHandleDone
=
1
;
code
=
tqOffsetReaderClose
(
&
pReader
->
pTqOffsetReader
);
if
(
code
)
goto
_err
;
}
}
}
// STREAM ============
if
(
!
pReader
->
streamTaskDone
)
{
}
if
(
!
pReader
->
streamStateDone
)
{
}
// RSMA ==============
if
(
VND_IS_RSMA
(
pReader
->
pVnode
)
&&
!
pReader
->
rsmaDone
)
{
// open if not
...
...
@@ -154,10 +211,10 @@ _exit:
pReader
->
index
++
;
*
nData
=
sizeof
(
SSnapDataHdr
)
+
pHdr
->
size
;
pHdr
->
index
=
pReader
->
index
;
vInfo
(
"vgId:%d vnode snapshot read data,index:%"
PRId64
" type:%d nData:%d "
,
TD_VID
(
pReader
->
pVnode
),
vInfo
(
"vgId:%d
,
vnode snapshot read data,index:%"
PRId64
" type:%d nData:%d "
,
TD_VID
(
pReader
->
pVnode
),
pReader
->
index
,
pHdr
->
type
,
*
nData
);
}
else
{
vInfo
(
"vgId:%d vnode snapshot read data end, index:%"
PRId64
,
TD_VID
(
pReader
->
pVnode
),
pReader
->
index
);
vInfo
(
"vgId:%d
,
vnode snapshot read data end, index:%"
PRId64
,
TD_VID
(
pReader
->
pVnode
),
pReader
->
index
);
}
return
code
;
...
...
@@ -177,6 +234,12 @@ struct SVSnapWriter {
SMetaSnapWriter
*
pMetaSnapWriter
;
// tsdb
STsdbSnapWriter
*
pTsdbSnapWriter
;
// tq
STqSnapWriter
*
pTqSnapWriter
;
STqOffsetWriter
*
pTqOffsetWriter
;
// stream
SStreamTaskWriter
*
pStreamTaskWriter
;
SStreamStateWriter
*
pStreamStateWriter
;
// rsma
SRsmaSnapWriter
*
pRsmaSnapWriter
;
};
...
...
@@ -203,13 +266,13 @@ int32_t vnodeSnapWriterOpen(SVnode *pVnode, int64_t sver, int64_t ever, SVSnapWr
pVnode
->
state
.
commitID
++
;
pWriter
->
commitID
=
pVnode
->
state
.
commitID
;
vInfo
(
"vgId:%d vnode snapshot writer opened, sver:%"
PRId64
" ever:%"
PRId64
" commit id:%"
PRId64
,
TD_VID
(
pVnode
),
vInfo
(
"vgId:%d
,
vnode snapshot writer opened, sver:%"
PRId64
" ever:%"
PRId64
" commit id:%"
PRId64
,
TD_VID
(
pVnode
),
sver
,
ever
,
pWriter
->
commitID
);
*
ppWriter
=
pWriter
;
return
code
;
_err:
vError
(
"vgId:%d vnode snapshot writer open failed since %s"
,
TD_VID
(
pVnode
),
tstrerror
(
code
));
vError
(
"vgId:%d
,
vnode snapshot writer open failed since %s"
,
TD_VID
(
pVnode
),
tstrerror
(
code
));
*
ppWriter
=
NULL
;
return
code
;
}
...
...
@@ -259,12 +322,12 @@ int32_t vnodeSnapWriterClose(SVSnapWriter *pWriter, int8_t rollback, SSnapshot *
}
_exit:
vInfo
(
"vgId:%d vnode snapshot writer closed, rollback:%d"
,
TD_VID
(
pVnode
),
rollback
);
vInfo
(
"vgId:%d
,
vnode snapshot writer closed, rollback:%d"
,
TD_VID
(
pVnode
),
rollback
);
taosMemoryFree
(
pWriter
);
return
code
;
_err:
vError
(
"vgId:%d vnode snapshot writer close failed since %s"
,
TD_VID
(
pWriter
->
pVnode
),
tstrerror
(
code
));
vError
(
"vgId:%d
,
vnode snapshot writer close failed since %s"
,
TD_VID
(
pWriter
->
pVnode
),
tstrerror
(
code
));
return
code
;
}
...
...
@@ -277,7 +340,7 @@ int32_t vnodeSnapWrite(SVSnapWriter *pWriter, uint8_t *pData, uint32_t nData) {
ASSERT
(
pHdr
->
index
==
pWriter
->
index
+
1
);
pWriter
->
index
=
pHdr
->
index
;
vInfo
(
"vgId:%d vnode snapshot write data, index:%"
PRId64
" type:%d nData:%d"
,
TD_VID
(
pVnode
),
pHdr
->
index
,
vInfo
(
"vgId:%d
,
vnode snapshot write data, index:%"
PRId64
" type:%d nData:%d"
,
TD_VID
(
pVnode
),
pHdr
->
index
,
pHdr
->
type
,
nData
);
switch
(
pHdr
->
type
)
{
...
...
@@ -301,6 +364,14 @@ int32_t vnodeSnapWrite(SVSnapWriter *pWriter, uint8_t *pData, uint32_t nData) {
code
=
tsdbSnapWrite
(
pWriter
->
pTsdbSnapWriter
,
pData
,
nData
);
if
(
code
)
goto
_err
;
}
break
;
case
SNAP_DATA_TQ_HANDLE
:
{
}
break
;
case
SNAP_DATA_TQ_OFFSET
:
{
}
break
;
case
SNAP_DATA_STREAM_TASK
:
{
}
break
;
case
SNAP_DATA_STREAM_STATE
:
{
}
break
;
case
SNAP_DATA_RSMA1
:
case
SNAP_DATA_RSMA2
:
{
// rsma1/rsma2
...
...
@@ -329,7 +400,7 @@ _exit:
return
code
;
_err:
vError
(
"vgId:%d vnode snapshot write failed since %s, index:%"
PRId64
" type:%d nData:%d"
,
TD_VID
(
pVnode
),
vError
(
"vgId:%d
,
vnode snapshot write failed since %s, index:%"
PRId64
" type:%d nData:%d"
,
TD_VID
(
pVnode
),
tstrerror
(
code
),
pHdr
->
index
,
pHdr
->
type
,
nData
);
return
code
;
}
\ No newline at end of file
}
source/dnode/vnode/src/vnd/vnodeSync.c
浏览文件 @
b683754f
...
...
@@ -30,6 +30,7 @@ static inline void vnodeWaitBlockMsg(SVnode *pVnode, const SRpcMsg *pMsg) {
if
(
vnodeIsMsgBlock
(
pMsg
->
msgType
))
{
const
STraceId
*
trace
=
&
pMsg
->
info
.
traceId
;
vGTrace
(
"vgId:%d, msg:%p wait block, type:%s"
,
pVnode
->
config
.
vgId
,
pMsg
,
TMSG_INFO
(
pMsg
->
msgType
));
pVnode
->
blockCount
=
1
;
tsem_wait
(
&
pVnode
->
syncSem
);
}
}
...
...
@@ -37,8 +38,11 @@ static inline void vnodeWaitBlockMsg(SVnode *pVnode, const SRpcMsg *pMsg) {
static
inline
void
vnodePostBlockMsg
(
SVnode
*
pVnode
,
const
SRpcMsg
*
pMsg
)
{
if
(
vnodeIsMsgBlock
(
pMsg
->
msgType
))
{
const
STraceId
*
trace
=
&
pMsg
->
info
.
traceId
;
vGTrace
(
"vgId:%d, msg:%p post block, type:%s"
,
pVnode
->
config
.
vgId
,
pMsg
,
TMSG_INFO
(
pMsg
->
msgType
));
tsem_post
(
&
pVnode
->
syncSem
);
if
(
pVnode
->
blockCount
)
{
vGTrace
(
"vgId:%d, msg:%p post block, type:%s"
,
pVnode
->
config
.
vgId
,
pMsg
,
TMSG_INFO
(
pMsg
->
msgType
));
pVnode
->
blockCount
=
0
;
tsem_post
(
&
pVnode
->
syncSem
);
}
}
}
...
...
@@ -281,14 +285,15 @@ void vnodeApplyWriteMsg(SQueueInfo *pInfo, STaosQall *qall, int32_t numOfMsgs) {
for
(
int32_t
i
=
0
;
i
<
numOfMsgs
;
++
i
)
{
if
(
taosGetQitem
(
qall
,
(
void
**
)
&
pMsg
)
==
0
)
continue
;
const
STraceId
*
trace
=
&
pMsg
->
info
.
traceId
;
vG
Info
(
"vgId:%d, msg:%p get from vnode-apply queue, type:%s handle:%p index:%ld"
,
vgId
,
pMsg
,
TMSG_INFO
(
pMsg
->
msgType
),
pMsg
->
info
.
handle
,
pMsg
->
info
.
conn
.
applyIndex
);
vG
Trace
(
"vgId:%d, msg:%p get from vnode-apply queue, type:%s handle:%p index:%"
PRId64
,
vgId
,
pMsg
,
TMSG_INFO
(
pMsg
->
msgType
),
pMsg
->
info
.
handle
,
pMsg
->
info
.
conn
.
applyIndex
);
SRpcMsg
rsp
=
{.
code
=
pMsg
->
code
,
.
info
=
pMsg
->
info
};
if
(
rsp
.
code
==
0
)
{
if
(
vnodeProcessWriteMsg
(
pVnode
,
pMsg
,
pMsg
->
info
.
conn
.
applyIndex
,
&
rsp
)
<
0
)
{
rsp
.
code
=
terrno
;
vError
(
"vgId:%d, msg:%p failed to apply since %s"
,
vgId
,
pMsg
,
terrstr
());
vGError
(
"vgId:%d, msg:%p failed to apply since %s, index:%"
PRId64
,
vgId
,
pMsg
,
terrstr
(),
pMsg
->
info
.
conn
.
applyIndex
);
}
}
...
...
@@ -297,7 +302,7 @@ void vnodeApplyWriteMsg(SQueueInfo *pInfo, STaosQall *qall, int32_t numOfMsgs) {
tmsgSendRsp
(
&
rsp
);
}
vGTrace
(
"vgId:%d, msg:%p is freed, code:0x%x
"
,
vgId
,
pMsg
,
rsp
.
code
);
vGTrace
(
"vgId:%d, msg:%p is freed, code:0x%x
index:%"
PRId64
,
vgId
,
pMsg
,
rsp
.
code
,
pMsg
->
info
.
conn
.
applyIndex
);
rpcFreeCont
(
pMsg
->
pCont
);
taosFreeQitem
(
pMsg
);
}
...
...
@@ -611,6 +616,18 @@ static int32_t vnodeSnapshotStartWrite(struct SSyncFSM *pFsm, void *pParam, void
#ifdef USE_TSDB_SNAPSHOT
SVnode
*
pVnode
=
pFsm
->
data
;
SSnapshotParam
*
pSnapshotParam
=
pParam
;
do
{
int32_t
itemSize
=
tmsgGetQueueSize
(
&
pVnode
->
msgCb
,
pVnode
->
config
.
vgId
,
APPLY_QUEUE
);
if
(
itemSize
==
0
)
{
vDebug
(
"vgId:%d, apply queue is empty, start write snapshot"
,
pVnode
->
config
.
vgId
);
break
;
}
else
{
vDebug
(
"vgId:%d, %d items in apply queue, write snapshot later"
,
pVnode
->
config
.
vgId
);
taosMsleep
(
10
);
}
}
while
(
true
);
int32_t
code
=
vnodeSnapWriterOpen
(
pVnode
,
pSnapshotParam
->
start
,
pSnapshotParam
->
end
,
(
SVSnapWriter
**
)
ppWriter
);
return
code
;
#else
...
...
@@ -622,7 +639,10 @@ static int32_t vnodeSnapshotStartWrite(struct SSyncFSM *pFsm, void *pParam, void
static
int32_t
vnodeSnapshotStopWrite
(
struct
SSyncFSM
*
pFsm
,
void
*
pWriter
,
bool
isApply
,
SSnapshot
*
pSnapshot
)
{
#ifdef USE_TSDB_SNAPSHOT
SVnode
*
pVnode
=
pFsm
->
data
;
vDebug
(
"vgId:%d, stop write snapshot, isApply:%d"
,
pVnode
->
config
.
vgId
,
isApply
);
int32_t
code
=
vnodeSnapWriterClose
(
pWriter
,
!
isApply
,
pSnapshot
);
vDebug
(
"vgId:%d, apply snapshot to vnode, code:0x%x"
,
pVnode
->
config
.
vgId
,
code
);
return
code
;
#else
taosMemoryFree
(
pWriter
);
...
...
@@ -634,6 +654,7 @@ static int32_t vnodeSnapshotDoWrite(struct SSyncFSM *pFsm, void *pWriter, void *
#ifdef USE_TSDB_SNAPSHOT
SVnode
*
pVnode
=
pFsm
->
data
;
int32_t
code
=
vnodeSnapWrite
(
pWriter
,
pBuf
,
len
);
vTrace
(
"vgId:%d, write snapshot, len:%d"
,
pVnode
->
config
.
vgId
,
len
);
return
code
;
#else
return
0
;
...
...
@@ -674,7 +695,7 @@ int32_t vnodeSyncOpen(SVnode *pVnode, char *path) {
SSyncInfo
syncInfo
=
{
.
snapshotStrategy
=
SYNC_STRATEGY_WAL_FIRST
,
//.snapshotStrategy = SYNC_STRATEGY_NO_SNAPSHOT,
.
batchSize
=
1
0
,
.
batchSize
=
1
,
.
vgId
=
pVnode
->
config
.
vgId
,
.
isStandBy
=
pVnode
->
config
.
standby
,
.
syncCfg
=
pVnode
->
config
.
syncCfg
,
...
...
source/libs/command/src/command.c
浏览文件 @
b683754f
...
...
@@ -19,6 +19,7 @@
#include "scheduler.h"
#include "tdatablock.h"
#include "tglobal.h"
#include "tgrant.h"
extern
SConfig
*
tsCfg
;
...
...
@@ -563,7 +564,7 @@ int32_t setLocalVariablesResultIntoDataBlock(SSDataBlock* pBlock) {
for
(
int32_t
i
=
0
,
c
=
0
;
i
<
numOfCfg
;
++
i
,
c
=
0
)
{
SConfigItem
*
pItem
=
taosArrayGet
(
tsCfg
->
array
,
i
);
GRANT_CFG_SKIP
;
char
name
[
TSDB_CONFIG_OPTION_LEN
+
VARSTR_HEADER_SIZE
]
=
{
0
};
STR_WITH_MAXSIZE_TO_VARSTR
(
name
,
pItem
->
name
,
TSDB_CONFIG_OPTION_LEN
+
VARSTR_HEADER_SIZE
);
SColumnInfoData
*
pColInfo
=
taosArrayGet
(
pBlock
->
pDataBlock
,
c
++
);
...
...
source/libs/sync/src/syncIndexMgr.c
浏览文件 @
b683754f
...
...
@@ -68,7 +68,7 @@ void syncIndexMgrSetIndex(SSyncIndexMgr *pSyncIndexMgr, const SRaftId *pRaftId,
char
host
[
128
];
uint16_t
port
;
syncUtilU642Addr
(
pRaftId
->
addr
,
host
,
sizeof
(
host
),
&
port
);
sError
(
"vgId:%d index mgr set for %s:%d, index:%"
PRId64
" error"
,
pSyncIndexMgr
->
pSyncNode
->
vgId
,
host
,
port
,
index
);
sError
(
"vgId:%d
,
index mgr set for %s:%d, index:%"
PRId64
" error"
,
pSyncIndexMgr
->
pSyncNode
->
vgId
,
host
,
port
,
index
);
}
SyncIndex
syncIndexMgrGetIndex
(
SSyncIndexMgr
*
pSyncIndexMgr
,
const
SRaftId
*
pRaftId
)
{
...
...
@@ -172,7 +172,7 @@ void syncIndexMgrSetTerm(SSyncIndexMgr *pSyncIndexMgr, const SRaftId *pRaftId, S
char
host
[
128
];
uint16_t
port
;
syncUtilU642Addr
(
pRaftId
->
addr
,
host
,
sizeof
(
host
),
&
port
);
sError
(
"vgId:%d index mgr set for %s:%d, term:%"
PRIu64
" error"
,
pSyncIndexMgr
->
pSyncNode
->
vgId
,
host
,
port
,
term
);
sError
(
"vgId:%d
,
index mgr set for %s:%d, term:%"
PRIu64
" error"
,
pSyncIndexMgr
->
pSyncNode
->
vgId
,
host
,
port
,
term
);
}
SyncTerm
syncIndexMgrGetTerm
(
SSyncIndexMgr
*
pSyncIndexMgr
,
const
SRaftId
*
pRaftId
)
{
...
...
source/libs/sync/src/syncMain.c
浏览文件 @
b683754f
...
...
@@ -531,10 +531,10 @@ void syncGetEpSet(int64_t rid, SEpSet* pEpSet) {
snprintf
(
pEpSet
->
eps
[
i
].
fqdn
,
sizeof
(
pEpSet
->
eps
[
i
].
fqdn
),
"%s"
,
(
pSyncNode
->
pRaftCfg
->
cfg
.
nodeInfo
)[
i
].
nodeFqdn
);
pEpSet
->
eps
[
i
].
port
=
(
pSyncNode
->
pRaftCfg
->
cfg
.
nodeInfo
)[
i
].
nodePort
;
(
pEpSet
->
numOfEps
)
++
;
sInfo
(
"vgId:%d sync get epset: index:%d %s:%d"
,
pSyncNode
->
vgId
,
i
,
pEpSet
->
eps
[
i
].
fqdn
,
pEpSet
->
eps
[
i
].
port
);
sInfo
(
"vgId:%d
,
sync get epset: index:%d %s:%d"
,
pSyncNode
->
vgId
,
i
,
pEpSet
->
eps
[
i
].
fqdn
,
pEpSet
->
eps
[
i
].
port
);
}
pEpSet
->
inUse
=
pSyncNode
->
pRaftCfg
->
cfg
.
myIndex
;
sInfo
(
"vgId:%d sync get epset in-use:%d"
,
pSyncNode
->
vgId
,
pEpSet
->
inUse
);
sInfo
(
"vgId:%d
,
sync get epset in-use:%d"
,
pSyncNode
->
vgId
,
pEpSet
->
inUse
);
taosReleaseRef
(
tsNodeRefId
,
pSyncNode
->
rid
);
}
...
...
@@ -836,12 +836,12 @@ int32_t syncNodePropose(SSyncNode* pSyncNode, SRpcMsg* pMsg, bool isWeak) {
rpcFreeCont
(
rpcMsg
.
pCont
);
syncRespMgrDel
(
pSyncNode
->
pSyncRespMgr
,
seqNum
);
ret
=
1
;
sDebug
(
"vgId:%d optimized index:%"
PRId64
" success, msgtype:%s,%d"
,
pSyncNode
->
vgId
,
retIndex
,
sDebug
(
"vgId:%d
,
optimized index:%"
PRId64
" success, msgtype:%s,%d"
,
pSyncNode
->
vgId
,
retIndex
,
TMSG_INFO
(
pMsg
->
msgType
),
pMsg
->
msgType
);
}
else
{
ret
=
-
1
;
terrno
=
TSDB_CODE_SYN_INTERNAL_ERROR
;
sError
(
"vgId:%d optimized index:%"
PRId64
" error, msgtype:%s,%d"
,
pSyncNode
->
vgId
,
retIndex
,
sError
(
"vgId:%d
,
optimized index:%"
PRId64
" error, msgtype:%s,%d"
,
pSyncNode
->
vgId
,
retIndex
,
TMSG_INFO
(
pMsg
->
msgType
),
pMsg
->
msgType
);
}
...
...
source/libs/sync/src/syncRaftEntry.c
浏览文件 @
b683754f
...
...
@@ -204,14 +204,14 @@ void syncEntryLog2(char* s, const SSyncRaftEntry* pObj) {
SRaftEntryHashCache
*
raftCacheCreate
(
SSyncNode
*
pSyncNode
,
int32_t
maxCount
)
{
SRaftEntryHashCache
*
pCache
=
taosMemoryMalloc
(
sizeof
(
SRaftEntryHashCache
));
if
(
pCache
==
NULL
)
{
sError
(
"vgId:%d raft cache create error"
,
pSyncNode
->
vgId
);
sError
(
"vgId:%d
,
raft cache create error"
,
pSyncNode
->
vgId
);
return
NULL
;
}
pCache
->
pEntryHash
=
taosHashInit
(
sizeof
(
SyncIndex
),
taosGetDefaultHashFunction
(
TSDB_DATA_TYPE_BINARY
),
true
,
HASH_NO_LOCK
);
if
(
pCache
->
pEntryHash
==
NULL
)
{
sError
(
"vgId:%d raft cache create hash error"
,
pSyncNode
->
vgId
);
sError
(
"vgId:%d
,
raft cache create hash error"
,
pSyncNode
->
vgId
);
return
NULL
;
}
...
...
@@ -460,14 +460,14 @@ static void freeRaftEntry(void* param) {
SRaftEntryCache
*
raftEntryCacheCreate
(
SSyncNode
*
pSyncNode
,
int32_t
maxCount
)
{
SRaftEntryCache
*
pCache
=
taosMemoryMalloc
(
sizeof
(
SRaftEntryCache
));
if
(
pCache
==
NULL
)
{
sError
(
"vgId:%d raft cache create error"
,
pSyncNode
->
vgId
);
sError
(
"vgId:%d
,
raft cache create error"
,
pSyncNode
->
vgId
);
return
NULL
;
}
pCache
->
pSkipList
=
tSkipListCreate
(
MAX_SKIP_LIST_LEVEL
,
TSDB_DATA_TYPE_BINARY
,
sizeof
(
SyncIndex
),
cmpFn
,
SL_ALLOW_DUP_KEY
,
keyFn
);
if
(
pCache
->
pSkipList
==
NULL
)
{
sError
(
"vgId:%d raft cache create hash error"
,
pSyncNode
->
vgId
);
sError
(
"vgId:%d
,
raft cache create hash error"
,
pSyncNode
->
vgId
);
return
NULL
;
}
...
...
source/libs/sync/src/syncRaftLog.c
浏览文件 @
b683754f
...
...
@@ -244,7 +244,7 @@ static int32_t raftLogAppendEntry(struct SSyncLogStore* pLogStore, SSyncRaftEntr
SyncIndex writeIndex = raftLogWriteIndex(pLogStore);
if (pEntry->index != writeIndex) {
sError("vgId:%d wal write index error, entry-index:%" PRId64 " update to %" PRId64, pData->pSyncNode->vgId,
sError("vgId:%d
,
wal write index error, entry-index:%" PRId64 " update to %" PRId64, pData->pSyncNode->vgId,
pEntry->index, writeIndex);
pEntry->index = writeIndex;
}
...
...
@@ -359,7 +359,7 @@ static int32_t raftLogTruncate(struct SSyncLogStore* pLogStore, SyncIndex fromIn
const
char
*
errStr
=
tstrerror
(
err
);
int32_t
sysErr
=
errno
;
const
char
*
sysErrStr
=
strerror
(
errno
);
sError
(
"vgId:%d wal truncate error, from-index:%"
PRId64
", err:%d %X, msg:%s, syserr:%d, sysmsg:%s"
,
sError
(
"vgId:%d
,
wal truncate error, from-index:%"
PRId64
", err:%d %X, msg:%s, syserr:%d, sysmsg:%s"
,
pData
->
pSyncNode
->
vgId
,
fromIndex
,
err
,
err
,
errStr
,
sysErr
,
sysErrStr
);
ASSERT
(
0
);
...
...
@@ -544,7 +544,7 @@ int32_t logStoreTruncate(SSyncLogStore* pLogStore, SyncIndex fromIndex) {
const
char
*
errStr
=
tstrerror
(
err
);
int32_t
sysErr
=
errno
;
const
char
*
sysErrStr
=
strerror
(
errno
);
sError
(
"vgId:%d wal truncate error, from-index:%"
PRId64
", err:%d %X, msg:%s, syserr:%d, sysmsg:%s"
,
sError
(
"vgId:%d
,
wal truncate error, from-index:%"
PRId64
", err:%d %X, msg:%s, syserr:%d, sysmsg:%s"
,
pData
->
pSyncNode
->
vgId
,
fromIndex
,
err
,
err
,
errStr
,
sysErr
,
sysErrStr
);
ASSERT
(
0
);
...
...
@@ -587,7 +587,7 @@ int32_t logStoreUpdateCommitIndex(SSyncLogStore* pLogStore, SyncIndex index) {
const
char
*
errStr
=
tstrerror
(
err
);
int32_t
sysErr
=
errno
;
const
char
*
sysErrStr
=
strerror
(
errno
);
sError
(
"vgId:%d wal update commit index error, index:%"
PRId64
", err:%d %X, msg:%s, syserr:%d, sysmsg:%s"
,
sError
(
"vgId:%d
,
wal update commit index error, index:%"
PRId64
", err:%d %X, msg:%s, syserr:%d, sysmsg:%s"
,
pData
->
pSyncNode
->
vgId
,
index
,
err
,
err
,
errStr
,
sysErr
,
sysErrStr
);
ASSERT
(
0
);
...
...
source/libs/sync/src/syncReplication.c
浏览文件 @
b683754f
...
...
@@ -136,7 +136,7 @@ int32_t syncNodeAppendEntriesPeersSnapshot2(SSyncNode* pSyncNode) {
SyncIndex
newNextIndex
=
nextIndex
+
1
;
syncIndexMgrSetIndex
(
pSyncNode
->
pNextIndex
,
pDestId
,
newNextIndex
);
syncIndexMgrSetIndex
(
pSyncNode
->
pMatchIndex
,
pDestId
,
SYNC_INDEX_INVALID
);
sError
(
"vgId:%d sync get pre term error, nextIndex:%"
PRId64
", update next-index:%"
PRId64
sError
(
"vgId:%d
,
sync get pre term error, nextIndex:%"
PRId64
", update next-index:%"
PRId64
", match-index:%d, raftid:%"
PRId64
,
pSyncNode
->
vgId
,
nextIndex
,
newNextIndex
,
SYNC_INDEX_INVALID
,
pDestId
->
addr
);
...
...
@@ -228,7 +228,7 @@ int32_t syncNodeAppendEntriesPeersSnapshot(SSyncNode* pSyncNode) {
SyncIndex
newNextIndex
=
nextIndex
+
1
;
syncIndexMgrSetIndex
(
pSyncNode
->
pNextIndex
,
pDestId
,
newNextIndex
);
syncIndexMgrSetIndex
(
pSyncNode
->
pMatchIndex
,
pDestId
,
SYNC_INDEX_INVALID
);
sError
(
"vgId:%d sync get pre term error, nextIndex:%"
PRId64
", update next-index:%"
PRId64
sError
(
"vgId:%d
,
sync get pre term error, nextIndex:%"
PRId64
", update next-index:%"
PRId64
", match-index:%d, raftid:%"
PRId64
,
pSyncNode
->
vgId
,
nextIndex
,
newNextIndex
,
SYNC_INDEX_INVALID
,
pDestId
->
addr
);
...
...
source/libs/transport/src/transCli.c
浏览文件 @
b683754f
...
...
@@ -658,7 +658,6 @@ static void cliDestroyConn(SCliConn* conn, bool clear) {
QUEUE_REMOVE
(
&
conn
->
q
);
QUEUE_INIT
(
&
conn
->
q
);
transRemoveExHandle
(
transGetRefMgt
(),
conn
->
refId
);
transDestroyBuffer
(
&
conn
->
readBuf
);
conn
->
refId
=
-
1
;
if
(
conn
->
task
!=
NULL
)
transDQCancel
(((
SCliThrd
*
)
conn
->
hostThrd
)
->
timeoutQueue
,
conn
->
task
);
...
...
@@ -685,7 +684,7 @@ static void cliDestroy(uv_handle_t* handle) {
transQueueDestroy
(
&
conn
->
cliMsgs
);
tTrace
(
"%s conn %p destroy successfully"
,
CONN_GET_INST_LABEL
(
conn
),
conn
);
transReqQueueClear
(
&
conn
->
wreqQueue
);
transDestroyBuffer
(
&
conn
->
readBuf
);
taosMemoryFree
(
conn
);
}
static
bool
cliHandleNoResp
(
SCliConn
*
conn
)
{
...
...
source/libs/transport/src/transSvr.c
浏览文件 @
b683754f
...
...
@@ -830,7 +830,6 @@ static void destroyConn(SSvrConn* conn, bool clear) {
return
;
}
transDestroyBuffer
(
&
conn
->
readBuf
);
if
(
clear
)
{
if
(
!
uv_is_closing
((
uv_handle_t
*
)
conn
->
pTcp
))
{
tTrace
(
"conn %p to be destroyed"
,
conn
);
...
...
@@ -881,6 +880,7 @@ static void uvDestroyConn(uv_handle_t* handle) {
QUEUE_REMOVE
(
&
conn
->
queue
);
taosMemoryFree
(
conn
->
pTcp
);
destroyConnRegArg
(
conn
);
transDestroyBuffer
(
&
conn
->
readBuf
);
taosMemoryFree
(
conn
);
if
(
thrd
->
quit
&&
QUEUE_IS_EMPTY
(
&
thrd
->
conn
))
{
...
...
source/libs/wal/src/walRead.c
浏览文件 @
b683754f
...
...
@@ -78,7 +78,7 @@ int32_t walNextValidMsg(SWalReader *pReader) {
int64_t
endVer
=
pReader
->
cond
.
scanUncommited
?
lastVer
:
committedVer
;
endVer
=
TMIN
(
appliedVer
,
endVer
);
wDebug
(
"vgId:%d wal start to fetch, ver %ld, last ver %ld commit ver %ld, applied ver %ld, end ver %ld"
,
wDebug
(
"vgId:%d
,
wal start to fetch, ver %ld, last ver %ld commit ver %ld, applied ver %ld, end ver %ld"
,
pReader
->
pWal
->
cfg
.
vgId
,
fetchVer
,
lastVer
,
committedVer
,
appliedVer
,
endVer
);
pReader
->
curStopped
=
0
;
while
(
fetchVer
<=
endVer
)
{
...
...
@@ -190,7 +190,8 @@ int32_t walReadSeekVerImpl(SWalReader *pReader, int64_t ver) {
return
-
1
;
}
wDebug
(
"wal version reset from %ld(invalid: %d) to %ld"
,
pReader
->
curVersion
,
pReader
->
curInvalid
,
ver
);
wDebug
(
"vgId:%d, wal version reset from %"
PRId64
"(invalid: %d) to %"
PRId64
,
pReader
->
pWal
->
cfg
.
vgId
,
pReader
->
curVersion
,
pReader
->
curInvalid
,
ver
);
pReader
->
curVersion
=
ver
;
return
0
;
...
...
@@ -199,7 +200,7 @@ int32_t walReadSeekVerImpl(SWalReader *pReader, int64_t ver) {
int32_t
walReadSeekVer
(
SWalReader
*
pReader
,
int64_t
ver
)
{
SWal
*
pWal
=
pReader
->
pWal
;
if
(
!
pReader
->
curInvalid
&&
ver
==
pReader
->
curVersion
)
{
wDebug
(
"
wal version %ld match, no need to reset"
,
ver
);
wDebug
(
"
vgId:%d, wal version %"
PRId64
" match, no need to reset"
,
pReader
->
pWal
->
cfg
.
vgId
,
ver
);
return
0
;
}
...
...
@@ -311,7 +312,7 @@ static int32_t walFetchBodyNew(SWalReader *pRead) {
return
-
1
;
}
wDebug
(
"v
ersion %ld is fetched, cursor advance"
,
ver
);
wDebug
(
"v
gId:%d, version %"
PRId64
" is fetched, cursor advance"
,
pRead
->
pWal
->
cfg
.
vgId
,
ver
);
pRead
->
curVersion
=
ver
+
1
;
return
0
;
}
...
...
@@ -331,7 +332,7 @@ static int32_t walSkipFetchBodyNew(SWalReader *pRead) {
}
pRead
->
curVersion
++
;
wDebug
(
"v
ersion advance to %ld, skip fetch"
,
pRead
->
curVersion
);
wDebug
(
"v
gId:%d, version advance to %"
PRId64
", skip fetch"
,
pRead
->
pWal
->
cfg
.
vgId
,
pRead
->
curVersion
);
return
0
;
}
...
...
@@ -424,7 +425,7 @@ int32_t walFetchBody(SWalReader *pRead, SWalCkHead **ppHead) {
}
int32_t
walReadVer
(
SWalReader
*
pReader
,
int64_t
ver
)
{
wDebug
(
"vgId:%d wal start to read ver %ld"
,
pReader
->
pWal
->
cfg
.
vgId
,
ver
);
wDebug
(
"vgId:%d
,
wal start to read ver %ld"
,
pReader
->
pWal
->
cfg
.
vgId
,
ver
);
int64_t
contLen
;
int32_t
code
;
bool
seeked
=
false
;
...
...
source/libs/wal/src/walRef.c
浏览文件 @
b683754f
...
...
@@ -62,6 +62,11 @@ int32_t walRefVer(SWalRef *pRef, int64_t ver) {
return
0
;
}
int32_t
walPreRefVer
(
SWalRef
*
pRef
,
int64_t
ver
)
{
pRef
->
refVer
=
ver
;
return
0
;
}
void
walUnrefVer
(
SWalRef
*
pRef
)
{
pRef
->
refId
=
-
1
;
pRef
->
refFile
=
-
1
;
...
...
source/libs/wal/src/walWrite.c
浏览文件 @
b683754f
...
...
@@ -26,7 +26,7 @@ int32_t walRestoreFromSnapshot(SWal *pWal, int64_t ver) {
pIter
=
taosHashIterate
(
pWal
->
pRefHash
,
pIter
);
if
(
pIter
==
NULL
)
break
;
SWalRef
*
pRef
=
(
SWalRef
*
)
pIter
;
if
(
pRef
->
refVer
!=
-
1
)
{
if
(
pRef
->
refVer
!=
-
1
&&
pRef
->
refVer
<=
ver
)
{
taosHashCancelIterate
(
pWal
->
pRefHash
,
pIter
);
return
-
1
;
}
...
...
source/util/CMakeLists.txt
浏览文件 @
b683754f
configure_file
(
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/src/version.c.in"
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/src/version.c"
)
aux_source_directory
(
src UTIL_SRC
)
add_library
(
util STATIC
${
UTIL_SRC
}
)
if
(
DEFINED GRANT_CFG_INCLUDE_DIR
)
add_definitions
(
-DGRANTS_CFG
)
endif
()
target_include_directories
(
util
PUBLIC
"
${
TD_SOURCE_DIR
}
/include/util"
PRIVATE
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/inc"
PRIVATE
"
${
TD_SOURCE_DIR
}
/include/common"
PRIVATE
"
${
GRANT_CFG_INCLUDE_DIR
}
"
)
target_link_libraries
(
util
...
...
source/util/src/tconfig.c
浏览文件 @
b683754f
...
...
@@ -21,6 +21,7 @@
#include "tenv.h"
#include "cJSON.h"
#include "tjson.h"
#include "tgrant.h"
#define CFG_NAME_PRINT_LEN 24
#define CFG_SRC_PRINT_LEN 12
...
...
@@ -301,6 +302,7 @@ static int32_t cfgSetTfsItem(SConfig *pCfg, const char *name, const char *value,
}
int32_t
cfgSetItem
(
SConfig
*
pCfg
,
const
char
*
name
,
const
char
*
value
,
ECfgSrcType
stype
)
{
GRANT_CFG_SET
;
SConfigItem
*
pItem
=
cfgGetItem
(
pCfg
,
name
);
if
(
pItem
==
NULL
)
{
return
-
1
;
...
...
tests/system-test/0-others/taosdMonitor.py
浏览文件 @
b683754f
...
...
@@ -111,7 +111,7 @@ class RequestHandlerImpl(http.server.BaseHTTPRequestHandler):
if
"expire_time"
not
in
infoDict
[
"grant_info"
]
or
not
infoDict
[
"grant_info"
][
"expire_time"
]
>
0
:
tdLog
.
exit
(
"expire_time is null!"
)
if
"timeseries_used"
not
in
infoDict
[
"grant_info"
]
or
not
infoDict
[
"grant_info"
][
"timeseries_used"
]
>
0
:
if
"timeseries_used"
not
in
infoDict
[
"grant_info"
]
:
#
or not infoDict["grant_info"]["timeseries_used"] > 0:
tdLog
.
exit
(
"timeseries_used is null!"
)
if
"timeseries_total"
not
in
infoDict
[
"grant_info"
]
or
not
infoDict
[
"grant_info"
][
"timeseries_total"
]
>
0
:
...
...
@@ -191,7 +191,7 @@ class RequestHandlerImpl(http.server.BaseHTTPRequestHandler):
if
"log_infos"
not
in
infoDict
or
infoDict
[
"log_infos"
]
==
None
:
tdLog
.
exit
(
"log_infos is null!"
)
if
"logs"
not
in
infoDict
[
"log_infos"
]
or
len
(
infoDict
[
"log_infos"
][
"logs"
])
!=
10
:
if
"logs"
not
in
infoDict
[
"log_infos"
]
or
len
(
infoDict
[
"log_infos"
][
"logs"
])
<
8
:
#
!= 10:
tdLog
.
exit
(
"logs is null!"
)
if
"ts"
not
in
infoDict
[
"log_infos"
][
"logs"
][
0
]
or
len
(
infoDict
[
"log_infos"
][
"logs"
][
0
][
"ts"
])
<=
10
:
...
...
tools/shell/src/shellEngine.c
浏览文件 @
b683754f
...
...
@@ -778,7 +778,7 @@ void shellReadHistory() {
taosFsyncFile
(
pFile
);
taosCloseFile
(
&
pFile
);
}
pHistory
->
h
end
=
pHistory
->
hstart
;
pHistory
->
h
start
=
pHistory
->
hend
;
}
void
shellWriteHistory
()
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录