apply review comments
This commit is contained in:
parent
dee94c798c
commit
50907d5b7d
|
@ -166,7 +166,7 @@ public class MetaDataIndexUpgradeService extends AbstractComponent {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Elasticsearch 3.0 no longer supports indices with pre Lucene v5.0 (Elasticsearch v2.0.0.beta1) segments. All indices
|
* Elasticsearch 3.0 no longer supports indices with pre Lucene v5.0 (Elasticsearch v2.0.0.beta1) segments. All indices
|
||||||
* that were created before Elasticsearch v2.0.0.beta1 should be upgraded using upgrade plugin before they can
|
* that were created before Elasticsearch v2.0.0.beta1 should be upgraded using upgrade API before they can
|
||||||
* be open by this version of elasticsearch.
|
* be open by this version of elasticsearch.
|
||||||
*/
|
*/
|
||||||
private void checkSupportedVersion(IndexMetaData indexMetaData) {
|
private void checkSupportedVersion(IndexMetaData indexMetaData) {
|
||||||
|
@ -185,10 +185,6 @@ public class MetaDataIndexUpgradeService extends AbstractComponent {
|
||||||
// The index was created with elasticsearch that was using Lucene 5.2.1
|
// The index was created with elasticsearch that was using Lucene 5.2.1
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (indexMetaData.getUpgradeVersion().onOrAfter(Version.V_2_0_0_beta1) == false) {
|
|
||||||
// early terminate if we are not upgrade - we don't even need to look at the segment version
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (indexMetaData.getMinimumCompatibleVersion() != null &&
|
if (indexMetaData.getMinimumCompatibleVersion() != null &&
|
||||||
indexMetaData.getMinimumCompatibleVersion().onOrAfter(org.apache.lucene.util.Version.LUCENE_5_0_0)) {
|
indexMetaData.getMinimumCompatibleVersion().onOrAfter(org.apache.lucene.util.Version.LUCENE_5_0_0)) {
|
||||||
//The index was upgraded we can work with it
|
//The index was upgraded we can work with it
|
||||||
|
|
|
@ -172,21 +172,12 @@ public class InternalEngine extends Engine {
|
||||||
}
|
}
|
||||||
|
|
||||||
private Translog openTranslog(EngineConfig engineConfig, IndexWriter writer, boolean createNew) throws IOException {
|
private Translog openTranslog(EngineConfig engineConfig, IndexWriter writer, boolean createNew) throws IOException {
|
||||||
final Translog.TranslogGeneration generation = loadTranslogIdFromCommit(writer);
|
final Translog.TranslogGeneration generation = loadTranslogIdFromCommit(writer, createNew);
|
||||||
final TranslogConfig translogConfig = engineConfig.getTranslogConfig();
|
final TranslogConfig translogConfig = engineConfig.getTranslogConfig();
|
||||||
|
translogConfig.setTranslogGeneration(generation);
|
||||||
if (createNew == false) {
|
|
||||||
// We expect that this shard already exists, so it must already have an existing translog else something is badly wrong!
|
|
||||||
if (generation == null) {
|
|
||||||
throw new IllegalStateException("no translog generation present in commit data but translog is expected to exist");
|
|
||||||
}
|
|
||||||
translogConfig.setTranslogGeneration(generation);
|
|
||||||
if (generation != null && generation.translogUUID == null) {
|
|
||||||
throw new IndexFormatTooOldException("trasnlog", "translog has no generation nor a UUID - this might be an index from a previous version consider upgrading to N-1 first");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
final Translog translog = new Translog(translogConfig);
|
final Translog translog = new Translog(translogConfig);
|
||||||
if (generation == null || generation.translogUUID == null) {
|
if (generation == null || generation.translogUUID == null) {
|
||||||
|
assert createNew;
|
||||||
if (generation == null) {
|
if (generation == null) {
|
||||||
logger.debug("no translog ID present in the current generation - creating one");
|
logger.debug("no translog ID present in the current generation - creating one");
|
||||||
} else if (generation.translogUUID == null) {
|
} else if (generation.translogUUID == null) {
|
||||||
|
@ -249,7 +240,7 @@ public class InternalEngine extends Engine {
|
||||||
* translog id into lucene and returns null.
|
* translog id into lucene and returns null.
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
private Translog.TranslogGeneration loadTranslogIdFromCommit(IndexWriter writer) throws IOException {
|
private Translog.TranslogGeneration loadTranslogIdFromCommit(IndexWriter writer, boolean createNew) throws IOException {
|
||||||
// commit on a just opened writer will commit even if there are no changes done to it
|
// commit on a just opened writer will commit even if there are no changes done to it
|
||||||
// we rely on that for the commit data translog id key
|
// we rely on that for the commit data translog id key
|
||||||
final Map<String, String> commitUserData = writer.getCommitData();
|
final Map<String, String> commitUserData = writer.getCommitData();
|
||||||
|
@ -262,8 +253,16 @@ public class InternalEngine extends Engine {
|
||||||
}
|
}
|
||||||
final String translogUUID = commitUserData.get(Translog.TRANSLOG_UUID_KEY);
|
final String translogUUID = commitUserData.get(Translog.TRANSLOG_UUID_KEY);
|
||||||
final long translogGen = Long.parseLong(commitUserData.get(Translog.TRANSLOG_GENERATION_KEY));
|
final long translogGen = Long.parseLong(commitUserData.get(Translog.TRANSLOG_GENERATION_KEY));
|
||||||
|
if (createNew == false && translogUUID == null) {
|
||||||
|
throw new IndexFormatTooOldException("translog", "translog has no generation nor a UUID - this might be an index from a previous version consider upgrading to N-1 first");
|
||||||
|
}
|
||||||
return new Translog.TranslogGeneration(translogUUID, translogGen);
|
return new Translog.TranslogGeneration(translogUUID, translogGen);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (createNew == false) {
|
||||||
|
// We expect that this shard already exists, so it must already have an existing translog else something is badly wrong!
|
||||||
|
throw new IllegalStateException("no translog generation present in commit data but translog is expected to exist");
|
||||||
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -705,7 +705,7 @@ public class ExceptionSerializationTests extends ESTestCase {
|
||||||
ids.put(61, org.elasticsearch.cluster.routing.RoutingValidationException.class);
|
ids.put(61, org.elasticsearch.cluster.routing.RoutingValidationException.class);
|
||||||
ids.put(62, org.elasticsearch.common.io.stream.NotSerializableExceptionWrapper.class);
|
ids.put(62, org.elasticsearch.common.io.stream.NotSerializableExceptionWrapper.class);
|
||||||
ids.put(63, org.elasticsearch.indices.AliasFilterParsingException.class);
|
ids.put(63, org.elasticsearch.indices.AliasFilterParsingException.class);
|
||||||
ids.put(64, org.elasticsearch.index.engine.DeleteByQueryFailedEngineException.class);
|
ids.put(64, null); // DeleteByQueryFailedEngineException was removed in 3.0
|
||||||
ids.put(65, org.elasticsearch.gateway.GatewayException.class);
|
ids.put(65, org.elasticsearch.gateway.GatewayException.class);
|
||||||
ids.put(66, org.elasticsearch.index.shard.IndexShardNotRecoveringException.class);
|
ids.put(66, org.elasticsearch.index.shard.IndexShardNotRecoveringException.class);
|
||||||
ids.put(67, org.elasticsearch.http.HttpException.class);
|
ids.put(67, org.elasticsearch.http.HttpException.class);
|
||||||
|
|
Loading…
Reference in New Issue