Repository: helix
Updated Branches:
  refs/heads/helix-0.6.x fd39189bb -> 99baacf7f


[HELIX-572] Fixing External View update logic for bucketized resource


Project: http://git-wip-us.apache.org/repos/asf/helix/repo
Commit: http://git-wip-us.apache.org/repos/asf/helix/commit/99baacf7
Tree: http://git-wip-us.apache.org/repos/asf/helix/tree/99baacf7
Diff: http://git-wip-us.apache.org/repos/asf/helix/diff/99baacf7

Branch: refs/heads/helix-0.6.x
Commit: 99baacf7f19a09d972754902c50f1618fc8b804c
Parents: fd39189
Author: Kishore Gopalakrishna <[email protected]>
Authored: Sun Mar 8 21:26:32 2015 -0700
Committer: Kishore Gopalakrishna <[email protected]>
Committed: Sun Mar 8 21:26:32 2015 -0700

----------------------------------------------------------------------
 .../helix/manager/zk/ZKHelixDataAccessor.java    |  2 +-
 .../integration/TestBucketizedResource.java      | 19 +++++++++++++++++++
 hpost-review.sh                                  |  2 +-
 3 files changed, 21 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/helix/blob/99baacf7/helix-core/src/main/java/org/apache/helix/manager/zk/ZKHelixDataAccessor.java
----------------------------------------------------------------------
diff --git 
a/helix-core/src/main/java/org/apache/helix/manager/zk/ZKHelixDataAccessor.java 
b/helix-core/src/main/java/org/apache/helix/manager/zk/ZKHelixDataAccessor.java
index 169c993..8c9fc8d 100644
--- 
a/helix-core/src/main/java/org/apache/helix/manager/zk/ZKHelixDataAccessor.java
+++ 
b/helix-core/src/main/java/org/apache/helix/manager/zk/ZKHelixDataAccessor.java
@@ -223,6 +223,7 @@ public class ZKHelixDataAccessor implements 
HelixDataAccessor {
       if (record != null) {
         record.setCreationTime(stat.getCtime());
         record.setModifiedTime(stat.getMtime());
+        record.setVersion(stat.getVersion());
       }
     } catch (ZkNoNodeException e) {
       // OK
@@ -401,7 +402,6 @@ public class ZKHelixDataAccessor implements 
HelixDataAccessor {
         if (value.getBucketSize() == 0) {
           records.add(value.getRecord());
         } else {
-          _baseDataAccessor.remove(path, options);
 
           ZNRecord metaRecord = new ZNRecord(value.getId());
           metaRecord.setSimpleFields(value.getRecord().getSimpleFields());

http://git-wip-us.apache.org/repos/asf/helix/blob/99baacf7/helix-core/src/test/java/org/apache/helix/integration/TestBucketizedResource.java
----------------------------------------------------------------------
diff --git 
a/helix-core/src/test/java/org/apache/helix/integration/TestBucketizedResource.java
 
b/helix-core/src/test/java/org/apache/helix/integration/TestBucketizedResource.java
index 207a318..2b5e2bc 100644
--- 
a/helix-core/src/test/java/org/apache/helix/integration/TestBucketizedResource.java
+++ 
b/helix-core/src/test/java/org/apache/helix/integration/TestBucketizedResource.java
@@ -21,6 +21,7 @@ package org.apache.helix.integration;
 
 import java.util.Date;
 
+import org.apache.helix.PropertyKey;
 import org.apache.helix.TestHelper;
 import org.apache.helix.ZNRecord;
 import org.apache.helix.PropertyKey.Builder;
@@ -28,6 +29,7 @@ import 
org.apache.helix.integration.manager.ClusterControllerManager;
 import org.apache.helix.integration.manager.MockParticipantManager;
 import org.apache.helix.manager.zk.ZKHelixDataAccessor;
 import org.apache.helix.manager.zk.ZkBaseDataAccessor;
+import org.apache.helix.model.ExternalView;
 import org.apache.helix.model.IdealState;
 import org.apache.helix.tools.ClusterStateVerifier;
 import 
org.apache.helix.tools.ClusterStateVerifier.BestPossAndExtViewZkVerifier;
@@ -77,6 +79,7 @@ public class TestBucketizedResource extends 
ZkIntegrationTestBase {
       participants[i] = new MockParticipantManager(ZK_ADDR, clusterName, 
instanceName);
       participants[i].syncStart();
     }
+    PropertyKey evKey = accessor.keyBuilder().externalView("TestDB0");
 
     boolean result =
         ClusterStateVerifier
@@ -88,6 +91,22 @@ public class TestBucketizedResource extends 
ZkIntegrationTestBase {
             clusterName));
     Assert.assertTrue(result);
 
+    ExternalView ev = accessor.getProperty(evKey);
+    int v1 = ev.getRecord().getVersion();
+    // disable the participant
+    _gSetupTool.getClusterManagementTool().enableInstance(clusterName,
+        participants[0].getInstanceName(), false);
+    // wait for change in EV
+    result =
+        ClusterStateVerifier.verifyByZkCallback(new 
BestPossAndExtViewZkVerifier(ZK_ADDR,
+            clusterName));
+    Assert.assertTrue(result);
+
+    // read the version in EV
+    ev = accessor.getProperty(evKey);
+    int v2 = ev.getRecord().getVersion();
+    Assert.assertEquals(v2 > v1, true);
+
     // clean up
     controller.syncStop();
     for (int i = 0; i < 5; i++) {

http://git-wip-us.apache.org/repos/asf/helix/blob/99baacf7/hpost-review.sh
----------------------------------------------------------------------
diff --git a/hpost-review.sh b/hpost-review.sh
index 82cbcf9..e869f25 100755
--- a/hpost-review.sh
+++ b/hpost-review.sh
@@ -54,5 +54,5 @@ if [[ $JIRA_STATUS -eq 404 ]]; then
     usage
 fi;
 
-post-review --server="https://reviews.apache.org"; --target-groups=helix 
--summary="$(git log --pretty=format:%s $REVLIST)" --description="$(git 
whatchanged $REVLIST)" --diff-filename=<(git diff --no-prefix $REVLIST) 
--repository-url=git://git.apache.org/helix.git -o --bugs-closed=$BUG_NAME $*
+rbt post --server="https://reviews.apache.org"; --target-groups=helix 
--summary="$(git log --pretty=format:%s $REVLIST)" --description="$(git 
whatchanged $REVLIST)" --diff-filename=<(git diff --no-prefix $REVLIST) 
--repository-url=git://git.apache.org/helix.git -o --bugs-closed=$BUG_NAME $*
 

Reply via email to