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 $*
