Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
52f1b2f3
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,发现更多精彩内容 >>
提交
52f1b2f3
编写于
4月 30, 1999
作者:
B
Bruce Momjian
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Prevent priority inversion in locking by checking for existing locks
before going into queue behind person with higher piority.
上级
7d62e9c7
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
34 addition
and
34 deletion
+34
-34
HISTORY
HISTORY
+7
-0
doc/src/sgml/install.sgml
doc/src/sgml/install.sgml
+11
-21
src/Makefile.shlib
src/Makefile.shlib
+4
-4
src/backend/storage/lmgr/lock.c
src/backend/storage/lmgr/lock.c
+9
-5
src/backend/storage/lmgr/proc.c
src/backend/storage/lmgr/proc.c
+3
-4
未找到文件。
HISTORY
浏览文件 @
52f1b2f3
PostgreSQL 6.5 Fri Apr 23 17:40:19 EDT 1999
=========================================================
A dump/restore is required.
PLACE HOLDER
PostgreSQL 6.4.2 Sat Jan 2 11:04:05 EST 1999
=========================================================
...
...
doc/src/sgml/install.sgml
浏览文件 @
52f1b2f3
...
...
@@ -4,7 +4,7 @@
<Abstract>
<Para>
Complete installation instructions for
<ProductName>Postgres</ProductName> v6.
4
.
<ProductName>Postgres</ProductName> v6.
5
.
</Para>
</Abstract>
...
...
@@ -167,8 +167,8 @@ remaining steps in the installation will happen in this account.
<Step Performance="required">
<Para>
Ftp file
<ulink url="ftp://ftp.postgresql.org/pub/postgresql-v6.
4
.tar.gz">
<filename>ftp://ftp.postgresql.org/pub/postgresql-v6.
4
.tar.gz</filename></ulink>
<ulink url="ftp://ftp.postgresql.org/pub/postgresql-v6.
5
.tar.gz">
<filename>ftp://ftp.postgresql.org/pub/postgresql-v6.
5
.tar.gz</filename></ulink>
from the Internet. Store it in your home directory.
</Para>
</Step>
...
...
@@ -268,7 +268,7 @@ from the new distribution:
<ProgramListing>
$ cd
$ gunzip -c postgresql-v6.
4
.tar.gz \
$ gunzip -c postgresql-v6.
5
.tar.gz \
| tar xvf - src/bin/pg_dump/pg_dumpall
$ chmod a+x src/bin/pg_dump/pg_dumpall
$ src/bin/pg_dump/pg_dumpall -z > db.out
...
...
@@ -411,7 +411,7 @@ $ exit
Unzip and untar the new source file. Type
<ProgramListing>
$ cd /usr/src/pgsql
$ gunzip -c ~/postgresql-v6.
4
.tar.gz | tar xvf -
$ gunzip -c ~/postgresql-v6.
5
.tar.gz | tar xvf -
</ProgramListing>
</Para>
</Step>
...
...
@@ -989,17 +989,7 @@ For example,
<listitem>
<Para>
For a i686/Linux-ELF platform, no tests failed since this is the
v6.4 regression testing reference platform.
</Para>
</listitem>
<listitem>
<Para>
For the SPARC/Linux-ELF platform, using the 970525 beta version of
<ProductName>Postgres</ProductName> v6.2 the following tests "failed":
float8 and geometry "failed" due to minor precision differences in
floating point numbers. select_views produces massively different output,
but the differences are due to minor floating point differences.
v6.5 regression testing reference platform.
</Para>
</listitem>
...
...
@@ -1109,11 +1099,11 @@ VACUUM;
<Para>
Clean up after yourself. Type
<ProgramListing>
$ rm -rf /usr/src/pgsql_6_
0
$ rm -rf /usr/local/pgsql_6_
0
$ rm -rf /usr/src/pgsql_6_
5
$ rm -rf /usr/local/pgsql_6_
5
# Also delete old database directory tree if it is not in
# /usr/local/pgsql_6_
0
/data
$ rm ~/postgresql-v6.
2.1
.tar.gz
# /usr/local/pgsql_6_
5
/data
$ rm ~/postgresql-v6.
5
.tar.gz
</ProgramListing>
</Para>
</Step>
...
...
@@ -1160,7 +1150,7 @@ $ lpr -l -s -r manpage.hp
<itemizedlist>
<listitem>
<para>
The version of <ProductName>Postgres</ProductName> (v6.
4, 6.3
.2, beta 981014, etc.).
The version of <ProductName>Postgres</ProductName> (v6.
5, 6.4
.2, beta 981014, etc.).
</para>
</listitem>
...
...
src/Makefile.shlib
浏览文件 @
52f1b2f3
...
...
@@ -6,7 +6,7 @@
# Copyright (c) 1998, Regents of the University of California
#
# IDENTIFICATION
# $Header: /cvsroot/pgsql/src/Makefile.shlib,v 1.
7 1999/03/14 16:02:57
momjian Exp $
# $Header: /cvsroot/pgsql/src/Makefile.shlib,v 1.
8 1999/04/30 02:04:49
momjian Exp $
#
#-------------------------------------------------------------------------
...
...
@@ -86,14 +86,14 @@ ifeq ($(PORTNAME), bsdi)
ifdef
BSD_SHLIB
ifeq
($(DLSUFFIX), .so)
install-shlib-dep
:=
install-shlib
shlib
:=
lib
$(NAME)$(DLSUFFIX)
.
$(SO_MAJOR_VERSION)
.
$(SO_MINOR_VERSION)
shlib
:=
lib
$(NAME)$(DLSUFFIX)
.
$(SO_MAJOR_VERSION)
.
$(SO_MINOR_VERSION)
LDFLAGS_SL
+=
-shared
CFLAGS
+=
$(CFLAGS_SL)
endif
ifeq
($(DLSUFFIX), .o)
install-shlib-dep
:=
install-shlib
shlib
:=
lib
$(NAME)$(DLSUFFIX)
.
$(SO_MAJOR_VERSION)
.
$(SO_MINOR_VERSION)
LD
:=
shlicc
shlib
:=
lib
$(NAME)$(DLSUFFIX)
.
$(SO_MAJOR_VERSION)
.
$(SO_MINOR_VERSION)
LD
:=
shlicc
LDFLAGS_SL
+=
-O
-r
CFLAGS
+=
$(CFLAGS_SL)
endif
...
...
src/backend/storage/lmgr/lock.c
浏览文件 @
52f1b2f3
...
...
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/storage/lmgr/lock.c,v 1.4
6 1999/03/06 21:17:44 tgl
Exp $
* $Header: /cvsroot/pgsql/src/backend/storage/lmgr/lock.c,v 1.4
7 1999/04/30 02:04:50 momjian
Exp $
*
* NOTES
* Outside modules can create a lock table and acquire/release
...
...
@@ -820,13 +820,17 @@ LockResolveConflicts(LOCKMETHOD lockmethod,
/* ------------------------
* If someone with a greater priority is waiting for the lock,
* do not continue and share the lock, even if we can. bjm
* Don't do this if the process already has some locks, because
* this could hold up other people waiting on our locks, causing
* a priority inversion. bjm
* ------------------------
*/
int
myprio
=
LockMethodTable
[
lockmethod
]
->
ctl
->
prio
[
lockmode
];
PROC_QUEUE
*
waitQueue
=
&
(
lock
->
waitProcs
);
PROC
*
topproc
=
(
PROC
*
)
MAKE_PTR
(
waitQueue
->
links
.
prev
);
if
(
waitQueue
->
size
&&
topproc
->
prio
>
myprio
)
if
(
SHMQueueEmpty
(
lockQueue
)
&&
waitQueue
->
size
&&
topproc
->
prio
>
myprio
)
{
XID_PRINT
(
"LockResolveConflicts: higher priority proc waiting"
,
result
);
...
...
@@ -1595,7 +1599,7 @@ DeadLockCheck(SHM_QUEUE *lockQueue, LOCK *findlock, bool skip_check)
*
* The lock we are waiting for is already in MyProc->lockQueue so we
* need to skip it here. We are trying to find it in someone
* else's lockQueue.
* else's lockQueue.
bjm
*/
if
(
lock
==
findlock
&&
!
skip_check
)
return
true
;
...
...
@@ -1625,7 +1629,7 @@ DeadLockCheck(SHM_QUEUE *lockQueue, LOCK *findlock, bool skip_check)
*
* Basically, the test is, "Do we both hold some lock on
* findlock, and we are both waiting in the lock
* queue?"
* queue?"
bjm
*/
Assert
(
skip_check
);
...
...
@@ -1672,7 +1676,7 @@ DeadLockCheck(SHM_QUEUE *lockQueue, LOCK *findlock, bool skip_check)
* hold locks and are waiting. Now we check for
* cases where we have two or more tables in a
* deadlock. We do this by continuing to search
* for someone holding a lock
* for someone holding a lock
bjm
*/
if
(
DeadLockCheck
(
&
(
proc
->
lockQueue
),
findlock
,
false
))
return
true
;
...
...
src/backend/storage/lmgr/proc.c
浏览文件 @
52f1b2f3
...
...
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.5
2 1999/03/28 20:32:26 vadim
Exp $
* $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.5
3 1999/04/30 02:04:51 momjian
Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -46,7 +46,7 @@
* This is so that we can support more backends. (system-wide semaphore
* sets run out pretty fast.) -ay 4/95
*
* $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.5
2 1999/03/28 20:32:26 vadim
Exp $
* $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.5
3 1999/04/30 02:04:51 momjian
Exp $
*/
#include <sys/time.h>
#include <unistd.h>
...
...
@@ -516,8 +516,7 @@ ProcSleep(PROC_QUEUE *waitQueue,/* lock->waitProcs */
* In a full queue, we would have a reader holding a lock, then a writer
* gets the lock, then a bunch of readers, made up of readers who
* could not share the first readlock because a writer was waiting,
* and new readers arriving while the writer had the lock.
*
* and new readers arriving while the writer had the lock. bjm
*/
proc
=
(
PROC
*
)
MAKE_PTR
(
waitQueue
->
links
.
prev
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录