mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2026-10-26 22:10:18 +00:00
Unblocked history stage admission
- Generation stages read coherent metadata from the immutable store manifest - Stage admission proceeds while unrelated semantic journal flushes hold the history monitor - Concurrency tests preserve durable publication, cutover ordering, and failed admission cleanup
This commit is contained in:
1 parent
763f9df2c2
commit
48a81a3d2c
2 files changed
+233
-13
No files matched your search
@@ -570,19 +570,18 @@ public final class GenerationHistory {
|
||||
public GenerationStage openStage(int chunkX, int chunkZ) throws IOException {
|
||||
GenerationAdmission.StageLease lease = admission.enterStage();
|
||||
try {
|
||||
synchronized (this) {
|
||||
GenerationActivation activation = store.activeActivation();
|
||||
GenerationEpoch epoch = requireEpoch(activation.epochId());
|
||||
return new GenerationStage(
|
||||
this,
|
||||
chunkX,
|
||||
chunkZ,
|
||||
activation,
|
||||
epoch,
|
||||
paths.packRoot(epoch.epochId()),
|
||||
lease
|
||||
);
|
||||
}
|
||||
GenerationManifest manifest = store.manifest();
|
||||
GenerationActivation activation = manifest.activeActivation();
|
||||
GenerationEpoch epoch = manifest.activeEpoch();
|
||||
return new GenerationStage(
|
||||
this,
|
||||
chunkX,
|
||||
chunkZ,
|
||||
activation,
|
||||
epoch,
|
||||
paths.packRoot(epoch.epochId()),
|
||||
lease
|
||||
);
|
||||
} catch (Throwable failure) {
|
||||
lease.close();
|
||||
if (failure instanceof IOException ioFailure) {
|
||||
|
||||
Reference in new issue
Block a user