You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hawq.apache.org by wl...@apache.org on 2015/12/22 08:29:18 UTC

incubator-hawq git commit: HAWQ-254.Don't register segment into catalog table if master is running in utility mode

Repository: incubator-hawq
Updated Branches:
  refs/heads/master ec8ec9309 -> 2f581545d


HAWQ-254.Don't register segment into catalog table if master is running in utility mode


Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/2f581545
Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/2f581545
Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/2f581545

Branch: refs/heads/master
Commit: 2f581545d53f0c1811f1ff98a63a4ebb35c72e4b
Parents: ec8ec93
Author: Wen Lin <wl...@pivotal.io>
Authored: Tue Dec 22 15:37:55 2015 +0800
Committer: Wen Lin <wl...@pivotal.io>
Committed: Tue Dec 22 15:37:55 2015 +0800

----------------------------------------------------------------------
 .../communication/rmcomm_RM2RMSEG.c               | 10 ++++++++--
 src/backend/resourcemanager/requesthandler.c      |  8 ++++++--
 src/backend/resourcemanager/resourcemanager.c     |  5 ++++-
 src/backend/resourcemanager/resourcepool.c        | 18 ++++++++++++------
 4 files changed, 30 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/2f581545/src/backend/resourcemanager/communication/rmcomm_RM2RMSEG.c
----------------------------------------------------------------------
diff --git a/src/backend/resourcemanager/communication/rmcomm_RM2RMSEG.c b/src/backend/resourcemanager/communication/rmcomm_RM2RMSEG.c
index c86a4d6..ecbc2b7 100644
--- a/src/backend/resourcemanager/communication/rmcomm_RM2RMSEG.c
+++ b/src/backend/resourcemanager/communication/rmcomm_RM2RMSEG.c
@@ -233,7 +233,10 @@ void receivedRUAliveResponse(AsyncCommMessageHandlerContext  context,
 			 */
 			returnAllGRMResourceFromSegment(segres);
 			/* Set the host down in gp_segment_configuration table */
-			update_segment_status(segres->Stat->ID + REGISTRATION_ORDER_OFFSET, SEGMENT_STATUS_DOWN);
+			if (Gp_role != GP_ROLE_UTILITY)
+			{
+				update_segment_status(segres->Stat->ID + REGISTRATION_ORDER_OFFSET, SEGMENT_STATUS_DOWN);
+			}
 			/* Set the host down. */
 			elog(LOG, "Resource manager sets host %s from up to down "
 					  "due to not getting valid RUAlive response.",
@@ -279,7 +282,10 @@ void sentRUAliveError(AsyncCommMessageHandlerContext context)
 		 */
 		returnAllGRMResourceFromSegment(segres);
 		/* Set the host down in gp_segment_configuration table */
-		update_segment_status(segres->Stat->ID + REGISTRATION_ORDER_OFFSET, SEGMENT_STATUS_DOWN);
+		if (Gp_role != GP_ROLE_UTILITY)
+		{
+			update_segment_status(segres->Stat->ID + REGISTRATION_ORDER_OFFSET, SEGMENT_STATUS_DOWN);
+		}
 		/* Set the host down. */
 		elog(LOG, "Resource manager sets host %s from up to down "
 				  "due to communication error.",

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/2f581545/src/backend/resourcemanager/requesthandler.c
----------------------------------------------------------------------
diff --git a/src/backend/resourcemanager/requesthandler.c b/src/backend/resourcemanager/requesthandler.c
index 9693656..9702e5b 100644
--- a/src/backend/resourcemanager/requesthandler.c
+++ b/src/backend/resourcemanager/requesthandler.c
@@ -976,8 +976,12 @@ bool handleRMRequestSegmentIsDown(void **arg)
 		        	/* Make resource pool remove unused containers */
 		        	returnAllGRMResourceFromSegment(segres);
 		        	/* Set the host down in gp_segment_configuration table */
-		        	update_segment_status(segres->Stat->ID + REGISTRATION_ORDER_OFFSET,
-		        						  SEGMENT_STATUS_DOWN);
+		        	if (Gp_role != GP_ROLE_UTILITY)
+		        	{
+		        		update_segment_status(segres->Stat->ID + REGISTRATION_ORDER_OFFSET,
+		        							  SEGMENT_STATUS_DOWN);
+		        	}
+
 		        	/* Set the host down. */
 		        	elog(LOG, "Resource manager sets host %s from up to down "
 		        			  "due to not reaching host.", hostname);

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/2f581545/src/backend/resourcemanager/resourcemanager.c
----------------------------------------------------------------------
diff --git a/src/backend/resourcemanager/resourcemanager.c b/src/backend/resourcemanager/resourcemanager.c
index 160a4b7..9549855 100644
--- a/src/backend/resourcemanager/resourcemanager.c
+++ b/src/backend/resourcemanager/resourcemanager.c
@@ -2627,7 +2627,10 @@ void updateStatusOfAllNodes() {
         	 * This call makes resource pool remove unused containers.
         	 */
         	returnAllGRMResourceFromSegment(node);
-        	update_segment_status(idx + REGISTRATION_ORDER_OFFSET, SEGMENT_STATUS_DOWN);
+        	if (Gp_role != GP_ROLE_UTILITY)
+        	{
+        		update_segment_status(idx + REGISTRATION_ORDER_OFFSET, SEGMENT_STATUS_DOWN);
+        	}
 
         	elog(LOG, "Resource manager sets host %s from up to down.",
         			  GET_SEGRESOURCE_HOSTNAME(node));

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/2f581545/src/backend/resourcemanager/resourcepool.c
----------------------------------------------------------------------
diff --git a/src/backend/resourcemanager/resourcepool.c b/src/backend/resourcemanager/resourcepool.c
index 95bb948..4c74029 100644
--- a/src/backend/resourcemanager/resourcepool.c
+++ b/src/backend/resourcemanager/resourcepool.c
@@ -716,11 +716,14 @@ int addHAWQSegWithSegStat(SegStat segstat)
 		getSegInfoHostAddrStr(&(segresource->Stat->Info), 0, &straddr);
 		Assert(straddr->Address != NULL);
 
-		add_segment_config_row(segid+REGISTRATION_ORDER_OFFSET,
-							   hostname,
-				               straddr->Address,
-							   segresource->Stat->Info.port,
-							   SEGMENT_ROLE_PRIMARY);
+		if (Gp_role != GP_ROLE_UTILITY)
+		{
+			add_segment_config_row(segid+REGISTRATION_ORDER_OFFSET,
+								   hostname,
+								   straddr->Address,
+								   segresource->Stat->Info.port,
+								   SEGMENT_ROLE_PRIMARY);
+		}
 
 		/* Add this node into the io bytes workload BBST structure. */
 		addSegResourceIOBytesWorkloadIndex(segresource);
@@ -742,7 +745,10 @@ int addHAWQSegWithSegStat(SegStat segstat)
 		if ( !IS_SEGSTAT_FTSAVAILABLE(segresource->Stat) )
 		{
 			setSegResHAWQAvailability(segresource, RESOURCE_SEG_STATUS_AVAILABLE);
-			update_segment_status(segresource->Stat->ID + REGISTRATION_ORDER_OFFSET, SEGMENT_STATUS_UP);
+			if (Gp_role != GP_ROLE_UTILITY)
+			{
+				update_segment_status(segresource->Stat->ID + REGISTRATION_ORDER_OFFSET, SEGMENT_STATUS_UP);
+			}
 
 			elog(LOG, "Resource manager sets segment %s(%d) up from down.",
 					  GET_SEGRESOURCE_HOSTNAME(segresource),