Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
a0d7e2a1
T
TDengine
项目概览
taosdata
/
TDengine
大约 1 年 前同步成功
通知
1184
Star
22015
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,发现更多精彩内容 >>
提交
a0d7e2a1
编写于
1月 21, 2022
作者:
H
Hongze Cheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
more TDB
上级
9c984f9a
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
24 addition
and
11 deletion
+24
-11
source/libs/tdb/src/db/tdb_mpool.c
source/libs/tdb/src/db/tdb_mpool.c
+24
-11
未找到文件。
source/libs/tdb/src/db/tdb_mpool.c
浏览文件 @
a0d7e2a1
...
...
@@ -156,7 +156,7 @@ int tdbMPoolFileGet(TDB_MPFILE *mpf, pgno_t pgno, void *addr) {
mp
=
mpf
->
mp
;
//
get page in the cache
//
check if the page already in pool
pglist
=
mp
->
pgtab
.
hashtab
+
MPF_GET_PAGE_BUCKETID
(
mpf
->
fileid
,
pgno
,
mp
->
pgtab
.
nbucket
);
pagep
=
TD_DLIST_HEAD
(
pglist
);
while
(
pagep
)
{
...
...
@@ -168,25 +168,38 @@ int tdbMPoolFileGet(TDB_MPFILE *mpf, pgno_t pgno, void *addr) {
}
if
(
pagep
)
{
// page is found
in the page table
// page is found
// todo: pin the page and return
*
(
void
**
)
addr
=
pagep
->
data
;
return
0
;
}
// page not found
pagep
=
TD_DLIST_HEAD
(
&
mp
->
freeList
);
if
(
pagep
)
{
// has free page
TD_DLIST_POP_WITH_FIELD
(
&
(
mp
->
freeList
),
pagep
,
free
);
// todo: load the page from file and pin the page
}
else
{
//
page not found
pagep
=
TD_DLIST_HEAD
(
&
mp
->
freeList
);
//
no free page available
// pagep = tdbMpoolEvict(mp
);
if
(
pagep
)
{
// TD_DLIST_POP(&(mp->freeList), pagep);
}
else
{
// no page found in the freelist, need to evict
// pagep = tdbMpoolEvict(mp);
if
(
pagep
)
{
}
else
{
// TODO: Cannot find a page to evict
}
// TODO: Cannot find a page to evict
}
}
if
(
pagep
==
NULL
)
{
// no available container page
return
-
1
;
}
// load page from the disk if a container page is available
// TODO: load the page from the disk
// add current page to page table
TD_DLIST_APPEND_WITH_FIELD
(
pglist
,
pagep
,
hash
);
return
0
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录