diff options
author | Geir Storli <geirstorli@yahoo.no> | 2018-05-03 14:12:37 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-03 14:12:37 +0200 |
commit | c0267f9282d04a73e86586b19c20f588d13106ee (patch) | |
tree | 6d45aabcefde0c52b17120fda469cc8650833e86 /clustercontroller-core/src/main | |
parent | f49191380fd3e3ab05723e669e5a0cc325949d00 (diff) | |
parent | 08112bec42cf9633609da34b28675581846f223d (diff) |
Merge pull request #5766 from vespa-engine/vekterli/only-derive-default-space-node-states-when-global-doc-types-present
Only derive default bucket space node states when cluster has global docs
Diffstat (limited to 'clustercontroller-core/src/main')
2 files changed, 13 insertions, 2 deletions
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java index e781bf3b145..c2956fe738c 100644 --- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java +++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java @@ -857,8 +857,16 @@ public class FleetController implements NodeStateOrHostInfoChangeHandler, NodeAd } private ClusterStateDeriver createBucketSpaceStateDeriver() { - return new MaintenanceWhenPendingGlobalMerges(stateVersionTracker.createMergePendingChecker(), - createDefaultSpaceMaintenanceTransitionConstraint()); + if (options.clusterHasGlobalDocumentTypes) { + return new MaintenanceWhenPendingGlobalMerges(stateVersionTracker.createMergePendingChecker(), + createDefaultSpaceMaintenanceTransitionConstraint()); + } else { + return createIdentityClonedBucketSpaceStateDeriver(); + } + } + + private static ClusterStateDeriver createIdentityClonedBucketSpaceStateDeriver() { + return (state, space) -> state.clone(); } private MaintenanceTransitionConstraint createDefaultSpaceMaintenanceTransitionConstraint() { diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetControllerOptions.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetControllerOptions.java index 860d38b3438..31268e78338 100644 --- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetControllerOptions.java +++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetControllerOptions.java @@ -122,6 +122,8 @@ public class FleetControllerOptions implements Cloneable { // TODO replace this flag with a set of bucket spaces instead public boolean enableMultipleBucketSpaces = false; + public boolean clusterHasGlobalDocumentTypes = false; + // TODO: Choose a default value public double minMergeCompletionRatio = 1.0; @@ -232,6 +234,7 @@ public class FleetControllerOptions implements Cloneable { sb.append("<tr><td><nobr>Wanted distribution bits</nobr></td><td align=\"right\">").append(distributionBits).append("</td></tr>"); sb.append("<tr><td><nobr>Max deferred task version wait time</nobr></td><td align=\"right\">").append(maxDeferredTaskVersionWaitTime.toMillis()).append("ms</td></tr>"); sb.append("<tr><td><nobr>Multiple bucket spaces enabled</nobr></td><td align=\"right\">").append(enableMultipleBucketSpaces).append("</td></tr>"); + sb.append("<tr><td><nobr>Cluster has global document types configured</nobr></td><td align=\"right\">").append(clusterHasGlobalDocumentTypes).append("</td></tr>"); sb.append("</table>"); } |