Sometimes World.save() did not save the whole world. (#1538)
flag = true is a force save of the whole world (for example World.save()), this should ignore the current queue size.
This commit is contained in:
parent
e2418a9945
commit
0a6d449907
2 changed files with 11 additions and 11 deletions
|
@ -1,4 +1,4 @@
|
|||
From 1558a2bb058ae4bc2efcdcbae2d89a789c093c7d Mon Sep 17 00:00:00 2001
|
||||
From be8e64ee4c08fbd849697a69c8d40d3773bdec21 Mon Sep 17 00:00:00 2001
|
||||
From: Aikar <aikar@aikar.co>
|
||||
Date: Thu, 3 Nov 2016 21:52:22 -0400
|
||||
Subject: [PATCH] Prevent Auto Save if Save Queue is full
|
||||
|
@ -7,7 +7,7 @@ If the save queue already has 50 (configurable) of chunks pending,
|
|||
then avoid processing auto save (which would add more)
|
||||
|
||||
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||
index 0d456bcbac..40746c13ef 100644
|
||||
index 0d456bcba..40746c13e 100644
|
||||
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||
@@ -327,6 +327,11 @@ public class PaperWorldConfig {
|
||||
|
@ -23,7 +23,7 @@ index 0d456bcbac..40746c13ef 100644
|
|||
private void removeCorruptTEs() {
|
||||
removeCorruptTEs = getBoolean("remove-corrupt-tile-entities", false);
|
||||
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
||||
index 69219b13a6..5197062293 100644
|
||||
index 69219b13a..09c81e9ab 100644
|
||||
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
||||
@@ -234,6 +234,13 @@ public class ChunkProviderServer implements IChunkProvider {
|
||||
|
@ -33,7 +33,7 @@ index 69219b13a6..5197062293 100644
|
|||
+ // Paper start
|
||||
+ final ChunkRegionLoader chunkLoader = (ChunkRegionLoader) world.getChunkProviderServer().chunkLoader;
|
||||
+ final int queueSize = chunkLoader.getQueueSize();
|
||||
+ if (queueSize > world.paperConfig.queueSizeAutoSaveThreshold){
|
||||
+ if (!flag && queueSize > world.paperConfig.queueSizeAutoSaveThreshold){
|
||||
+ return false;
|
||||
+ }
|
||||
+ // Paper end
|
||||
|
@ -41,7 +41,7 @@ index 69219b13a6..5197062293 100644
|
|||
Chunk chunk = (Chunk) objectiterator.next();
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
index 695044b1b1..e86d47a05e 100644
|
||||
index 695044b1b..e86d47a05 100644
|
||||
--- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
+++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
@@ -152,6 +152,8 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
|
@ -54,5 +54,5 @@ index 695044b1b1..e86d47a05e 100644
|
|||
@Nullable
|
||||
public Chunk a(GeneratorAccess generatoraccess, int i, int j, Consumer<Chunk> consumer) throws IOException {
|
||||
--
|
||||
2.19.0
|
||||
2.16.1.windows.1
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
From c4a4536232e95b7dcfed31e713690cfec7326ab6 Mon Sep 17 00:00:00 2001
|
||||
From 3a3142f6e641798f49064f6ad53110476408ef57 Mon Sep 17 00:00:00 2001
|
||||
From: Aikar <aikar@aikar.co>
|
||||
Date: Fri, 4 Nov 2016 02:12:10 -0400
|
||||
Subject: [PATCH] Chunk Save Stats Debug Option
|
||||
|
@ -8,7 +8,7 @@ Adds a command line flag to enable stats on how chunk saves are processing.
|
|||
Stats on current queue, how many was processed and how many were queued.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
||||
index 5197062293..e4d2a3a0b5 100644
|
||||
index 09c81e9ab..a94719d58 100644
|
||||
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
||||
@@ -30,6 +30,11 @@ public class ChunkProviderServer implements IChunkProvider {
|
||||
|
@ -50,11 +50,11 @@ index 5197062293..e4d2a3a0b5 100644
|
|||
+ );
|
||||
+ }
|
||||
+ }
|
||||
if (queueSize > world.paperConfig.queueSizeAutoSaveThreshold){
|
||||
if (!flag && queueSize > world.paperConfig.queueSizeAutoSaveThreshold){
|
||||
return false;
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
index e86d47a05e..ec328126cf 100644
|
||||
index e86d47a05..ec328126c 100644
|
||||
--- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
+++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
@@ -152,7 +152,13 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
|
@ -89,5 +89,5 @@ index e86d47a05e..ec328126cf 100644
|
|||
if (nbttagcompound == null) {
|
||||
return true;
|
||||
--
|
||||
2.19.0
|
||||
2.16.1.windows.1
|
||||
|
||||
|
|
Loading…
Reference in a new issue