Skip to content

Commit 9b805b0

Browse files
authored
Omit writing global metadata if no change (#50901)
Uses the same optimization for the new cluster state storage layer as the old one, writing global metadata only when changed. Avoids writing out the global metadata if none of the persistent fields changed. Speeds up server:integTest by ~10%. Relates #48701
1 parent 7c0b64a commit 9b805b0

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

server/src/main/java/org/elasticsearch/gateway/PersistedClusterStateService.java

+5-3
Original file line numberDiff line numberDiff line change
@@ -593,9 +593,11 @@ private void updateMetaData(MetaData previouslyWrittenMetaData, MetaData metaDat
593593
logger.trace("currentTerm [{}] matches previous currentTerm, writing changes only",
594594
metaData.coordinationMetaData().term());
595595

596-
try (ReleasableDocument globalMetaDataDocument = makeGlobalMetaDataDocument(metaData)) {
597-
for (MetaDataIndexWriter metaDataIndexWriter : metaDataIndexWriters) {
598-
metaDataIndexWriter.updateGlobalMetaData(globalMetaDataDocument.getDocument());
596+
if (MetaData.isGlobalStateEquals(previouslyWrittenMetaData, metaData) == false) {
597+
try (ReleasableDocument globalMetaDataDocument = makeGlobalMetaDataDocument(metaData)) {
598+
for (MetaDataIndexWriter metaDataIndexWriter : metaDataIndexWriters) {
599+
metaDataIndexWriter.updateGlobalMetaData(globalMetaDataDocument.getDocument());
600+
}
599601
}
600602
}
601603

0 commit comments

Comments
 (0)