Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
d3dfc664
G
Gpdb
项目概览
Greenplum
/
Gpdb
通知
7
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
Gpdb
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d3dfc664
编写于
4月 18, 1997
作者:
V
Vadim B. Mikheev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
PrintBufferUsage() changed to report about shared, local and direct
blocks transfferes.
上级
55f53543
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
41 addition
and
14 deletion
+41
-14
src/backend/storage/buffer/buf_init.c
src/backend/storage/buffer/buf_init.c
+7
-4
src/backend/storage/buffer/bufmgr.c
src/backend/storage/buffer/bufmgr.c
+28
-9
src/backend/storage/buffer/localbuf.c
src/backend/storage/buffer/localbuf.c
+6
-1
未找到文件。
src/backend/storage/buffer/buf_init.c
浏览文件 @
d3dfc664
...
...
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/storage/buffer/buf_init.c,v 1.
8 1997/03/28 07:04:52 scrappy
Exp $
* $Header: /cvsroot/pgsql/src/backend/storage/buffer/buf_init.c,v 1.
9 1997/04/18 02:53:15 vadim
Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -120,9 +120,12 @@ long *CommitInfoNeedsSave; /* to write buffers where we have filled in */
SPINLOCK
BufMgrLock
;
int
ReadBufferCount
;
int
BufferHitCount
;
int
BufferFlushCount
;
long
int
ReadBufferCount
;
long
int
ReadLocalBufferCount
;
long
int
BufferHitCount
;
long
int
LocalBufferHitCount
;
long
int
BufferFlushCount
;
long
int
LocalBufferFlushCount
;
/*
...
...
src/backend/storage/buffer/bufmgr.c
浏览文件 @
d3dfc664
...
...
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/storage/buffer/bufmgr.c,v 1.1
1 1997/03/28 07:05:03 scrappy
Exp $
* $Header: /cvsroot/pgsql/src/backend/storage/buffer/bufmgr.c,v 1.1
2 1997/04/18 02:53:23 vadim
Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -75,9 +75,12 @@
#include "catalog/catalog.h"
extern
SPINLOCK
BufMgrLock
;
extern
int
ReadBufferCount
;
extern
int
BufferHitCount
;
extern
int
BufferFlushCount
;
extern
long
int
ReadBufferCount
;
extern
long
int
ReadLocalBufferCount
;
extern
long
int
BufferHitCount
;
extern
long
int
LocalBufferHitCount
;
extern
long
int
BufferFlushCount
;
extern
long
int
LocalBufferFlushCount
;
static
int
WriteMode
=
BUFFER_LATE_WRITE
;
/* Delayed write is default */
...
...
@@ -217,7 +220,9 @@ ReadBufferWithBufferLock(Relation reln,
isLocalBuf
=
reln
->
rd_islocal
;
if
(
isLocalBuf
)
{
ReadLocalBufferCount
++
;
bufHdr
=
LocalBufferAlloc
(
reln
,
blockNum
,
&
found
);
if
(
found
)
LocalBufferHitCount
++
;
}
else
{
ReadBufferCount
++
;
...
...
@@ -473,7 +478,6 @@ BufferAlloc(Relation reln,
}
else
{
BufferFlushCount
++
;
/*
* BM_JUST_DIRTIED cleared by BufferReplace and shouldn't
* be setted by anyone. - vadim 01/17/97
...
...
@@ -760,6 +764,7 @@ FlushBuffer(Buffer buffer, bool release)
bufHdr
->
tag
.
blockNum
,
bufHdr
->
sb_relname
);
return
(
STATUS_ERROR
);
}
BufferFlushCount
++
;
SpinAcquire
(
BufMgrLock
);
/*
...
...
@@ -955,6 +960,7 @@ BufferSync()
elog
(
WARN
,
"BufferSync: cannot write %u for %s"
,
bufHdr
->
tag
.
blockNum
,
bufHdr
->
sb_relname
);
}
BufferFlushCount
++
;
/*
* If this buffer was marked by someone as DIRTY while
* we were flushing it out we must not clear DIRTY flag
...
...
@@ -1052,16 +1058,24 @@ void
PrintBufferUsage
(
FILE
*
statfp
)
{
float
hitrate
;
float
localhitrate
;
if
(
ReadBufferCount
==
0
)
hitrate
=
0
.
0
;
else
hitrate
=
(
float
)
BufferHitCount
*
100
.
0
/
ReadBufferCount
;
fprintf
(
statfp
,
"!
\t
%ld blocks read, %ld blocks written, buffer hit rate = %.2f%%
\n
"
,
ReadBufferCount
-
BufferHitCount
+
NDirectFileRead
,
BufferFlushCount
+
NDirectFileWrite
,
hitrate
);
if
(
ReadLocalBufferCount
==
0
)
localhitrate
=
0
.
0
;
else
localhitrate
=
(
float
)
LocalBufferHitCount
*
100
.
0
/
ReadLocalBufferCount
;
fprintf
(
statfp
,
"!
\t
Shared blocks: %10ld read, %10ld written, buffer hit rate = %.2f%%
\n
"
,
ReadBufferCount
-
BufferHitCount
,
BufferFlushCount
,
hitrate
);
fprintf
(
statfp
,
"!
\t
Local blocks: %10ld read, %10ld written, buffer hit rate = %.2f%%
\n
"
,
ReadLocalBufferCount
-
LocalBufferHitCount
,
LocalBufferFlushCount
,
localhitrate
);
fprintf
(
statfp
,
"!
\t
Direct blocks: %10ld read, %10ld written
\n
"
,
NDirectFileRead
,
NDirectFileWrite
);
}
void
...
...
@@ -1070,6 +1084,9 @@ ResetBufferUsage()
BufferHitCount
=
0
;
ReadBufferCount
=
0
;
BufferFlushCount
=
0
;
LocalBufferHitCount
=
0
;
ReadLocalBufferCount
=
0
;
LocalBufferFlushCount
=
0
;
NDirectFileRead
=
0
;
NDirectFileWrite
=
0
;
}
...
...
@@ -1264,6 +1281,8 @@ BufferReplace(BufferDesc *bufHdr, bool bufferLockHeld)
if
(
status
==
SM_FAIL
)
return
(
FALSE
);
BufferFlushCount
++
;
return
(
TRUE
);
}
...
...
src/backend/storage/buffer/localbuf.c
浏览文件 @
d3dfc664
...
...
@@ -15,7 +15,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/storage/buffer/localbuf.c,v 1.
5 1997/01/16 08:13:14
vadim Exp $
* $Header: /cvsroot/pgsql/src/backend/storage/buffer/localbuf.c,v 1.
6 1997/04/18 02:53:37
vadim Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -47,6 +47,8 @@
#include "executor/execdebug.h"
/* for NDirectFileRead */
#include "catalog/catalog.h"
extern
long
int
LocalBufferFlushCount
;
int
NLocBuffer
=
64
;
BufferDesc
*
LocalBufferDescriptors
=
NULL
;
long
*
LocalRefCount
=
NULL
;
...
...
@@ -118,6 +120,7 @@ LocalBufferAlloc(Relation reln, BlockNumber blockNum, bool *foundPtr)
/* flush this page */
smgrwrite
(
bufrel
->
rd_rel
->
relsmgr
,
bufrel
,
bufHdr
->
tag
.
blockNum
,
(
char
*
)
MAKE_PTR
(
bufHdr
->
data
));
LocalBufferFlushCount
++
;
}
/*
...
...
@@ -192,6 +195,7 @@ FlushLocalBuffer(Buffer buffer, bool release)
Assert
(
bufrel
!=
NULL
);
smgrflush
(
bufrel
->
rd_rel
->
relsmgr
,
bufrel
,
bufHdr
->
tag
.
blockNum
,
(
char
*
)
MAKE_PTR
(
bufHdr
->
data
));
LocalBufferFlushCount
++
;
Assert
(
LocalRefCount
[
bufid
]
>
0
);
if
(
release
)
...
...
@@ -261,6 +265,7 @@ LocalBufferSync(void)
smgrwrite
(
bufrel
->
rd_rel
->
relsmgr
,
bufrel
,
buf
->
tag
.
blockNum
,
(
char
*
)
MAKE_PTR
(
buf
->
data
));
LocalBufferFlushCount
++
;
buf
->
tag
.
relId
.
relId
=
InvalidOid
;
buf
->
flags
&=
~
BM_DIRTY
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录