Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
24208378
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
24208378
编写于
8月 29, 2022
作者:
M
Minglei Jin
提交者:
GitHub
8月 29, 2022
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #16476 from taosdata/fix/TD-18656
fix: release pages with drop case
上级
1150d82e
95e591ef
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
10 addition
and
10 deletion
+10
-10
source/libs/tdb/src/db/tdbBtree.c
source/libs/tdb/src/db/tdbBtree.c
+6
-8
source/libs/tdb/src/db/tdbPCache.c
source/libs/tdb/src/db/tdbPCache.c
+1
-0
source/libs/tdb/src/db/tdbPager.c
source/libs/tdb/src/db/tdbPager.c
+1
-0
source/libs/tdb/src/inc/tdbInt.h
source/libs/tdb/src/inc/tdbInt.h
+2
-2
未找到文件。
source/libs/tdb/src/db/tdbBtree.c
浏览文件 @
24208378
...
...
@@ -509,7 +509,7 @@ static int tdbBtreeBalanceDeeper(SBTree *pBt, SPage *pRoot, SPage **ppChild, TXN
static
int
tdbBtreeBalanceNonRoot
(
SBTree
*
pBt
,
SPage
*
pParent
,
int
idx
,
TXN
*
pTxn
)
{
int
ret
;
int
nOlds
;
int
nOlds
,
pageIdx
;
SPage
*
pOlds
[
3
]
=
{
0
};
SCell
*
pDivCell
[
3
]
=
{
0
};
int
szDivCell
[
3
];
...
...
@@ -849,13 +849,11 @@ static int tdbBtreeBalanceNonRoot(SBTree *pBt, SPage *pParent, int idx, TXN *pTx
}
}
// TODO: here is not corrent for drop case
for
(
int
i
=
0
;
i
<
nNews
;
i
++
)
{
if
(
i
<
nOlds
)
{
tdbPagerReturnPage
(
pBt
->
pPager
,
pOlds
[
i
],
pTxn
);
}
else
{
tdbPagerReturnPage
(
pBt
->
pPager
,
pNews
[
i
],
pTxn
);
}
for
(
pageIdx
=
0
;
pageIdx
<
nOlds
;
++
pageIdx
)
{
tdbPagerReturnPage
(
pBt
->
pPager
,
pOlds
[
pageIdx
],
pTxn
);
}
for
(;
pageIdx
<
nNews
;
++
pageIdx
)
{
tdbPagerReturnPage
(
pBt
->
pPager
,
pNews
[
pageIdx
],
pTxn
);
}
return
0
;
...
...
source/libs/tdb/src/db/tdbPCache.c
浏览文件 @
24208378
...
...
@@ -98,6 +98,7 @@ SPage *tdbPCacheFetch(SPCache *pCache, const SPgid *pPgid, TXN *pTxn) {
// printf("thread %" PRId64 " fetch page %d pgno %d pPage %p nRef %d\n", taosGetSelfPthreadId(), pPage->id,
// TDB_PAGE_PGNO(pPage), pPage, nRef);
tdbDebug
(
"pcache/fetch page %p/%d/%d/%d"
,
pPage
,
TDB_PAGE_PGNO
(
pPage
),
pPage
->
id
,
nRef
);
return
pPage
;
}
...
...
source/libs/tdb/src/db/tdbPager.c
浏览文件 @
24208378
...
...
@@ -166,6 +166,7 @@ int tdbPagerWrite(SPager *pPager, SPage *pPage) {
// ref page one more time so the page will not be release
tdbRefPage
(
pPage
);
tdbDebug
(
"pcache/mdirty page %p/%d/%d"
,
pPage
,
TDB_PAGE_PGNO
(
pPage
),
pPage
->
id
);
// Set page as dirty
pPage
->
isDirty
=
1
;
...
...
source/libs/tdb/src/inc/tdbInt.h
浏览文件 @
24208378
...
...
@@ -280,13 +280,13 @@ struct SPage {
static
inline
i32
tdbRefPage
(
SPage
*
pPage
)
{
i32
nRef
=
atomic_add_fetch_32
(
&
((
pPage
)
->
nRef
),
1
);
tdbTrace
(
"ref page %
d, nRef %d"
,
pPage
->
id
,
nRef
);
tdbTrace
(
"ref page %
p/%d, nRef %d"
,
pPage
,
pPage
->
id
,
nRef
);
return
nRef
;
}
static
inline
i32
tdbUnrefPage
(
SPage
*
pPage
)
{
i32
nRef
=
atomic_sub_fetch_32
(
&
((
pPage
)
->
nRef
),
1
);
tdbTrace
(
"unref page %
d, nRef %d"
,
pPage
->
id
,
nRef
);
tdbTrace
(
"unref page %
p/%d, nRef %d"
,
pPage
,
pPage
->
id
,
nRef
);
return
nRef
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录