You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hawq.apache.org by pa...@apache.org on 2017/05/10 09:28:36 UTC
incubator-hawq git commit: HAWQ-1457. Shared memory for SegmentStatus
and MetadataCache should not be allocated on segments.
Repository: incubator-hawq
Updated Branches:
refs/heads/master 9476a0134 -> d1d09bfd2
HAWQ-1457. Shared memory for SegmentStatus and MetadataCache should not be allocated on segments.
Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/d1d09bfd
Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/d1d09bfd
Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/d1d09bfd
Branch: refs/heads/master
Commit: d1d09bfd24462da5acd67b4eb01f7f8c65ca96ef
Parents: 9476a01
Author: Paul Guo <pa...@gmail.com>
Authored: Tue May 9 15:05:05 2017 +0800
Committer: Paul Guo <pa...@gmail.com>
Committed: Wed May 10 17:27:44 2017 +0800
----------------------------------------------------------------------
src/backend/resourcemanager/resourcemanager.c | 2 +-
src/backend/storage/ipc/ipci.c | 13 +++++++++----
2 files changed, 10 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/d1d09bfd/src/backend/resourcemanager/resourcemanager.c
----------------------------------------------------------------------
diff --git a/src/backend/resourcemanager/resourcemanager.c b/src/backend/resourcemanager/resourcemanager.c
index 652c83f..1ab9bf9 100644
--- a/src/backend/resourcemanager/resourcemanager.c
+++ b/src/backend/resourcemanager/resourcemanager.c
@@ -69,7 +69,7 @@ extern bool FindMyDatabase(const char *name, Oid *db_id, Oid *db_tablespace);
static char *probeDatabase = "template1";
/* Bitmap to monitor segment health info (up/down). */
-bits8 *shm_segment_status;
+static bits8 *shm_segment_status;
void MarkSegmentUp(int x);
void MarkSegmentDown(int x);
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/d1d09bfd/src/backend/storage/ipc/ipci.c
----------------------------------------------------------------------
diff --git a/src/backend/storage/ipc/ipci.c b/src/backend/storage/ipc/ipci.c
index f65f0ff..54638d4 100644
--- a/src/backend/storage/ipc/ipci.c
+++ b/src/backend/storage/ipc/ipci.c
@@ -170,9 +170,12 @@ CreateSharedMemoryAndSemaphores(bool makePrivate, int port)
size = add_size(size, PersistentRelfile_ShmemSize());
size = add_size(size, Pass2Recovery_ShmemSize());
size = add_size(size, FSCredShmemSize());
- size = add_size(size, SegmentStatus_ShmSize());
+ if ((AmIMaster() || AmIStandby()) && Gp_role == GP_ROLE_DISPATCH) {
+ size = add_size(size, SegmentStatus_ShmSize());
+ elog(WARNING, "add_size %d on pid %d", (int)size, getpid());
+ }
- if (Gp_role == GP_ROLE_DISPATCH || Gp_role == GP_ROLE_UTILITY)
+ if ((AmIMaster() || AmIStandby()) && (Gp_role == GP_ROLE_DISPATCH || Gp_role == GP_ROLE_UTILITY))
{
size = add_size(size, MetadataCache_ShmemSize());
elog(LOG, "Metadata Cache Share Memory Size : %lu", MetadataCache_ShmemSize());
@@ -294,7 +297,7 @@ CreateSharedMemoryAndSemaphores(bool makePrivate, int port)
PersistentRelation_ShmemInit();
PersistentRelfile_ShmemInit();
Pass2Recovery_ShmemInit();
- if (Gp_role == GP_ROLE_DISPATCH || Gp_role == GP_ROLE_UTILITY)
+ if ((AmIMaster() || AmIStandby()) && (Gp_role == GP_ROLE_DISPATCH || Gp_role == GP_ROLE_UTILITY))
{
MetadataCache_ShmemInit();
}
@@ -366,7 +369,9 @@ CreateSharedMemoryAndSemaphores(bool makePrivate, int port)
FSCredShmemInit();
- SegmentStatusShmemInit();
+ if ((AmIMaster() || AmIStandby()) && Gp_role == GP_ROLE_DISPATCH)
+ SegmentStatusShmemInit();
+
#ifdef EXEC_BACKEND
/*