Skip to content

Commit

Permalink
Add transient settings to manifest
Browse files Browse the repository at this point in the history
Signed-off-by: Shivansh Arora <hishiv@amazon.com>
  • Loading branch information
shiv0408 committed May 27, 2024
1 parent f4f773f commit 14a279d
Show file tree
Hide file tree
Showing 8 changed files with 233 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -978,6 +978,10 @@ public static boolean isSettingsMetadataEqual(Metadata metadata1, Metadata metad
return metadata1.persistentSettings.equals(metadata2.persistentSettings);
}

public static boolean isTransientSettingsMetadataEqual(Metadata metadata1, Metadata metadata2) {
return metadata1.transientSettings.equals(metadata2.transientSettings);
}

public static boolean isTemplatesMetadataEqual(Metadata metadata1, Metadata metadata2) {
return metadata1.templates.equals(metadata2.templates);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ public class ClusterMetadataManifest implements Writeable, ToXContentFragment {
private static final ParseField METADATA_VERSION = new ParseField("metadata_version");
private static final ParseField UPLOADED_COORDINATOR_METADATA = new ParseField("uploaded_coordinator_metadata");
private static final ParseField UPLOADED_SETTINGS_METADATA = new ParseField("uploaded_settings_metadata");
private static final ParseField UPLOADED_TRANSIENT_SETTINGS_METADATA = new ParseField("uploaded_transient_settings_metadata");
private static final ParseField UPLOADED_TEMPLATES_METADATA = new ParseField("uploaded_templates_metadata");
private static final ParseField UPLOADED_CUSTOM_METADATA = new ParseField("uploaded_custom_metadata");
private static final ParseField UPLOADED_DISCOVERY_NODES_METADATA = new ParseField("uploaded_discovery_nodes_metadata");
Expand Down Expand Up @@ -102,7 +103,8 @@ private static ClusterMetadataManifest.Builder manifestV3Builder(Object[] fields
.diffManifest(diffManifest(fields))
.routingTableVersion(routingTableVersion(fields))
.indicesRouting(indicesRouting(fields))
.metadataVersion(metadataVersion(fields));
.metadataVersion(metadataVersion(fields))
.transientSettingsMetadata(transientSettingsMetadata(fields));
}

private static long term(Object[] fields) {
Expand Down Expand Up @@ -194,6 +196,10 @@ private static long metadataVersion(Object[] fields) {
return (long) fields[20];
}

private static UploadedMetadataAttribute transientSettingsMetadata(Object[] fields) {
return (UploadedMetadataAttribute) fields[21];
}

private static final ConstructingObjectParser<ClusterMetadataManifest, Void> PARSER_V0 = new ConstructingObjectParser<>(
"cluster_metadata_manifest",
fields -> manifestV0Builder(fields).build()
Expand Down Expand Up @@ -288,6 +294,11 @@ private static void declareParser(ConstructingObjectParser<ClusterMetadataManife
INDICES_ROUTING_FIELD
);
parser.declareLong(ConstructingObjectParser.constructorArg(), METADATA_VERSION);
parser.declareNamedObject(
ConstructingObjectParser.optionalConstructorArg(),
UploadedMetadataAttribute.PARSER,
UPLOADED_TRANSIENT_SETTINGS_METADATA
);
}
}

Expand All @@ -296,6 +307,7 @@ private static void declareParser(ConstructingObjectParser<ClusterMetadataManife
private final long metadataVersion;
private final UploadedMetadataAttribute uploadedCoordinationMetadata;
private final UploadedMetadataAttribute uploadedSettingsMetadata;
private final UploadedMetadataAttribute uploadedTransientSettingsMetadata;
private final UploadedMetadataAttribute uploadedTemplatesMetadata;
private final UploadedMetadataAttribute uploadedDiscoveryNodesMetadata;
private final UploadedMetadataAttribute uploadedClusterBlocksMetadata;
Expand Down Expand Up @@ -376,6 +388,10 @@ public UploadedMetadataAttribute getSettingsMetadata() {
return uploadedSettingsMetadata;
}

public UploadedMetadataAttribute getTransientSettingsMetadata() {
return uploadedTransientSettingsMetadata;
}

public UploadedMetadataAttribute getTemplatesMetadata() {
return uploadedTemplatesMetadata;
}
Expand Down Expand Up @@ -432,7 +448,8 @@ public ClusterMetadataManifest(
ClusterStateDiffManifest diffManifest,
long routingTableVersion,
List<UploadedIndexMetadata> indicesRouting,
long metadataVersion
long metadataVersion,
UploadedMetadataAttribute uploadedTransientSettingsMetadata
) {
this.clusterTerm = clusterTerm;
this.stateVersion = version;
Expand All @@ -458,6 +475,7 @@ public ClusterMetadataManifest(
this.routingTableVersion = routingTableVersion;
this.indicesRouting = Collections.unmodifiableList(indicesRouting);
this.metadataVersion = metadataVersion;
this.uploadedTransientSettingsMetadata = uploadedTransientSettingsMetadata;
}

public ClusterMetadataManifest(StreamInput in) throws IOException {
Expand Down Expand Up @@ -488,6 +506,7 @@ public ClusterMetadataManifest(StreamInput in) throws IOException {
this.routingTableVersion = in.readLong();
this.indicesRouting = Collections.unmodifiableList(in.readList(UploadedIndexMetadata::new));
this.metadataVersion = in.readLong();
this.uploadedTransientSettingsMetadata = new UploadedMetadataAttribute(in);
} else if (in.getVersion().onOrAfter(Version.V_2_12_0)) {
this.codecVersion = in.readInt();
this.globalMetadataFileName = in.readString();
Expand All @@ -501,6 +520,7 @@ public ClusterMetadataManifest(StreamInput in) throws IOException {
this.uploadedClusterBlocksMetadata = null;
this.diffManifest = null;
this.metadataVersion = -1;
this.uploadedTransientSettingsMetadata = null;
} else {
this.codecVersion = CODEC_V0; // Default codec
this.globalMetadataFileName = null;
Expand All @@ -514,6 +534,7 @@ public ClusterMetadataManifest(StreamInput in) throws IOException {
this.uploadedClusterBlocksMetadata = null;
this.diffManifest = null;
this.metadataVersion = -1;
this.uploadedTransientSettingsMetadata = null;
}
}

Expand Down Expand Up @@ -583,6 +604,11 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws
getClusterBlocksMetadata().toXContent(builder, params);
builder.endObject();
}
if (getTransientSettingsMetadata() != null) {
builder.startObject(UPLOADED_TRANSIENT_SETTINGS_METADATA.getPreferredName());
getTransientSettingsMetadata().toXContent(builder, params);
builder.endObject();
}
if (getDiffManifest() != null) {
builder.startObject(DIFF_MANIFEST.getPreferredName());
getDiffManifest().toXContent(builder, params);
Expand Down Expand Up @@ -624,6 +650,7 @@ public void writeTo(StreamOutput out) throws IOException {
out.writeLong(routingTableVersion);
out.writeCollection(indicesRouting);
out.writeLong(metadataVersion);
uploadedTransientSettingsMetadata.writeTo(out);
} else if (out.getVersion().onOrAfter(Version.V_2_12_0)) {
out.writeInt(codecVersion);
out.writeString(globalMetadataFileName);
Expand Down Expand Up @@ -709,6 +736,7 @@ public static class Builder {
private UploadedMetadataAttribute clusterBlocksMetadata;
private UploadedMetadataAttribute coordinationMetadata;
private UploadedMetadataAttribute settingsMetadata;
private UploadedMetadataAttribute transientSettingsMetadata;
private UploadedMetadataAttribute templatesMetadata;
private Map<String, UploadedMetadataAttribute> customMetadataMap;
private int codecVersion;
Expand Down Expand Up @@ -766,6 +794,11 @@ public Builder settingMetadata(UploadedMetadataAttribute settingsMetadata) {
return this;
}

public Builder transientSettingsMetadata(UploadedMetadataAttribute settingsMetadata) {
this.transientSettingsMetadata = settingsMetadata;
return this;
}

public Builder templatesMetadata(UploadedMetadataAttribute templatesMetadata) {
this.templatesMetadata = templatesMetadata;
return this;
Expand Down Expand Up @@ -852,6 +885,7 @@ public Builder diffManifest(ClusterStateDiffManifest diffManifest) {
public Builder() {
indices = new ArrayList<>();
customMetadataMap = new HashMap<>();
indicesRouting = new ArrayList<>();
}

public Builder(ClusterMetadataManifest manifest) {
Expand Down Expand Up @@ -899,7 +933,8 @@ public ClusterMetadataManifest build() {
diffManifest,
routingTableVersion,
indicesRouting,
metadataVersion
metadataVersion,
transientSettingsMetadata
);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ public class ClusterStateDiffManifest implements ToXContentObject {
private static final String METADATA_DIFF_FIELD = "metadata_diff";
private static final String COORDINATION_METADATA_UPDATED_FIELD = "coordination_metadata_diff";
private static final String SETTINGS_METADATA_UPDATED_FIELD = "settings_metadata_diff";
private static final String TRANSIENT_SETTINGS_METADATA_UPDATED_FIELD = "transient_settings_metadata_diff";
private static final String TEMPLATES_METADATA_UPDATED_FIELD = "templates_metadata_diff";
private static final String INDICES_DIFF_FIELD = "indices_diff";
private static final String METADATA_CUSTOM_DIFF_FIELD = "metadata_custom_diff";
Expand All @@ -48,6 +49,7 @@ public class ClusterStateDiffManifest implements ToXContentObject {
private final String toStateUUID;
private final boolean coordinationMetadataUpdated;
private final boolean settingsMetadataUpdated;
private final boolean transientSettingsMetadataUpdate;
private final boolean templatesMetadataUpdated;
private List<String> customMetadataUpdated;
private final List<String> customMetadataDeleted;
Expand All @@ -63,6 +65,7 @@ public class ClusterStateDiffManifest implements ToXContentObject {
toStateUUID = state.stateUUID();
coordinationMetadataUpdated = !Metadata.isCoordinationMetadataEqual(state.metadata(), previousState.metadata());
settingsMetadataUpdated = !Metadata.isSettingsMetadataEqual(state.metadata(), previousState.metadata());
transientSettingsMetadataUpdate = !Metadata.isTransientSettingsMetadataEqual(state.metadata(), previousState.metadata());
templatesMetadataUpdated = !Metadata.isTemplatesMetadataEqual(state.metadata(), previousState.metadata());
indicesDeleted = findRemovedIndices(state.metadata().indices(), previousState.metadata().indices());
indicesUpdated = findUpdatedIndices(state.metadata().indices(), previousState.metadata().indices());
Expand All @@ -88,6 +91,7 @@ public ClusterStateDiffManifest(String fromStateUUID,
String toStateUUID,
boolean coordinationMetadataUpdated,
boolean settingsMetadataUpdated,
boolean transientSettingsMetadataUpdate,
boolean templatesMetadataUpdated,
List<String> customMetadataUpdated,
List<String> customMetadataDeleted,
Expand All @@ -101,6 +105,7 @@ public ClusterStateDiffManifest(String fromStateUUID,
this.toStateUUID = toStateUUID;
this.coordinationMetadataUpdated = coordinationMetadataUpdated;
this.settingsMetadataUpdated = settingsMetadataUpdated;
this.transientSettingsMetadataUpdate = transientSettingsMetadataUpdate;
this.templatesMetadataUpdated = templatesMetadataUpdated;
this.customMetadataUpdated = customMetadataUpdated;
this.customMetadataDeleted = customMetadataDeleted;
Expand All @@ -121,6 +126,7 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws
{
builder.field(COORDINATION_METADATA_UPDATED_FIELD, coordinationMetadataUpdated);
builder.field(SETTINGS_METADATA_UPDATED_FIELD, settingsMetadataUpdated);
builder.field(TRANSIENT_SETTINGS_METADATA_UPDATED_FIELD, transientSettingsMetadataUpdate);
builder.field(TEMPLATES_METADATA_UPDATED_FIELD, templatesMetadataUpdated);
builder.startObject(INDICES_DIFF_FIELD);
builder.startArray(UPSERTS_FIELD);
Expand Down Expand Up @@ -194,6 +200,9 @@ public static ClusterStateDiffManifest fromXContent(XContentParser parser) throw
case SETTINGS_METADATA_UPDATED_FIELD:
builder.settingsMetadataUpdated(parser.booleanValue());
break;
case TRANSIENT_SETTINGS_METADATA_UPDATED_FIELD:
builder.transientSettingsMetadataUpdate(parser.booleanValue());
break;
case TEMPLATES_METADATA_UPDATED_FIELD:
builder.templatesMetadataUpdated(parser.booleanValue());
break;
Expand Down Expand Up @@ -352,6 +361,10 @@ public boolean isSettingsMetadataUpdated() {
return settingsMetadataUpdated;
}

public boolean isTransientSettingsMetadataUpdated() {
return transientSettingsMetadataUpdate;
}

public boolean isTemplatesMetadataUpdated() {
return templatesMetadataUpdated;
}
Expand Down Expand Up @@ -397,6 +410,7 @@ public static class Builder {
private String toStateUUID;
private boolean coordinationMetadataUpdated;
private boolean settingsMetadataUpdated;
private boolean transientSettingsMetadataUpdated;
private boolean templatesMetadataUpdated;
private List<String> customMetadataUpdated;
private List<String> customMetadataDeleted;
Expand Down Expand Up @@ -428,6 +442,11 @@ public Builder settingsMetadataUpdated(boolean settingsMetadataUpdated) {
return this;
}

public Builder transientSettingsMetadataUpdate(boolean settingsMetadataUpdated) {
this.transientSettingsMetadataUpdated = settingsMetadataUpdated;
return this;
}

public Builder templatesMetadataUpdated(boolean templatesMetadataUpdated) {
this.templatesMetadataUpdated = templatesMetadataUpdated;
return this;
Expand Down Expand Up @@ -479,6 +498,7 @@ public ClusterStateDiffManifest build() {
toStateUUID,
coordinationMetadataUpdated,
settingsMetadataUpdated,
transientSettingsMetadataUpdated,
templatesMetadataUpdated,
customMetadataUpdated,
customMetadataDeleted,
Expand Down
Loading

0 comments on commit 14a279d

Please sign in to comment.