Skip to content

Commit 47f796f

Browse files
committed
POC for hollow shard
1 parent d22a946 commit 47f796f

File tree

3 files changed

+32
-2
lines changed

3 files changed

+32
-2
lines changed

server/src/main/java/org/elasticsearch/index/IndexService.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -282,6 +282,11 @@ public IndexService(
282282
}
283283

284284
static boolean needsMapperService(IndexSettings indexSettings, IndexCreationContext indexCreationContext) {
285+
// if (indexSettings.getSettings().get("index.provided_name").equals(".ds-gharchive-2024.11.22-000025")) {
286+
// return true;
287+
// } else {
288+
// return false;
289+
// }
285290
return false == (indexSettings.getIndexMetadata().getState() == IndexMetadata.State.CLOSE
286291
&& indexCreationContext == IndexCreationContext.CREATE_INDEX); // metadata verification needs a mapper service
287292
}

server/src/main/java/org/elasticsearch/index/shard/IndexShard.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4263,6 +4263,28 @@ public void afterRefresh(boolean didRefresh) {
42634263
}
42644264
}
42654265

4266+
public void myReset(ActionListener<Void> listener) throws IOException {
4267+
ActionListener.run(ActionListener.<Void>wrap(ignored -> {
4268+
ActionListener.run(listener, l -> {
4269+
final EngineConfig config = newEngineConfig(replicationTracker);
4270+
config.setEnableGcDeletes(false);
4271+
synchronized (engineMutex) {
4272+
IOUtils.close(currentEngineReference.get());
4273+
final Engine newEngine = createEngine(config);
4274+
currentEngineReference.set(newEngine);
4275+
onNewEngine(newEngine);
4276+
active.set(true);
4277+
}
4278+
onSettingsChanged();
4279+
checkAndCallWaitForEngineOrClosedShardListeners();
4280+
4281+
getEngine().skipTranslogRecovery();
4282+
getEngine().refresh("post_recovery");
4283+
indexEventListener.afterIndexShardRecovery(this, l);
4284+
});
4285+
}, e -> { listener.onFailure(e); }), l -> indexEventListener.beforeIndexShardRecovery(this, indexSettings, l));
4286+
}
4287+
42664288
/**
42674289
* Rollback the current engine to the safe commit, then replay local translog up to the global checkpoint.
42684290
*/

server/src/main/java/org/elasticsearch/node/NodeConstruction.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,7 @@
221221
import java.io.Closeable;
222222
import java.io.IOException;
223223
import java.io.UncheckedIOException;
224+
import java.lang.management.ManagementFactory;
224225
import java.util.ArrayList;
225226
import java.util.Arrays;
226227
import java.util.Collection;
@@ -538,15 +539,17 @@ private SettingsModule validateSettings(Settings envSettings, Settings settings,
538539
// after settings validation.
539540
nodeEnvironment = new NodeEnvironment(envSettings, environment);
540541
logger.info(
541-
"node name [{}], node ID [{}], cluster name [{}], roles {}",
542+
"node name [{}], node ID [{}], cluster name [{}], roles {}, myPID {}",
542543
Node.NODE_NAME_SETTING.get(envSettings),
543544
nodeEnvironment.nodeId(),
544545
ClusterName.CLUSTER_NAME_SETTING.get(envSettings).value(),
545546
DiscoveryNode.getRolesFromSettings(settings)
546547
.stream()
547548
.map(DiscoveryNodeRole::roleName)
548-
.collect(Collectors.toCollection(LinkedHashSet::new))
549+
.collect(Collectors.toCollection(LinkedHashSet::new)),
550+
ManagementFactory.getRuntimeMXBean().getName()
549551
);
552+
550553
resourcesToClose.add(nodeEnvironment);
551554
modules.bindToInstance(NodeEnvironment.class, nodeEnvironment);
552555

0 commit comments

Comments
 (0)