remove max_shards_per_node setting (actually, you could not set it even...), will be revisted when proper SLA based shard allocation will be implemented
This commit is contained in:
parent
a6bd64f30d
commit
e7d80b8244
|
@ -51,9 +51,6 @@ public class MetaData implements Iterable<IndexMetaData> {
|
||||||
|
|
||||||
private final ImmutableMap<String, IndexMetaData> indices;
|
private final ImmutableMap<String, IndexMetaData> indices;
|
||||||
|
|
||||||
// limits the number of shards per node
|
|
||||||
private final int maxNumberOfShardsPerNode;
|
|
||||||
|
|
||||||
private final transient int totalNumberOfShards;
|
private final transient int totalNumberOfShards;
|
||||||
private final boolean recoveredFromGateway;
|
private final boolean recoveredFromGateway;
|
||||||
|
|
||||||
|
@ -64,10 +61,9 @@ public class MetaData implements Iterable<IndexMetaData> {
|
||||||
private final ImmutableMap<String, String[]> aliasAndIndexToIndexMap;
|
private final ImmutableMap<String, String[]> aliasAndIndexToIndexMap;
|
||||||
private final ImmutableMap<String, ImmutableSet<String>> aliasAndIndexToIndexMap2;
|
private final ImmutableMap<String, ImmutableSet<String>> aliasAndIndexToIndexMap2;
|
||||||
|
|
||||||
private MetaData(ImmutableMap<String, IndexMetaData> indices, boolean recoveredFromGateway, int maxNumberOfShardsPerNode) {
|
private MetaData(ImmutableMap<String, IndexMetaData> indices, boolean recoveredFromGateway) {
|
||||||
this.indices = ImmutableMap.copyOf(indices);
|
this.indices = ImmutableMap.copyOf(indices);
|
||||||
this.recoveredFromGateway = recoveredFromGateway;
|
this.recoveredFromGateway = recoveredFromGateway;
|
||||||
this.maxNumberOfShardsPerNode = maxNumberOfShardsPerNode;
|
|
||||||
int totalNumberOfShards = 0;
|
int totalNumberOfShards = 0;
|
||||||
for (IndexMetaData indexMetaData : indices.values()) {
|
for (IndexMetaData indexMetaData : indices.values()) {
|
||||||
totalNumberOfShards += indexMetaData.totalNumberOfShards();
|
totalNumberOfShards += indexMetaData.totalNumberOfShards();
|
||||||
|
@ -212,14 +208,6 @@ public class MetaData implements Iterable<IndexMetaData> {
|
||||||
return indices();
|
return indices();
|
||||||
}
|
}
|
||||||
|
|
||||||
public int maxNumberOfShardsPerNode() {
|
|
||||||
return this.maxNumberOfShardsPerNode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getMaxNumberOfShardsPerNode() {
|
|
||||||
return maxNumberOfShardsPerNode();
|
|
||||||
}
|
|
||||||
|
|
||||||
public int totalNumberOfShards() {
|
public int totalNumberOfShards() {
|
||||||
return this.totalNumberOfShards;
|
return this.totalNumberOfShards;
|
||||||
}
|
}
|
||||||
|
@ -238,9 +226,6 @@ public class MetaData implements Iterable<IndexMetaData> {
|
||||||
|
|
||||||
public static class Builder {
|
public static class Builder {
|
||||||
|
|
||||||
// limits the number of shards per node
|
|
||||||
private int maxNumberOfShardsPerNode = 100;
|
|
||||||
|
|
||||||
private MapBuilder<String, IndexMetaData> indices = newMapBuilder();
|
private MapBuilder<String, IndexMetaData> indices = newMapBuilder();
|
||||||
|
|
||||||
private boolean recoveredFromGateway = false;
|
private boolean recoveredFromGateway = false;
|
||||||
|
@ -269,11 +254,6 @@ public class MetaData implements Iterable<IndexMetaData> {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Builder maxNumberOfShardsPerNode(int maxNumberOfShardsPerNode) {
|
|
||||||
this.maxNumberOfShardsPerNode = maxNumberOfShardsPerNode;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Indicates that this cluster state has been recovered from the gateawy.
|
* Indicates that this cluster state has been recovered from the gateawy.
|
||||||
*/
|
*/
|
||||||
|
@ -283,7 +263,7 @@ public class MetaData implements Iterable<IndexMetaData> {
|
||||||
}
|
}
|
||||||
|
|
||||||
public MetaData build() {
|
public MetaData build() {
|
||||||
return new MetaData(indices.immutableMap(), recoveredFromGateway, maxNumberOfShardsPerNode);
|
return new MetaData(indices.immutableMap(), recoveredFromGateway);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String toXContent(MetaData metaData) throws IOException {
|
public static String toXContent(MetaData metaData) throws IOException {
|
||||||
|
@ -296,7 +276,6 @@ public class MetaData implements Iterable<IndexMetaData> {
|
||||||
|
|
||||||
public static void toXContent(MetaData metaData, XContentBuilder builder, ToXContent.Params params) throws IOException {
|
public static void toXContent(MetaData metaData, XContentBuilder builder, ToXContent.Params params) throws IOException {
|
||||||
builder.startObject("meta-data");
|
builder.startObject("meta-data");
|
||||||
builder.field("max_number_of_shards_per_node", metaData.maxNumberOfShardsPerNode());
|
|
||||||
|
|
||||||
builder.startObject("indices");
|
builder.startObject("indices");
|
||||||
for (IndexMetaData indexMetaData : metaData) {
|
for (IndexMetaData indexMetaData : metaData) {
|
||||||
|
@ -325,10 +304,6 @@ public class MetaData implements Iterable<IndexMetaData> {
|
||||||
builder.put(IndexMetaData.Builder.fromXContent(parser, globalSettings));
|
builder.put(IndexMetaData.Builder.fromXContent(parser, globalSettings));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (token.isValue()) {
|
|
||||||
if ("max_number_of_shards_per_node".equals(currentFieldName)) {
|
|
||||||
builder.maxNumberOfShardsPerNode(parser.intValue());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return builder.build();
|
return builder.build();
|
||||||
|
@ -336,7 +311,6 @@ public class MetaData implements Iterable<IndexMetaData> {
|
||||||
|
|
||||||
public static MetaData readFrom(StreamInput in, @Nullable Settings globalSettings) throws IOException {
|
public static MetaData readFrom(StreamInput in, @Nullable Settings globalSettings) throws IOException {
|
||||||
Builder builder = new Builder();
|
Builder builder = new Builder();
|
||||||
builder.maxNumberOfShardsPerNode(in.readInt());
|
|
||||||
// we only serialize it using readFrom, not in to/from XContent
|
// we only serialize it using readFrom, not in to/from XContent
|
||||||
builder.recoveredFromGateway = in.readBoolean();
|
builder.recoveredFromGateway = in.readBoolean();
|
||||||
int size = in.readVInt();
|
int size = in.readVInt();
|
||||||
|
@ -347,7 +321,6 @@ public class MetaData implements Iterable<IndexMetaData> {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void writeTo(MetaData metaData, StreamOutput out) throws IOException {
|
public static void writeTo(MetaData metaData, StreamOutput out) throws IOException {
|
||||||
out.writeInt(metaData.maxNumberOfShardsPerNode());
|
|
||||||
out.writeBoolean(metaData.recoveredFromGateway());
|
out.writeBoolean(metaData.recoveredFromGateway());
|
||||||
out.writeVInt(metaData.indices.size());
|
out.writeVInt(metaData.indices.size());
|
||||||
for (IndexMetaData indexMetaData : metaData) {
|
for (IndexMetaData indexMetaData : metaData) {
|
||||||
|
|
|
@ -120,7 +120,7 @@ public class RoutingNode implements Iterable<MutableShardRouting> {
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean canAllocate(MetaData metaData, RoutingTable routingTable) {
|
public boolean canAllocate(MetaData metaData, RoutingTable routingTable) {
|
||||||
return shards().size() < metaData.maxNumberOfShardsPerNode();
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean canAllocate(ShardRouting requested) {
|
public boolean canAllocate(ShardRouting requested) {
|
||||||
|
|
|
@ -236,8 +236,7 @@ public class GatewayService extends AbstractLifecycleComponent<GatewayService> i
|
||||||
private void updateClusterStateFromGateway(final MetaData fMetaData, final CountDownLatch latch) {
|
private void updateClusterStateFromGateway(final MetaData fMetaData, final CountDownLatch latch) {
|
||||||
clusterService.submitStateUpdateTask("gateway (recovered meta-data)", new ProcessedClusterStateUpdateTask() {
|
clusterService.submitStateUpdateTask("gateway (recovered meta-data)", new ProcessedClusterStateUpdateTask() {
|
||||||
@Override public ClusterState execute(ClusterState currentState) {
|
@Override public ClusterState execute(ClusterState currentState) {
|
||||||
MetaData.Builder metaDataBuilder = newMetaDataBuilder()
|
MetaData.Builder metaDataBuilder = newMetaDataBuilder().metaData(currentState.metaData());
|
||||||
.metaData(currentState.metaData()).maxNumberOfShardsPerNode(fMetaData.maxNumberOfShardsPerNode());
|
|
||||||
// mark the metadata as read from gateway
|
// mark the metadata as read from gateway
|
||||||
metaDataBuilder.markAsRecoveredFromGateway();
|
metaDataBuilder.markAsRecoveredFromGateway();
|
||||||
return newClusterStateBuilder().state(currentState).metaData(metaDataBuilder).build();
|
return newClusterStateBuilder().state(currentState).metaData(metaDataBuilder).build();
|
||||||
|
|
|
@ -116,7 +116,6 @@ public class RestClusterStateAction extends BaseRestHandler {
|
||||||
|
|
||||||
// meta data
|
// meta data
|
||||||
builder.startObject("metadata");
|
builder.startObject("metadata");
|
||||||
builder.field("max_number_of_shards_per_node", state.metaData().maxNumberOfShardsPerNode());
|
|
||||||
builder.startObject("indices");
|
builder.startObject("indices");
|
||||||
for (IndexMetaData indexMetaData : state.metaData()) {
|
for (IndexMetaData indexMetaData : state.metaData()) {
|
||||||
builder.startObject(indexMetaData.index());
|
builder.startObject(indexMetaData.index());
|
||||||
|
|
|
@ -40,7 +40,6 @@ public class ToAndFromJsonMetaDataTests {
|
||||||
@Test
|
@Test
|
||||||
public void testSimpleJsonFromAndTo() throws IOException {
|
public void testSimpleJsonFromAndTo() throws IOException {
|
||||||
MetaData metaData = newMetaDataBuilder()
|
MetaData metaData = newMetaDataBuilder()
|
||||||
.maxNumberOfShardsPerNode(2)
|
|
||||||
.put(newIndexMetaDataBuilder("test1")
|
.put(newIndexMetaDataBuilder("test1")
|
||||||
.numberOfShards(1)
|
.numberOfShards(1)
|
||||||
.numberOfReplicas(2))
|
.numberOfReplicas(2))
|
||||||
|
@ -64,7 +63,6 @@ public class ToAndFromJsonMetaDataTests {
|
||||||
System.out.println("ToJson: " + metaDataSource);
|
System.out.println("ToJson: " + metaDataSource);
|
||||||
|
|
||||||
MetaData parsedMetaData = MetaData.Builder.fromXContent(XContentFactory.xContent(XContentType.JSON).createParser(metaDataSource), null);
|
MetaData parsedMetaData = MetaData.Builder.fromXContent(XContentFactory.xContent(XContentType.JSON).createParser(metaDataSource), null);
|
||||||
assertThat(parsedMetaData.maxNumberOfShardsPerNode(), equalTo(2));
|
|
||||||
|
|
||||||
IndexMetaData indexMetaData = parsedMetaData.index("test1");
|
IndexMetaData indexMetaData = parsedMetaData.index("test1");
|
||||||
assertThat(indexMetaData.numberOfShards(), equalTo(1));
|
assertThat(indexMetaData.numberOfShards(), equalTo(1));
|
||||||
|
|
Loading…
Reference in New Issue