Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
22a1d7eb
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,发现更多精彩内容 >>
提交
22a1d7eb
编写于
9月 18, 2017
作者:
X
Xin Zhang
提交者:
Xin Zhang
9月 25, 2017
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add #define macros for gp_segment_configuration
Signed-off-by:
N
Ashwin Agrawal
<
aagrawal@pivotal.io
>
上级
ebac7aaa
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
34 addition
and
21 deletion
+34
-21
src/backend/cdb/cdbutil.c
src/backend/cdb/cdbutil.c
+2
-2
src/backend/fts/fts.c
src/backend/fts/fts.c
+12
-12
src/backend/utils/gp/segadmin.c
src/backend/utils/gp/segadmin.c
+7
-7
src/include/catalog/gp_segment_config.h
src/include/catalog/gp_segment_config.h
+13
-0
未找到文件。
src/backend/cdb/cdbutil.c
浏览文件 @
22a1d7eb
...
...
@@ -1093,7 +1093,7 @@ master_standby_dbid(void)
/*
* SELECT * FROM gp_segment_configuration
* WHERE content = -1 AND role =
'm'
* WHERE content = -1 AND role =
GP_SEGMENT_CONFIGURATION_ROLE_MIRROR
*/
rel
=
heap_open
(
GpSegmentConfigRelationId
,
AccessShareLock
);
ScanKeyInit
(
&
scankey
[
0
],
...
...
@@ -1103,7 +1103,7 @@ master_standby_dbid(void)
ScanKeyInit
(
&
scankey
[
1
],
Anum_gp_segment_configuration_role
,
BTEqualStrategyNumber
,
F_CHAREQ
,
CharGetDatum
(
'm'
));
CharGetDatum
(
GP_SEGMENT_CONFIGURATION_ROLE_MIRROR
));
/* no index */
scan
=
systable_beginscan
(
rel
,
InvalidOid
,
false
,
SnapshotNow
,
2
,
scankey
);
...
...
src/backend/fts/fts.c
浏览文件 @
22a1d7eb
...
...
@@ -407,13 +407,13 @@ readCdbComponentInfoAndUpdateStatus(MemoryContext probeContext)
if
(
SEGMENT_IS_ACTIVE_PRIMARY
(
segInfo
))
segStatus
|=
FTS_STATUS_PRIMARY
;
if
(
segInfo
->
preferred_role
==
'p'
)
if
(
segInfo
->
preferred_role
==
GP_SEGMENT_CONFIGURATION_ROLE_PRIMARY
)
segStatus
|=
FTS_STATUS_DEFINEDPRIMARY
;
if
(
segInfo
->
mode
==
's'
)
if
(
segInfo
->
mode
==
GP_SEGMENT_CONFIGURATION_MODE_INSYNC
)
segStatus
|=
FTS_STATUS_SYNCHRONIZED
;
if
(
segInfo
->
mode
==
'c'
)
if
(
segInfo
->
mode
==
GP_SEGMENT_CONFIGURATION_MODE_CHANGETRACKING
)
segStatus
|=
FTS_STATUS_CHANGELOGGING
;
ftsProbeInfo
->
fts_status
[
segInfo
->
dbid
]
=
segStatus
;
...
...
@@ -855,7 +855,7 @@ probeUpdateConfig(FtsSegmentStatusChange *changes, int changeCount)
"FTS: content %d fault marking status %s%s role %c"
,
change
->
segindex
,
valid
?
"UP"
:
"DOWN"
,
(
changelogging
)
?
" mode: change-tracking"
:
""
,
primary
?
'p'
:
'm'
);
primary
?
GP_SEGMENT_CONFIGURATION_ROLE_PRIMARY
:
GP_SEGMENT_CONFIGURATION_ROLE_MIRROR
);
histvals
[
Anum_gp_configuration_history_desc
-
1
]
=
CStringGetTextDatum
(
desc
);
...
...
@@ -879,15 +879,15 @@ probeUpdateConfig(FtsSegmentStatusChange *changes, int changeCount)
RelationGetRelationName
(
configrel
));
}
configvals
[
Anum_gp_segment_configuration_role
-
1
]
=
CharGetDatum
(
primary
?
'p'
:
'm'
);
CharGetDatum
(
primary
?
GP_SEGMENT_CONFIGURATION_ROLE_PRIMARY
:
GP_SEGMENT_CONFIGURATION_ROLE_MIRROR
);
repls
[
Anum_gp_segment_configuration_role
-
1
]
=
true
;
configvals
[
Anum_gp_segment_configuration_status
-
1
]
=
CharGetDatum
(
valid
?
'u'
:
'd'
);
CharGetDatum
(
valid
?
GP_SEGMENT_CONFIGURATION_STATUS_UP
:
GP_SEGMENT_CONFIGURATION_STATUS_DOWN
);
repls
[
Anum_gp_segment_configuration_status
-
1
]
=
true
;
if
(
changelogging
)
{
configvals
[
Anum_gp_segment_configuration_mode
-
1
]
=
CharGetDatum
(
'c'
);
CharGetDatum
(
GP_SEGMENT_CONFIGURATION_MODE_CHANGETRACKING
);
}
repls
[
Anum_gp_segment_configuration_mode
-
1
]
=
changelogging
;
...
...
@@ -958,10 +958,10 @@ FtsDumpChanges(FtsSegmentStatusChange *changes, int changeEntries)
elog
(
LOG
,
"FTS: change state for segment (dbid=%d, content=%d) from ('%c','%c') to ('%c','%c')"
,
changes
[
i
].
dbid
,
changes
[
i
].
segindex
,
(
old_alive
?
'u'
:
'd'
),
(
old_pri
?
'p'
:
'm'
),
(
new_alive
?
'u'
:
'd'
),
(
new_pri
?
'p'
:
'm'
));
(
old_alive
?
GP_SEGMENT_CONFIGURATION_STATUS_UP
:
GP_SEGMENT_CONFIGURATION_STATUS_DOWN
),
(
old_pri
?
GP_SEGMENT_CONFIGURATION_ROLE_PRIMARY
:
GP_SEGMENT_CONFIGURATION_ROLE_MIRROR
),
(
new_alive
?
GP_SEGMENT_CONFIGURATION_STATUS_UP
:
GP_SEGMENT_CONFIGURATION_STATUS_DOWN
),
(
new_pri
?
GP_SEGMENT_CONFIGURATION_ROLE_PRIMARY
:
GP_SEGMENT_CONFIGURATION_ROLE_MIRROR
));
}
}
...
...
@@ -1038,7 +1038,7 @@ FtsMarkSegmentsInSync(CdbComponentDatabaseInfo *primary, CdbComponentDatabaseInf
elog
(
ERROR
,
"FTS cannot find dbid (%d, %d) in %s"
,
primary
->
dbid
,
mirror
->
dbid
,
RelationGetRelationName
(
configrel
));
}
configvals
[
Anum_gp_segment_configuration_mode
-
1
]
=
CharGetDatum
(
's'
);
configvals
[
Anum_gp_segment_configuration_mode
-
1
]
=
CharGetDatum
(
GP_SEGMENT_CONFIGURATION_MODE_INSYNC
);
repls
[
Anum_gp_segment_configuration_mode
-
1
]
=
true
;
newtuple
=
heap_modify_tuple
(
configtuple
,
RelationGetDescr
(
configrel
),
configvals
,
confignulls
,
repls
);
...
...
src/backend/utils/gp/segadmin.c
浏览文件 @
22a1d7eb
...
...
@@ -760,8 +760,8 @@ gp_add_segment(PG_FUNCTION_ARGS)
new
.
db
.
address
=
address
;
new
.
db
.
port
=
port
;
new
.
db
.
filerep_port
=
-
1
;
new
.
db
.
mode
=
's'
;
new
.
db
.
status
=
'u'
;
new
.
db
.
mode
=
GP_SEGMENT_CONFIGURATION_MODE_INSYNC
;
new
.
db
.
status
=
GP_SEGMENT_CONFIGURATION_STATUS_UP
;
new
.
db
.
role
=
SEGMENT_ROLE_PRIMARY
;
new
.
db
.
preferred_role
=
SEGMENT_ROLE_PRIMARY
;
...
...
@@ -885,8 +885,8 @@ gp_add_segment_mirror(PG_FUNCTION_ARGS)
new
.
db
.
address
=
address
;
new
.
db
.
port
=
port
;
new
.
db
.
filerep_port
=
rep_port
;
new
.
db
.
mode
=
's'
;
new
.
db
.
status
=
'u'
;
new
.
db
.
mode
=
GP_SEGMENT_CONFIGURATION_MODE_INSYNC
;
new
.
db
.
status
=
GP_SEGMENT_CONFIGURATION_STATUS_UP
;
new
.
db
.
role
=
SEGMENT_ROLE_MIRROR
;
new
.
db
.
preferred_role
=
preferredPrimaryDbId
==
0
?
SEGMENT_ROLE_PRIMARY
:
SEGMENT_ROLE_MIRROR
;
...
...
@@ -999,7 +999,7 @@ gp_add_master_standby(PG_FUNCTION_ARGS)
/*
* Don't reference GpIdentity.dbid, as it is legitimate to set -1
* for -b option in utility mode. Content ID = -1 AND role =
'p'
is
* for -b option in utility mode. Content ID = -1 AND role =
GP_SEGMENT_CONFIGURATION_ROLE_PRIMARY
is
* the definition of primary master.
*/
master_dbid
=
contentid_get_dbid
(
MASTER_CONTENT_ID
,
...
...
@@ -1010,8 +1010,8 @@ gp_add_master_standby(PG_FUNCTION_ARGS)
new
.
db
.
dbid
=
maxdbid
+
1
;
new
.
db
.
role
=
SEGMENT_ROLE_MIRROR
;
new
.
db
.
preferred_role
=
SEGMENT_ROLE_MIRROR
;
new
.
db
.
mode
=
's'
;
new
.
db
.
status
=
'u'
;
new
.
db
.
mode
=
GP_SEGMENT_CONFIGURATION_MODE_INSYNC
;
new
.
db
.
status
=
GP_SEGMENT_CONFIGURATION_STATUS_UP
;
new
.
db
.
hostname
=
DatumGetCString
(
DirectFunctionCall1
(
textout
,
PointerGetDatum
(
PG_GETARG_TEXT_P
(
0
))));
...
...
src/include/catalog/gp_segment_config.h
浏览文件 @
22a1d7eb
...
...
@@ -26,6 +26,19 @@
#define MASTER_CONTENT_ID (-1)
#define InvalidDbid 0
#define GP_SEGMENT_CONFIGURATION_ROLE_PRIMARY 'p'
#define GP_SEGMENT_CONFIGURATION_ROLE_MIRROR 'm'
#define GP_SEGMENT_CONFIGURATION_STATUS_UP 'u'
#define GP_SEGMENT_CONFIGURATION_STATUS_DOWN 'd'
#define GP_SEGMENT_CONFIGURATION_MODE_INSYNC 's'
#define GP_SEGMENT_CONFIGURATION_MODE_NOTINSYNC 'n'
#define GP_SEGMENT_CONFIGURATION_MODE_CHANGETRACKING 'c'
#define GP_SEGMENT_CONFIGURATION_MODE_RESYNC 'r'
/* ----------------
* gp_segment_configuration definition. cpp turns this into
* typedef struct FormData_gp_segment_configuration
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录