Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
56a4b9d2
T
TDengine
项目概览
taosdata
/
TDengine
12 个月 前同步成功
通知
1180
Star
22014
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
56a4b9d2
编写于
12月 03, 2021
作者:
S
Shengliang Guan
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/feature/vnode' into feature/dnode3
上级
8a850dd3
92ec8790
变更
28
显示空白变更内容
内联
并排
Showing
28 changed file
with
140 addition
and
117 deletion
+140
-117
.gitignore
.gitignore
+3
-3
CMakeLists.txt
CMakeLists.txt
+3
-66
cmake/bdb_CMakeLists.txt.in
cmake/bdb_CMakeLists.txt.in
+2
-2
cmake/cjson_CMakeLists.txt.in
cmake/cjson_CMakeLists.txt.in
+1
-1
cmake/cmake.options
cmake/cmake.options
+1
-1
cmake/gtest_CMakeLists.txt.in
cmake/gtest_CMakeLists.txt.in
+1
-1
cmake/leveldb_CMakeLists.txt.in
cmake/leveldb_CMakeLists.txt.in
+1
-1
cmake/lucene_CMakeLists.txt.in
cmake/lucene_CMakeLists.txt.in
+1
-1
cmake/lz4_CMakeLists.txt.in
cmake/lz4_CMakeLists.txt.in
+1
-1
cmake/nuraft_CMakeLists.txt.in
cmake/nuraft_CMakeLists.txt.in
+2
-2
cmake/rocksdb_CMakeLists.txt.in
cmake/rocksdb_CMakeLists.txt.in
+1
-1
cmake/sqlite_CMakeLists.txt.in
cmake/sqlite_CMakeLists.txt.in
+2
-2
cmake/zlib_CMakeLists.txt.in
cmake/zlib_CMakeLists.txt.in
+1
-1
contrib/CMakeLists.txt
contrib/CMakeLists.txt
+69
-4
contrib/test/CMakeLists.txt
contrib/test/CMakeLists.txt
+0
-0
contrib/test/bdb/CMakeLists.txt
contrib/test/bdb/CMakeLists.txt
+0
-0
contrib/test/bdb/bdbTest.c
contrib/test/bdb/bdbTest.c
+0
-0
contrib/test/lucene/CMakeLists.txt
contrib/test/lucene/CMakeLists.txt
+0
-0
contrib/test/lucene/main.cpp
contrib/test/lucene/main.cpp
+0
-0
contrib/test/rocksdb/CMakeLists.txt
contrib/test/rocksdb/CMakeLists.txt
+0
-0
contrib/test/rocksdb/main.c
contrib/test/rocksdb/main.c
+0
-0
contrib/test/sqlite/CMakeLists.txt
contrib/test/sqlite/CMakeLists.txt
+0
-0
contrib/test/sqlite/sqliteTest.c
contrib/test/sqlite/sqliteTest.c
+0
-0
contrib/test/tdev/CMakeLists.txt
contrib/test/tdev/CMakeLists.txt
+0
-0
contrib/test/tdev/src/main.c
contrib/test/tdev/src/main.c
+0
-0
source/dnode/vnode/meta/CMakeLists.txt
source/dnode/vnode/meta/CMakeLists.txt
+1
-0
source/dnode/vnode/meta/inc/metaDB.h
source/dnode/vnode/meta/inc/metaDB.h
+2
-1
source/dnode/vnode/meta/src/metaDB.c
source/dnode/vnode/meta/src/metaDB.c
+48
-29
未找到文件。
.gitignore
浏览文件 @
56a4b9d2
...
...
@@ -98,6 +98,6 @@ tramp
.\#*
TAGS
deps
/*
!
deps
/CMakeLists.txt
!
deps
/test
contrib
/*
!
contrib
/CMakeLists.txt
!
contrib
/test
CMakeLists.txt
浏览文件 @
56a4b9d2
...
...
@@ -6,77 +6,14 @@ project(
DESCRIPTION
"An open-source big data platform designed and optimized for the Internet of Things(IOT)"
)
# ============================================================================
# DEPENDENCIES
# ============================================================================
set
(
CMAKE_SUPPORT_DIR
"
${
CMAKE_SOURCE_DIR
}
/cmake"
)
set
(
CMAKE_CONTRIB_DIR
"
${
CMAKE_SOURCE_DIR
}
/contrib"
)
include
(
${
CMAKE_SUPPORT_DIR
}
/cmake.options
)
function
(
cat IN_FILE OUT_FILE
)
file
(
READ
${
IN_FILE
}
CONTENTS
)
file
(
APPEND
${
OUT_FILE
}
"
${
CONTENTS
}
"
)
endfunction
(
cat IN_FILE OUT_FILE
)
set
(
DEPS_TMP_FILE
"
${
CMAKE_BINARY_DIR
}
/deps_tmp_CMakeLists.txt.in"
)
configure_file
(
"
${
CMAKE_SUPPORT_DIR
}
/deps_CMakeLists.txt.in"
${
DEPS_TMP_FILE
}
)
## googletest
if
(
${
BUILD_TEST
}
)
cat
(
"
${
CMAKE_SUPPORT_DIR
}
/gtest_CMakeLists.txt.in"
${
DEPS_TMP_FILE
}
)
endif
(
${
BUILD_TEST
}
)
## lz4
cat
(
"
${
CMAKE_SUPPORT_DIR
}
/lz4_CMakeLists.txt.in"
${
DEPS_TMP_FILE
}
)
## zlib
cat
(
"
${
CMAKE_SUPPORT_DIR
}
/zlib_CMakeLists.txt.in"
${
DEPS_TMP_FILE
}
)
## cJson
cat
(
"
${
CMAKE_SUPPORT_DIR
}
/cjson_CMakeLists.txt.in"
${
DEPS_TMP_FILE
}
)
## leveldb
if
(
${
BUILD_WITH_LEVELDB
}
)
cat
(
"
${
CMAKE_SUPPORT_DIR
}
/leveldb_CMakeLists.txt.in"
${
DEPS_TMP_FILE
}
)
endif
(
${
BUILD_WITH_LEVELDB
}
)
## rocksdb
if
(
${
BUILD_WITH_ROCKSDB
}
)
cat
(
"
${
CMAKE_SUPPORT_DIR
}
/rocksdb_CMakeLists.txt.in"
${
DEPS_TMP_FILE
}
)
add_definitions
(
-DUSE_ROCKSDB
)
endif
(
${
BUILD_WITH_ROCKSDB
}
)
## bdb
if
(
${
BUILD_WITH_BDB
}
)
cat
(
"
${
CMAKE_SUPPORT_DIR
}
/bdb_CMakeLists.txt.in"
${
DEPS_TMP_FILE
}
)
endif
(
${
BUILD_WITH_DBD
}
)
## sqlite
if
(
${
BUILD_WITH_SQLITE
}
)
cat
(
"
${
CMAKE_SUPPORT_DIR
}
/sqlite_CMakeLists.txt.in"
${
DEPS_TMP_FILE
}
)
endif
(
${
BUILD_WITH_SQLITE
}
)
## lucene
if
(
${
BUILD_WITH_LUCENE
}
)
cat
(
"
${
CMAKE_SUPPORT_DIR
}
/lucene_CMakeLists.txt.in"
${
DEPS_TMP_FILE
}
)
add_definitions
(
-DUSE_LUCENE
)
endif
(
${
BUILD_WITH_LUCENE
}
)
## NuRaft
if
(
${
BUILD_WITH_NURAFT
}
)
cat
(
"
${
CMAKE_SUPPORT_DIR
}
/nuraft_CMakeLists.txt.in"
${
DEPS_TMP_FILE
}
)
endif
(
${
BUILD_WITH_NURAFT
}
)
## download dependencies
configure_file
(
${
DEPS_TMP_FILE
}
"
${
CMAKE_SOURCE_DIR
}
/deps/deps-download/CMakeLists.txt"
)
execute_process
(
COMMAND
"
${
CMAKE_COMMAND
}
"
-G
"
${
CMAKE_GENERATOR
}
"
.
WORKING_DIRECTORY
"
${
CMAKE_SOURCE_DIR
}
/deps/deps-download"
)
execute_process
(
COMMAND
"
${
CMAKE_COMMAND
}
"
--build .
WORKING_DIRECTORY
"
${
CMAKE_SOURCE_DIR
}
/deps/deps-download"
)
SET
(
CMAKE_C_FLAGS
"
${
CMAKE_C_FLAGS
}
-fPIC -gdwarf-2 -msse4.2 -mfma"
)
#
deps
add_subdirectory
(
deps
)
#
contrib
add_subdirectory
(
contrib
)
# api
add_library
(
api INTERFACE
)
...
...
cmake/bdb_CMakeLists.txt.in
浏览文件 @
56a4b9d2
...
...
@@ -3,8 +3,8 @@
ExternalProject_Add(bdb
GIT_REPOSITORY https://github.com/berkeleydb/libdb.git
GIT_TAG v5.3.28
SOURCE_DIR "${CMAKE_
SOURCE_DIR}/deps
/bdb"
BINARY_DIR "${CMAKE_
SOURCE_DIR}/deps
/bdb"
SOURCE_DIR "${CMAKE_
CONTRIB_DIR}
/bdb"
BINARY_DIR "${CMAKE_
CONTRIB_DIR}
/bdb"
#BUILD_IN_SOURCE TRUE
CONFIGURE_COMMAND "./dist/configure"
BUILD_COMMAND "$(MAKE)"
...
...
cmake/cjson_CMakeLists.txt.in
浏览文件 @
56a4b9d2
...
...
@@ -3,7 +3,7 @@
ExternalProject_Add(cjson
GIT_REPOSITORY https://github.com/taosdata-contrib/cJSON.git
GIT_TAG v1.7.15
SOURCE_DIR "${CMAKE_
SOURCE_DIR}/deps
/cJson"
SOURCE_DIR "${CMAKE_
CONTRIB_DIR}
/cJson"
BINARY_DIR ""
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
...
...
cmake/cmake.options
浏览文件 @
56a4b9d2
...
...
@@ -52,5 +52,5 @@ option(
option(
BUILD_DOCS
"If use doxygen build documents"
O
N
O
FF
)
cmake/gtest_CMakeLists.txt.in
浏览文件 @
56a4b9d2
...
...
@@ -3,7 +3,7 @@
ExternalProject_Add(googletest
GIT_REPOSITORY https://github.com/taosdata-contrib/googletest.git
GIT_TAG release-1.11.0
SOURCE_DIR "${CMAKE_
SOURCE_DIR}/deps
/googletest"
SOURCE_DIR "${CMAKE_
CONTRIB_DIR}
/googletest"
BINARY_DIR ""
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
...
...
cmake/leveldb_CMakeLists.txt.in
浏览文件 @
56a4b9d2
...
...
@@ -3,7 +3,7 @@
ExternalProject_Add(leveldb
GIT_REPOSITORY https://github.com/taosdata-contrib/leveldb.git
GIT_TAG master
SOURCE_DIR "${CMAKE_
SOURCE_DIR}/deps
/leveldb"
SOURCE_DIR "${CMAKE_
CONTRIB_DIR}
/leveldb"
BINARY_DIR ""
#BUILD_IN_SOURCE TRUE
CONFIGURE_COMMAND ""
...
...
cmake/lucene_CMakeLists.txt.in
浏览文件 @
56a4b9d2
...
...
@@ -2,7 +2,7 @@
# lucene
ExternalProject_Add(lucene
GIT_REPOSITORY https://github.com/yihaoDeng/LucenePlusPlus.git
SOURCE_DIR "${CMAKE_
SOURCE_DIR}/deps
/lucene"
SOURCE_DIR "${CMAKE_
CONTRIB_DIR}
/lucene"
BINARY_DIR ""
#BUILD_IN_SOURCE TRUE
CONFIGURE_COMMAND ""
...
...
cmake/lz4_CMakeLists.txt.in
浏览文件 @
56a4b9d2
...
...
@@ -3,7 +3,7 @@
ExternalProject_Add(lz4
GIT_REPOSITORY https://github.com/taosdata-contrib/lz4.git
GIT_TAG v1.9.3
SOURCE_DIR "${CMAKE_
SOURCE_DIR}/deps
/lz4"
SOURCE_DIR "${CMAKE_
CONTRIB_DIR}
/lz4"
BINARY_DIR ""
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
...
...
cmake/nuraft_CMakeLists.txt.in
浏览文件 @
56a4b9d2
...
...
@@ -3,8 +3,8 @@
ExternalProject_Add(NuRaft
GIT_REPOSITORY https://github.com/eBay/NuRaft.git
GIT_TAG v1.3.0
SOURCE_DIR "${CMAKE_
SOURCE_DIR}/deps
/nuraft"
BINARY_DIR "${CMAKE_
SOURCE_DIR}/deps
/nuraft"
SOURCE_DIR "${CMAKE_
CONTRIB_DIR}
/nuraft"
BINARY_DIR "${CMAKE_
CONTRIB_DIR}
/nuraft"
CONFIGURE_COMMAND "./prepare.sh"
BUILD_COMMAND ""
INSTALL_COMMAND ""
...
...
cmake/rocksdb_CMakeLists.txt.in
浏览文件 @
56a4b9d2
...
...
@@ -3,7 +3,7 @@
ExternalProject_Add(rocksdb
GIT_REPOSITORY https://github.com/taosdata-contrib/rocksdb.git
GIT_TAG v6.23.3
SOURCE_DIR "${CMAKE_
SOURCE_DIR}/deps
/rocksdb"
SOURCE_DIR "${CMAKE_
CONTRIB_DIR}
/rocksdb"
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
...
...
cmake/sqlite_CMakeLists.txt.in
浏览文件 @
56a4b9d2
...
...
@@ -3,8 +3,8 @@
ExternalProject_Add(sqlite
GIT_REPOSITORY https://github.com/sqlite/sqlite.git
GIT_TAG version-3.36.0
SOURCE_DIR "${CMAKE_
SOURCE_DIR}/deps
/sqlite"
BINARY_DIR "${CMAKE_
SOURCE_DIR}/deps
/sqlite"
SOURCE_DIR "${CMAKE_
CONTRIB_DIR}
/sqlite"
BINARY_DIR "${CMAKE_
CONTRIB_DIR}
/sqlite"
#BUILD_IN_SOURCE TRUE
CONFIGURE_COMMAND "./configure"
BUILD_COMMAND "$(MAKE)"
...
...
cmake/zlib_CMakeLists.txt.in
浏览文件 @
56a4b9d2
...
...
@@ -3,7 +3,7 @@
ExternalProject_Add(zlib
GIT_REPOSITORY https://github.com/taosdata-contrib/zlib.git
GIT_TAG v1.2.11
SOURCE_DIR "${CMAKE_
SOURCE_DIR}/deps
/zlib"
SOURCE_DIR "${CMAKE_
CONTRIB_DIR}
/zlib"
BINARY_DIR ""
#BUILD_IN_SOURCE TRUE
CONFIGURE_COMMAND ""
...
...
deps
/CMakeLists.txt
→
contrib
/CMakeLists.txt
浏览文件 @
56a4b9d2
# ================================================================================================
# DEPENDENCIES
# Download
# ================================================================================================
function
(
cat IN_FILE OUT_FILE
)
file
(
READ
${
IN_FILE
}
CONTENTS
)
file
(
APPEND
${
OUT_FILE
}
"
${
CONTENTS
}
"
)
endfunction
(
cat IN_FILE OUT_FILE
)
set
(
CONTRIB_TMP_FILE
"
${
CMAKE_BINARY_DIR
}
/deps_tmp_CMakeLists.txt.in"
)
configure_file
(
"
${
CMAKE_SUPPORT_DIR
}
/deps_CMakeLists.txt.in"
${
CONTRIB_TMP_FILE
}
)
# googletest
if
(
${
BUILD_TEST
}
)
cat
(
"
${
CMAKE_SUPPORT_DIR
}
/gtest_CMakeLists.txt.in"
${
CONTRIB_TMP_FILE
}
)
endif
(
${
BUILD_TEST
}
)
# lz4
cat
(
"
${
CMAKE_SUPPORT_DIR
}
/lz4_CMakeLists.txt.in"
${
CONTRIB_TMP_FILE
}
)
# zlib
cat
(
"
${
CMAKE_SUPPORT_DIR
}
/zlib_CMakeLists.txt.in"
${
CONTRIB_TMP_FILE
}
)
# cJson
cat
(
"
${
CMAKE_SUPPORT_DIR
}
/cjson_CMakeLists.txt.in"
${
CONTRIB_TMP_FILE
}
)
# leveldb
if
(
${
BUILD_WITH_LEVELDB
}
)
cat
(
"
${
CMAKE_SUPPORT_DIR
}
/leveldb_CMakeLists.txt.in"
${
CONTRIB_TMP_FILE
}
)
endif
(
${
BUILD_WITH_LEVELDB
}
)
# rocksdb
if
(
${
BUILD_WITH_ROCKSDB
}
)
cat
(
"
${
CMAKE_SUPPORT_DIR
}
/rocksdb_CMakeLists.txt.in"
${
CONTRIB_TMP_FILE
}
)
add_definitions
(
-DUSE_ROCKSDB
)
endif
(
${
BUILD_WITH_ROCKSDB
}
)
# bdb
if
(
${
BUILD_WITH_BDB
}
)
cat
(
"
${
CMAKE_SUPPORT_DIR
}
/bdb_CMakeLists.txt.in"
${
CONTRIB_TMP_FILE
}
)
endif
(
${
BUILD_WITH_DBD
}
)
# sqlite
if
(
${
BUILD_WITH_SQLITE
}
)
cat
(
"
${
CMAKE_SUPPORT_DIR
}
/sqlite_CMakeLists.txt.in"
${
CONTRIB_TMP_FILE
}
)
endif
(
${
BUILD_WITH_SQLITE
}
)
# lucene
if
(
${
BUILD_WITH_LUCENE
}
)
cat
(
"
${
CMAKE_SUPPORT_DIR
}
/lucene_CMakeLists.txt.in"
${
CONTRIB_TMP_FILE
}
)
add_definitions
(
-DUSE_LUCENE
)
endif
(
${
BUILD_WITH_LUCENE
}
)
# NuRaft
if
(
${
BUILD_WITH_NURAFT
}
)
cat
(
"
${
CMAKE_SUPPORT_DIR
}
/nuraft_CMakeLists.txt.in"
${
CONTRIB_TMP_FILE
}
)
endif
(
${
BUILD_WITH_NURAFT
}
)
# download dependencies
configure_file
(
${
CONTRIB_TMP_FILE
}
"
${
CMAKE_CONTRIB_DIR
}
/deps-download/CMakeLists.txt"
)
execute_process
(
COMMAND
"
${
CMAKE_COMMAND
}
"
-G
"
${
CMAKE_GENERATOR
}
"
.
WORKING_DIRECTORY
"
${
CMAKE_CONTRIB_DIR
}
/deps-download"
)
execute_process
(
COMMAND
"
${
CMAKE_COMMAND
}
"
--build .
WORKING_DIRECTORY
"
${
CMAKE_CONTRIB_DIR
}
/deps-download"
)
# ================================================================================================
# Build
# ================================================================================================
# googletest
if
(
${
BUILD_TEST
}
)
...
...
@@ -82,7 +146,7 @@ endif(${BUILD_WITH_NURAFT})
# BDB
if
(
${
BUILD_WITH_BDB
}
)
add_library
(
bdb STATIC IMPORTED
)
add_library
(
bdb STATIC IMPORTED
GLOBAL
)
set_target_properties
(
bdb PROPERTIES
IMPORTED_LOCATION
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/bdb/libdb.a"
INTERFACE_INCLUDE_DIRECTORIES
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/bdb"
...
...
@@ -93,8 +157,9 @@ if(${BUILD_WITH_BDB})
endif
(
${
BUILD_WITH_BDB
}
)
# SQLite
# see https://stackoverflow.com/questions/8774593/cmake-link-to-external-library#comment58570736_10550334
if
(
${
BUILD_WITH_SQLITE
}
)
add_library
(
sqlite STATIC IMPORTED
)
add_library
(
sqlite STATIC IMPORTED
GLOBAL
)
set_target_properties
(
sqlite PROPERTIES
IMPORTED_LOCATION
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/sqlite/.libs/libsqlite3.a"
INTERFACE_INCLUDE_DIRECTORIES
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/sqlite"
...
...
@@ -109,7 +174,7 @@ endif(${BUILD_WITH_SQLITE})
# ================================================================================================
#
DEPENDENCY TEST
#
Build test
# ================================================================================================
if
(
${
BUILD_DEPENDENCY_TESTS
}
)
add_subdirectory
(
test
)
...
...
deps
/test/CMakeLists.txt
→
contrib
/test/CMakeLists.txt
浏览文件 @
56a4b9d2
文件已移动
deps
/test/bdb/CMakeLists.txt
→
contrib
/test/bdb/CMakeLists.txt
浏览文件 @
56a4b9d2
文件已移动
deps
/test/bdb/bdbTest.c
→
contrib
/test/bdb/bdbTest.c
浏览文件 @
56a4b9d2
文件已移动
deps
/test/lucene/CMakeLists.txt
→
contrib
/test/lucene/CMakeLists.txt
浏览文件 @
56a4b9d2
文件已移动
deps
/test/lucene/main.cpp
→
contrib
/test/lucene/main.cpp
浏览文件 @
56a4b9d2
文件已移动
deps
/test/rocksdb/CMakeLists.txt
→
contrib
/test/rocksdb/CMakeLists.txt
浏览文件 @
56a4b9d2
文件已移动
deps
/test/rocksdb/main.c
→
contrib
/test/rocksdb/main.c
浏览文件 @
56a4b9d2
文件已移动
deps
/test/sqlite/CMakeLists.txt
→
contrib
/test/sqlite/CMakeLists.txt
浏览文件 @
56a4b9d2
文件已移动
deps
/test/sqlite/sqliteTest.c
→
contrib
/test/sqlite/sqliteTest.c
浏览文件 @
56a4b9d2
文件已移动
deps
/test/tdev/CMakeLists.txt
→
contrib
/test/tdev/CMakeLists.txt
浏览文件 @
56a4b9d2
文件已移动
deps
/test/tdev/src/main.c
→
contrib
/test/tdev/src/main.c
浏览文件 @
56a4b9d2
文件已移动
source/dnode/vnode/meta/CMakeLists.txt
浏览文件 @
56a4b9d2
...
...
@@ -7,6 +7,7 @@ target_include_directories(
)
target_link_libraries
(
meta
PUBLIC sqlite
PUBLIC common
PUBLIC tkv
)
...
...
source/dnode/vnode/meta/inc/metaDB.h
浏览文件 @
56a4b9d2
...
...
@@ -17,6 +17,7 @@
#define _TD_META_DB_H_
#include "rocksdb/c.h"
#include "sqlite3.h"
#include "meta.h"
...
...
@@ -29,7 +30,7 @@ typedef struct {
rocksdb_t
*
nameDb
;
// name -> uid
rocksdb_t
*
tagDb
;
// uid -> tag
rocksdb_t
*
schemaDb
;
// uid+version -> schema
rocksdb_t
*
mapDb
;
// suid -> uid_list
sqlite3
*
mapDb
;
// suid -> uid_list
}
meta_db_t
;
int
metaOpenDB
(
SMeta
*
pMeta
);
...
...
source/dnode/vnode/meta/src/metaDB.c
浏览文件 @
56a4b9d2
...
...
@@ -17,7 +17,7 @@
static
void
metaSaveSchemaDB
(
SMeta
*
pMeta
,
tb_uid_t
uid
,
STSchema
*
pSchema
);
static
void
metaGetSchemaDBKey
(
char
key
[],
tb_uid_t
uid
,
int
sversion
);
static
int
metaSaveMapDB
(
SMeta
*
pMeta
,
tb_uid_t
suid
,
tb_uid_t
uid
);
//
static int metaSaveMapDB(SMeta *pMeta, tb_uid_t suid, tb_uid_t uid);
#define SCHEMA_KEY_LEN (sizeof(tb_uid_t) + sizeof(int))
...
...
@@ -65,8 +65,14 @@ int metaOpenDB(SMeta *pMeta) {
META_OPEN_DB_IMPL
(
pMeta
->
pDB
->
schemaDb
,
options
,
dir
,
err
);
// mapDb
sprintf
(
dir
,
"%s/map_db"
,
pMeta
->
path
);
META_OPEN_DB_IMPL
(
pMeta
->
pDB
->
mapDb
,
options
,
dir
,
err
);
sprintf
(
dir
,
"%s/meta.db"
,
pMeta
->
path
);
if
(
sqlite3_open
(
dir
,
&
(
pMeta
->
pDB
->
mapDb
))
!=
SQLITE_OK
)
{
// TODO
}
// // set read uncommitted
sqlite3_exec
(
pMeta
->
pDB
->
mapDb
,
"PRAGMA read_uncommitted=true;"
,
0
,
0
,
0
);
sqlite3_exec
(
pMeta
->
pDB
->
mapDb
,
"BEGIN;"
,
0
,
0
,
0
);
rocksdb_options_destroy
(
options
);
return
0
;
...
...
@@ -82,7 +88,12 @@ int metaOpenDB(SMeta *pMeta) {
void
metaCloseDB
(
SMeta
*
pMeta
)
{
if
(
pMeta
->
pDB
)
{
META_CLOSE_DB_IMPL
(
pMeta
->
pDB
->
mapDb
);
if
(
pMeta
->
pDB
->
mapDb
)
{
sqlite3_exec
(
pMeta
->
pDB
->
mapDb
,
"COMMIT;"
,
0
,
0
,
0
);
sqlite3_close
(
pMeta
->
pDB
->
mapDb
);
pMeta
->
pDB
->
mapDb
=
NULL
;
}
META_CLOSE_DB_IMPL
(
pMeta
->
pDB
->
schemaDb
);
META_CLOSE_DB_IMPL
(
pMeta
->
pDB
->
tagDb
);
META_CLOSE_DB_IMPL
(
pMeta
->
pDB
->
nameDb
);
...
...
@@ -97,6 +108,7 @@ int metaSaveTableToDB(SMeta *pMeta, const STbCfg *pTbOptions) {
char
*
err
=
NULL
;
size_t
size
;
char
pBuf
[
1024
];
// TODO
char
sql
[
128
];
rocksdb_writeoptions_t
*
wopt
=
rocksdb_writeoptions_create
();
...
...
@@ -124,8 +136,12 @@ int metaSaveTableToDB(SMeta *pMeta, const STbCfg *pTbOptions) {
// save schemaDB
metaSaveSchemaDB
(
pMeta
,
uid
,
pTbOptions
->
stbCfg
.
pSchema
);
// save mapDB (really need?)
rocksdb_put
(
pMeta
->
pDB
->
mapDb
,
wopt
,
(
char
*
)(
&
uid
),
sizeof
(
uid
),
""
,
0
,
&
err
);
// // save mapDB (really need?)
// rocksdb_put(pMeta->pDB->mapDb, wopt, (char *)(&uid), sizeof(uid), "", 0, &err);
sprintf
(
sql
,
"create table st_%"
PRIu64
" (uid BIGINT);"
,
uid
);
if
(
sqlite3_exec
(
pMeta
->
pDB
->
mapDb
,
sql
,
NULL
,
NULL
,
&
err
)
!=
SQLITE_OK
)
{
// fprintf(stderr, "Failed to create table, since %s\n", err);
}
break
;
case
META_CHILD_TABLE
:
// save tagDB
...
...
@@ -133,7 +149,10 @@ int metaSaveTableToDB(SMeta *pMeta, const STbCfg *pTbOptions) {
kvRowLen
(
pTbOptions
->
ctbCfg
.
pTag
),
&
err
);
// save mapDB
metaSaveMapDB
(
pMeta
,
pTbOptions
->
ctbCfg
.
suid
,
uid
);
sprintf
(
sql
,
"insert into st_%"
PRIu64
" values (%"
PRIu64
");"
,
pTbOptions
->
ctbCfg
.
suid
,
uid
);
if
(
sqlite3_exec
(
pMeta
->
pDB
->
mapDb
,
sql
,
NULL
,
NULL
,
&
err
)
!=
SQLITE_OK
)
{
fprintf
(
stderr
,
"failed to insert data, since %s
\n
"
,
err
);
}
break
;
default:
ASSERT
(
0
);
...
...
@@ -172,32 +191,32 @@ static void metaGetSchemaDBKey(char *key, tb_uid_t uid, int sversion) {
*
(
int
*
)
POINTER_SHIFT
(
key
,
sizeof
(
tb_uid_t
))
=
sversion
;
}
static
int
metaSaveMapDB
(
SMeta
*
pMeta
,
tb_uid_t
suid
,
tb_uid_t
uid
)
{
size_t
vlen
;
char
*
val
;
char
*
err
=
NULL
;
//
static int metaSaveMapDB(SMeta *pMeta, tb_uid_t suid, tb_uid_t uid) {
//
size_t vlen;
//
char * val;
//
char * err = NULL;
rocksdb_readoptions_t
*
ropt
=
rocksdb_readoptions_create
();
val
=
rocksdb_get
(
pMeta
->
pDB
->
mapDb
,
ropt
,
(
char
*
)(
&
suid
),
sizeof
(
suid
),
&
vlen
,
&
err
);
rocksdb_readoptions_destroy
(
ropt
);
//
rocksdb_readoptions_t *ropt = rocksdb_readoptions_create();
//
val = rocksdb_get(pMeta->pDB->mapDb, ropt, (char *)(&suid), sizeof(suid), &vlen, &err);
//
rocksdb_readoptions_destroy(ropt);
void
*
nval
=
malloc
(
vlen
+
sizeof
(
uid
));
if
(
nval
==
NULL
)
{
return
-
1
;
}
//
void *nval = malloc(vlen + sizeof(uid));
//
if (nval == NULL) {
//
return -1;
//
}
if
(
vlen
)
{
memcpy
(
nval
,
val
,
vlen
);
}
memcpy
(
POINTER_SHIFT
(
nval
,
vlen
),
(
void
*
)(
&
uid
),
sizeof
(
uid
));
//
if (vlen) {
//
memcpy(nval, val, vlen);
//
}
//
memcpy(POINTER_SHIFT(nval, vlen), (void *)(&uid), sizeof(uid));
rocksdb_writeoptions_t
*
wopt
=
rocksdb_writeoptions_create
();
rocksdb_writeoptions_disable_WAL
(
wopt
,
1
);
//
rocksdb_writeoptions_t *wopt = rocksdb_writeoptions_create();
//
rocksdb_writeoptions_disable_WAL(wopt, 1);
rocksdb_put
(
pMeta
->
pDB
->
mapDb
,
wopt
,
(
char
*
)(
&
suid
),
sizeof
(
suid
),
nval
,
vlen
+
sizeof
(
uid
),
&
err
);
//
rocksdb_put(pMeta->pDB->mapDb, wopt, (char *)(&suid), sizeof(suid), nval, vlen + sizeof(uid), &err);
rocksdb_writeoptions_destroy
(
wopt
);
free
(
nval
);
//
rocksdb_writeoptions_destroy(wopt);
//
free(nval);
return
0
;
}
\ No newline at end of file
// return 0;
// }
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录