Repository: incubator-hawq
Updated Branches:
  refs/heads/master 497ae5db9 -> b4993b2be


HAWQ-812. only hdfs file/dir can be skipped at recovery PASS3


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

Branch: refs/heads/master
Commit: b4993b2be310fdfaa19b1502ed76c19bd652e361
Parents: 497ae5d
Author: Ming LI <[email protected]>
Authored: Thu Jun 30 18:34:36 2016 +0800
Committer: Ming LI <[email protected]>
Committed: Mon Jul 4 10:28:59 2016 +0800

----------------------------------------------------------------------
 src/backend/cdb/cdbmirroredbufferpool.c         |  4 +--
 .../cdb/cdbresynchronizechangetracking.c        | 37 ++++++++++++--------
 2 files changed, 24 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/b4993b2b/src/backend/cdb/cdbmirroredbufferpool.c
----------------------------------------------------------------------
diff --git a/src/backend/cdb/cdbmirroredbufferpool.c 
b/src/backend/cdb/cdbmirroredbufferpool.c
index 94f8a33..8799912 100644
--- a/src/backend/cdb/cdbmirroredbufferpool.c
+++ b/src/backend/cdb/cdbmirroredbufferpool.c
@@ -137,7 +137,7 @@ static void MirroredBufferPool_DoOpen(
                if (segmentFileNum == 0)
                        sprintf(path, "%s/%u", dbPath, relFileNode->relNode);
                else
-                       sprintf(path, "%s/%u.%u", dbPath, relFileNode->relNode, 
segmentFileNum);
+                       sprintf(path, "%s/%u/%u", dbPath, relFileNode->relNode, 
segmentFileNum);
 
                errno = 0;
                
@@ -469,7 +469,7 @@ static void MirroredBufferPool_DoDrop(
                if (segmentFileNum == 0)
                        sprintf(path, "%s/%u", dbPath, relFileNode->relNode);
                else
-                       sprintf(path, "%s/%u.%u", dbPath, relFileNode->relNode, 
segmentFileNum);
+                       sprintf(path, "%s/%u/%u", dbPath, relFileNode->relNode, 
segmentFileNum);
 
                errno = 0;
                

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/b4993b2b/src/backend/cdb/cdbresynchronizechangetracking.c
----------------------------------------------------------------------
diff --git a/src/backend/cdb/cdbresynchronizechangetracking.c 
b/src/backend/cdb/cdbresynchronizechangetracking.c
index e25ad0a..ba6bcfa 100644
--- a/src/backend/cdb/cdbresynchronizechangetracking.c
+++ b/src/backend/cdb/cdbresynchronizechangetracking.c
@@ -201,23 +201,30 @@ void ChangeTracking_GetRelationChangeInfoFromXlog(
                case RM_MMXLOG_ID:
                        switch (info)
                        {
-                               // relation dirs and node files create/drop 
need to be tracked down
-                // so that we can skip at recovery pass3
-                case MMXLOG_CREATE_DIR:
-                               case MMXLOG_CREATE_FILE:
-                case MMXLOG_REMOVE_DIR:
+                               // relation dirs and node files create/drop on 
hdfs need to be tracked down
+                               // so that we can skip at recovery pass3
+                               case MMXLOG_CREATE_DIR:
+                               case MMXLOG_REMOVE_DIR:
                                case MMXLOG_REMOVE_FILE:
+                               case MMXLOG_CREATE_FILE:
                                {
-                                       xl_heap_freeze *xlrec = (xl_heap_freeze 
*) data;
-
-                                       ChangeTracking_AddRelationChangeInfo(
-                                                                               
                           relationChangeInfoArray,
-                                                                               
                           relationChangeInfoArrayCount,
-                                                                               
                           relationChangeInfoMaxSize,
-                                                                               
                           &(xlrec->heapnode.node),
-                                                                               
                           InvalidBlockNumber,
-                                                                               
                           &xlrec->heapnode.persistentTid,
-                                                                               
                           xlrec->heapnode.persistentSerialNum);
+                                       xl_mm_fs_obj *xlrec = (xl_mm_fs_obj *) 
data;
+                                       if(xlrec->shared) // it is hdfs
+                                       {
+                                               // Only hdfs file/dir need to 
be skip
+                                               RelFileNode rfn;
+                                               rfn.spcNode = xlrec->tablespace;
+                                               rfn.dbNode = xlrec->database;
+                                               rfn.relNode = 
xlrec->relfilenode;
+                                               
ChangeTracking_AddRelationChangeInfo(
+                                                                               
                                        relationChangeInfoArray,
+                                                                               
                                        relationChangeInfoArrayCount,
+                                                                               
                                        relationChangeInfoMaxSize,
+                                                                               
                                        &(rfn),
+                                                                               
                                        InvalidBlockNumber,
+                                                                               
                                        &xlrec->persistentTid,
+                                                                               
                                        xlrec->persistentSerialNum);
+                                       }
                                        break;
                                }
                                default:

Reply via email to