Move max_unsafe_auto_id_timestamp constant to Engine (#34025)
We should not access InternalEngine in other classes.
This commit is contained in:
parent
0f878eff19
commit
8a56369f5b
|
@ -110,6 +110,7 @@ public abstract class Engine implements Closeable {
|
||||||
public static final String SYNC_COMMIT_ID = "sync_id";
|
public static final String SYNC_COMMIT_ID = "sync_id";
|
||||||
public static final String HISTORY_UUID_KEY = "history_uuid";
|
public static final String HISTORY_UUID_KEY = "history_uuid";
|
||||||
public static final String MIN_RETAINED_SEQNO = "min_retained_seq_no";
|
public static final String MIN_RETAINED_SEQNO = "min_retained_seq_no";
|
||||||
|
public static final String MAX_UNSAFE_AUTO_ID_TIMESTAMP_COMMIT_ID = "max_unsafe_auto_id_timestamp";
|
||||||
|
|
||||||
protected final ShardId shardId;
|
protected final ShardId shardId;
|
||||||
protected final String allocationId;
|
protected final String allocationId;
|
||||||
|
|
|
@ -139,7 +139,6 @@ public class InternalEngine extends Engine {
|
||||||
// incoming indexing ops to a single thread:
|
// incoming indexing ops to a single thread:
|
||||||
private final AtomicInteger throttleRequestCount = new AtomicInteger();
|
private final AtomicInteger throttleRequestCount = new AtomicInteger();
|
||||||
private final AtomicBoolean pendingTranslogRecovery = new AtomicBoolean(false);
|
private final AtomicBoolean pendingTranslogRecovery = new AtomicBoolean(false);
|
||||||
public static final String MAX_UNSAFE_AUTO_ID_TIMESTAMP_COMMIT_ID = "max_unsafe_auto_id_timestamp";
|
|
||||||
private final AtomicLong maxUnsafeAutoIdTimestamp = new AtomicLong(-1);
|
private final AtomicLong maxUnsafeAutoIdTimestamp = new AtomicLong(-1);
|
||||||
private final AtomicLong maxSeenAutoIdTimestamp = new AtomicLong(-1);
|
private final AtomicLong maxSeenAutoIdTimestamp = new AtomicLong(-1);
|
||||||
private final AtomicLong maxSeqNoOfNonAppendOnlyOperations = new AtomicLong(SequenceNumbers.NO_OPS_PERFORMED);
|
private final AtomicLong maxSeqNoOfNonAppendOnlyOperations = new AtomicLong(SequenceNumbers.NO_OPS_PERFORMED);
|
||||||
|
|
|
@ -79,7 +79,6 @@ import org.elasticsearch.index.engine.Engine;
|
||||||
import org.elasticsearch.index.engine.EngineConfig;
|
import org.elasticsearch.index.engine.EngineConfig;
|
||||||
import org.elasticsearch.index.engine.EngineException;
|
import org.elasticsearch.index.engine.EngineException;
|
||||||
import org.elasticsearch.index.engine.EngineFactory;
|
import org.elasticsearch.index.engine.EngineFactory;
|
||||||
import org.elasticsearch.index.engine.InternalEngine;
|
|
||||||
import org.elasticsearch.index.engine.RefreshFailedEngineException;
|
import org.elasticsearch.index.engine.RefreshFailedEngineException;
|
||||||
import org.elasticsearch.index.engine.Segment;
|
import org.elasticsearch.index.engine.Segment;
|
||||||
import org.elasticsearch.index.engine.SegmentsStats;
|
import org.elasticsearch.index.engine.SegmentsStats;
|
||||||
|
@ -1399,8 +1398,8 @@ public class IndexShard extends AbstractIndexShardComponent implements IndicesCl
|
||||||
|
|
||||||
private boolean assertMaxUnsafeAutoIdInCommit() throws IOException {
|
private boolean assertMaxUnsafeAutoIdInCommit() throws IOException {
|
||||||
final Map<String, String> userData = SegmentInfos.readLatestCommit(store.directory()).getUserData();
|
final Map<String, String> userData = SegmentInfos.readLatestCommit(store.directory()).getUserData();
|
||||||
assert userData.containsKey(InternalEngine.MAX_UNSAFE_AUTO_ID_TIMESTAMP_COMMIT_ID) :
|
assert userData.containsKey(Engine.MAX_UNSAFE_AUTO_ID_TIMESTAMP_COMMIT_ID) :
|
||||||
"opening index which was created post 5.5.0 but " + InternalEngine.MAX_UNSAFE_AUTO_ID_TIMESTAMP_COMMIT_ID
|
"opening index which was created post 5.5.0 but " + Engine.MAX_UNSAFE_AUTO_ID_TIMESTAMP_COMMIT_ID
|
||||||
+ " is not found in commit";
|
+ " is not found in commit";
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,7 +28,6 @@ import org.apache.lucene.store.NoLockFactory;
|
||||||
import org.elasticsearch.cluster.metadata.IndexMetaData;
|
import org.elasticsearch.cluster.metadata.IndexMetaData;
|
||||||
import org.elasticsearch.index.Index;
|
import org.elasticsearch.index.Index;
|
||||||
import org.elasticsearch.index.engine.Engine;
|
import org.elasticsearch.index.engine.Engine;
|
||||||
import org.elasticsearch.index.engine.InternalEngine;
|
|
||||||
import org.elasticsearch.index.store.Store;
|
import org.elasticsearch.index.store.Store;
|
||||||
|
|
||||||
import java.io.Closeable;
|
import java.io.Closeable;
|
||||||
|
@ -66,7 +65,7 @@ final class LocalShardSnapshot implements Closeable {
|
||||||
}
|
}
|
||||||
|
|
||||||
long maxUnsafeAutoIdTimestamp() {
|
long maxUnsafeAutoIdTimestamp() {
|
||||||
return Long.parseLong(shard.getEngine().commitStats().getUserData().get(InternalEngine.MAX_UNSAFE_AUTO_ID_TIMESTAMP_COMMIT_ID));
|
return Long.parseLong(shard.getEngine().commitStats().getUserData().get(Engine.MAX_UNSAFE_AUTO_ID_TIMESTAMP_COMMIT_ID));
|
||||||
}
|
}
|
||||||
|
|
||||||
Directory getSnapshotDirectory() {
|
Directory getSnapshotDirectory() {
|
||||||
|
|
|
@ -40,8 +40,8 @@ import org.elasticsearch.common.lucene.Lucene;
|
||||||
import org.elasticsearch.common.unit.ByteSizeValue;
|
import org.elasticsearch.common.unit.ByteSizeValue;
|
||||||
import org.elasticsearch.common.unit.TimeValue;
|
import org.elasticsearch.common.unit.TimeValue;
|
||||||
import org.elasticsearch.index.Index;
|
import org.elasticsearch.index.Index;
|
||||||
|
import org.elasticsearch.index.engine.Engine;
|
||||||
import org.elasticsearch.index.engine.EngineException;
|
import org.elasticsearch.index.engine.EngineException;
|
||||||
import org.elasticsearch.index.engine.InternalEngine;
|
|
||||||
import org.elasticsearch.index.mapper.MapperService;
|
import org.elasticsearch.index.mapper.MapperService;
|
||||||
import org.elasticsearch.index.seqno.SequenceNumbers;
|
import org.elasticsearch.index.seqno.SequenceNumbers;
|
||||||
import org.elasticsearch.index.snapshots.IndexShardRestoreFailedException;
|
import org.elasticsearch.index.snapshots.IndexShardRestoreFailedException;
|
||||||
|
@ -181,7 +181,7 @@ final class StoreRecovery {
|
||||||
final HashMap<String, String> liveCommitData = new HashMap<>(3);
|
final HashMap<String, String> liveCommitData = new HashMap<>(3);
|
||||||
liveCommitData.put(SequenceNumbers.MAX_SEQ_NO, Long.toString(maxSeqNo));
|
liveCommitData.put(SequenceNumbers.MAX_SEQ_NO, Long.toString(maxSeqNo));
|
||||||
liveCommitData.put(SequenceNumbers.LOCAL_CHECKPOINT_KEY, Long.toString(maxSeqNo));
|
liveCommitData.put(SequenceNumbers.LOCAL_CHECKPOINT_KEY, Long.toString(maxSeqNo));
|
||||||
liveCommitData.put(InternalEngine.MAX_UNSAFE_AUTO_ID_TIMESTAMP_COMMIT_ID, Long.toString(maxUnsafeAutoIdTimestamp));
|
liveCommitData.put(Engine.MAX_UNSAFE_AUTO_ID_TIMESTAMP_COMMIT_ID, Long.toString(maxUnsafeAutoIdTimestamp));
|
||||||
return liveCommitData.entrySet().iterator();
|
return liveCommitData.entrySet().iterator();
|
||||||
});
|
});
|
||||||
writer.commit();
|
writer.commit();
|
||||||
|
|
|
@ -75,7 +75,6 @@ import org.elasticsearch.env.ShardLockObtainFailedException;
|
||||||
import org.elasticsearch.index.IndexSettings;
|
import org.elasticsearch.index.IndexSettings;
|
||||||
import org.elasticsearch.index.engine.CombinedDeletionPolicy;
|
import org.elasticsearch.index.engine.CombinedDeletionPolicy;
|
||||||
import org.elasticsearch.index.engine.Engine;
|
import org.elasticsearch.index.engine.Engine;
|
||||||
import org.elasticsearch.index.engine.InternalEngine;
|
|
||||||
import org.elasticsearch.index.seqno.SequenceNumbers;
|
import org.elasticsearch.index.seqno.SequenceNumbers;
|
||||||
import org.elasticsearch.index.shard.AbstractIndexShardComponent;
|
import org.elasticsearch.index.shard.AbstractIndexShardComponent;
|
||||||
import org.elasticsearch.index.shard.IndexShard;
|
import org.elasticsearch.index.shard.IndexShard;
|
||||||
|
@ -1425,7 +1424,7 @@ public class Store extends AbstractIndexShardComponent implements Closeable, Ref
|
||||||
map.put(Engine.HISTORY_UUID_KEY, UUIDs.randomBase64UUID());
|
map.put(Engine.HISTORY_UUID_KEY, UUIDs.randomBase64UUID());
|
||||||
map.put(SequenceNumbers.LOCAL_CHECKPOINT_KEY, Long.toString(SequenceNumbers.NO_OPS_PERFORMED));
|
map.put(SequenceNumbers.LOCAL_CHECKPOINT_KEY, Long.toString(SequenceNumbers.NO_OPS_PERFORMED));
|
||||||
map.put(SequenceNumbers.MAX_SEQ_NO, Long.toString(SequenceNumbers.NO_OPS_PERFORMED));
|
map.put(SequenceNumbers.MAX_SEQ_NO, Long.toString(SequenceNumbers.NO_OPS_PERFORMED));
|
||||||
map.put(InternalEngine.MAX_UNSAFE_AUTO_ID_TIMESTAMP_COMMIT_ID, "-1");
|
map.put(Engine.MAX_UNSAFE_AUTO_ID_TIMESTAMP_COMMIT_ID, "-1");
|
||||||
updateCommitData(writer, map);
|
updateCommitData(writer, map);
|
||||||
} finally {
|
} finally {
|
||||||
metadataLock.writeLock().unlock();
|
metadataLock.writeLock().unlock();
|
||||||
|
|
|
@ -44,7 +44,7 @@ import org.elasticsearch.Version;
|
||||||
import org.elasticsearch.cluster.metadata.IndexMetaData;
|
import org.elasticsearch.cluster.metadata.IndexMetaData;
|
||||||
import org.elasticsearch.cluster.routing.OperationRouting;
|
import org.elasticsearch.cluster.routing.OperationRouting;
|
||||||
import org.elasticsearch.common.settings.Settings;
|
import org.elasticsearch.common.settings.Settings;
|
||||||
import org.elasticsearch.index.engine.InternalEngine;
|
import org.elasticsearch.index.engine.Engine;
|
||||||
import org.elasticsearch.index.mapper.IdFieldMapper;
|
import org.elasticsearch.index.mapper.IdFieldMapper;
|
||||||
import org.elasticsearch.index.mapper.Uid;
|
import org.elasticsearch.index.mapper.Uid;
|
||||||
import org.elasticsearch.index.seqno.SequenceNumbers;
|
import org.elasticsearch.index.seqno.SequenceNumbers;
|
||||||
|
@ -118,7 +118,7 @@ public class StoreRecoveryTests extends ESTestCase {
|
||||||
final Map<String, String> userData = segmentCommitInfos.getUserData();
|
final Map<String, String> userData = segmentCommitInfos.getUserData();
|
||||||
assertThat(userData.get(SequenceNumbers.MAX_SEQ_NO), equalTo(Long.toString(maxSeqNo)));
|
assertThat(userData.get(SequenceNumbers.MAX_SEQ_NO), equalTo(Long.toString(maxSeqNo)));
|
||||||
assertThat(userData.get(SequenceNumbers.LOCAL_CHECKPOINT_KEY), equalTo(Long.toString(maxSeqNo)));
|
assertThat(userData.get(SequenceNumbers.LOCAL_CHECKPOINT_KEY), equalTo(Long.toString(maxSeqNo)));
|
||||||
assertThat(userData.get(InternalEngine.MAX_UNSAFE_AUTO_ID_TIMESTAMP_COMMIT_ID), equalTo(Long.toString(maxUnsafeAutoIdTimestamp)));
|
assertThat(userData.get(Engine.MAX_UNSAFE_AUTO_ID_TIMESTAMP_COMMIT_ID), equalTo(Long.toString(maxUnsafeAutoIdTimestamp)));
|
||||||
for (SegmentCommitInfo info : segmentCommitInfos) { // check that we didn't merge
|
for (SegmentCommitInfo info : segmentCommitInfos) { // check that we didn't merge
|
||||||
assertEquals("all sources must be flush",
|
assertEquals("all sources must be flush",
|
||||||
info.info.getDiagnostics().get("source"), "flush");
|
info.info.getDiagnostics().get("source"), "flush");
|
||||||
|
@ -179,7 +179,7 @@ public class StoreRecoveryTests extends ESTestCase {
|
||||||
final Map<String, String> userData = segmentCommitInfos.getUserData();
|
final Map<String, String> userData = segmentCommitInfos.getUserData();
|
||||||
assertThat(userData.get(SequenceNumbers.MAX_SEQ_NO), equalTo(Long.toString(maxSeqNo)));
|
assertThat(userData.get(SequenceNumbers.MAX_SEQ_NO), equalTo(Long.toString(maxSeqNo)));
|
||||||
assertThat(userData.get(SequenceNumbers.LOCAL_CHECKPOINT_KEY), equalTo(Long.toString(maxSeqNo)));
|
assertThat(userData.get(SequenceNumbers.LOCAL_CHECKPOINT_KEY), equalTo(Long.toString(maxSeqNo)));
|
||||||
assertThat(userData.get(InternalEngine.MAX_UNSAFE_AUTO_ID_TIMESTAMP_COMMIT_ID), equalTo(Long.toString(maxUnsafeAutoIdTimestamp)));
|
assertThat(userData.get(Engine.MAX_UNSAFE_AUTO_ID_TIMESTAMP_COMMIT_ID), equalTo(Long.toString(maxUnsafeAutoIdTimestamp)));
|
||||||
for (SegmentCommitInfo info : segmentCommitInfos) { // check that we didn't merge
|
for (SegmentCommitInfo info : segmentCommitInfos) { // check that we didn't merge
|
||||||
assertEquals("all sources must be flush",
|
assertEquals("all sources must be flush",
|
||||||
info.info.getDiagnostics().get("source"), "flush");
|
info.info.getDiagnostics().get("source"), "flush");
|
||||||
|
|
Loading…
Reference in New Issue