Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
9c984f9a
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,发现更多精彩内容 >>
提交
9c984f9a
编写于
1月 21, 2022
作者:
H
Hongze Cheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
more tdb
上级
2f2b7d2f
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
22 addition
and
5 deletion
+22
-5
source/libs/tdb/src/db/tdb_mpool.c
source/libs/tdb/src/db/tdb_mpool.c
+19
-2
source/libs/tdb/src/inc/tdb_inc.h
source/libs/tdb/src/inc/tdb_inc.h
+1
-1
source/libs/tdb/src/inc/tdb_mpool.h
source/libs/tdb/src/inc/tdb_mpool.h
+2
-2
未找到文件。
source/libs/tdb/src/db/tdb_mpool.c
浏览文件 @
9c984f9a
...
...
@@ -143,13 +143,30 @@ int tdbMPoolFileClose(TDB_MPFILE *mpf) {
return
0
;
}
int
tdbMPoolFileGet
(
TDB_MPFILE
*
mpf
,
pgno_t
pgid
,
void
*
addr
)
{
#define MPF_GET_PAGE_BUCKETID(fileid, pgno, nbuckets) \
({ \
uint64_t *tmp = (uint64_t *)fileid; \
(tmp[0] + tmp[1] + tmp[2] + (pgno)) % (nbuckets); \
})
int
tdbMPoolFileGet
(
TDB_MPFILE
*
mpf
,
pgno_t
pgno
,
void
*
addr
)
{
pg_t
*
pagep
;
TDB_MPOOL
*
mp
;
pg_list_t
*
pglist
;
mp
=
mpf
->
mp
;
// get page in the cache
pglist
=
mp
->
pgtab
.
hashtab
+
MPF_GET_PAGE_BUCKETID
(
mpf
->
fileid
,
pgno
,
mp
->
pgtab
.
nbucket
);
pagep
=
TD_DLIST_HEAD
(
pglist
);
while
(
pagep
)
{
if
(
memcmp
(
mpf
->
fileid
,
pagep
->
pgid
.
fileid
,
TDB_FILE_ID_LEN
)
==
0
&&
pgno
==
pagep
->
pgid
.
pgno
)
{
break
;
}
pagep
=
TD_DLIST_NODE_NEXT_WITH_FIELD
(
pagep
,
hash
);
}
if
(
pagep
)
{
// page is found in the page table
// todo: pin the page and return
...
...
@@ -173,7 +190,7 @@ int tdbMPoolFileGet(TDB_MPFILE *mpf, pgno_t pgid, void *addr) {
return
0
;
}
int
tdbMPoolFilePut
(
TDB_MPOOL
*
mpf
,
pgno_t
pg
id
,
void
*
addr
)
{
int
tdbMPoolFilePut
(
TDB_MPOOL
*
mpf
,
pgno_t
pg
no
,
void
*
addr
)
{
// TODO
return
0
;
}
...
...
source/libs/tdb/src/inc/tdb_inc.h
浏览文件 @
9c984f9a
...
...
@@ -34,7 +34,7 @@ typedef int32_t pgno_t;
// pgid_t
typedef
struct
{
uint8_t
fileid
[
TDB_FILE_ID_LEN
];
pgno_t
pg
id
;
pgno_t
pg
no
;
}
pgid_t
;
#define TDB_IVLD_PGID (pgid_t){0, TDB_IVLD_PGNO};
...
...
source/libs/tdb/src/inc/tdb_mpool.h
浏览文件 @
9c984f9a
...
...
@@ -80,8 +80,8 @@ int tdbMPoolClose(TDB_MPOOL *mp);
// TDB_MPFILE
int
tdbMPoolFileOpen
(
TDB_MPFILE
**
mpfp
,
const
char
*
fname
,
TDB_MPOOL
*
mp
);
int
tdbMPoolFileClose
(
TDB_MPFILE
*
mpf
);
int
tdbMPoolFileGet
(
TDB_MPFILE
*
mpf
,
pgno_t
pg
id
,
void
*
addr
);
int
tdbMPoolFilePut
(
TDB_MPOOL
*
mpf
,
pgno_t
pg
id
,
void
*
addr
);
int
tdbMPoolFileGet
(
TDB_MPFILE
*
mpf
,
pgno_t
pg
no
,
void
*
addr
);
int
tdbMPoolFilePut
(
TDB_MPOOL
*
mpf
,
pgno_t
pg
no
,
void
*
addr
);
#ifdef __cplusplus
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录