diff --git a/patches/server/0021-Tuinity-Change-writes-to-use-NORMAL-priority-rather-.patch b/patches/server/0021-Tuinity-Change-writes-to-use-NORMAL-priority-rather-.patch new file mode 100644 index 000000000..cc09eb4df --- /dev/null +++ b/patches/server/0021-Tuinity-Change-writes-to-use-NORMAL-priority-rather-.patch @@ -0,0 +1,53 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=E3=84=97=E3=84=A0=CB=8B=20=E3=84=91=E3=84=A7=CB=8A?= + +Date: Sat, 18 Apr 2020 18:08:17 +0800 +Subject: [PATCH] Tuinity Change writes to use NORMAL priority rather than LOW + +Should limit build up of I/O tasks, or at least properly +indicate to server owners that I/O is falling behind + +diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java +index f8ad08cccf25ef26759231c3d26b71d33d010eb8..7b7e1b2b45dcfe55c4052dacdcc2ca629ca4521b 100644 +--- a/src/main/java/net/minecraft/server/PlayerChunkMap.java ++++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java +@@ -599,7 +599,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { + } + + com.destroystokyo.paper.io.PaperFileIOThread.Holder.INSTANCE.scheduleSave(this.world, chunkPos.x, chunkPos.z, +- poiData, null, com.destroystokyo.paper.io.PrioritizedTaskQueue.LOW_PRIORITY); ++ poiData, null, com.destroystokyo.paper.io.PrioritizedTaskQueue.NORMAL_PRIORITY); // Tuinity - use normal priority + + if (!chunk.isNeedsSaving()) { + return; +@@ -633,7 +633,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { + asyncSaveData = ChunkRegionLoader.getAsyncSaveData(this.world, chunk); + } + +- this.world.asyncChunkTaskManager.scheduleChunkSave(chunkPos.x, chunkPos.z, com.destroystokyo.paper.io.PrioritizedTaskQueue.LOW_PRIORITY, ++ this.world.asyncChunkTaskManager.scheduleChunkSave(chunkPos.x, chunkPos.z, com.destroystokyo.paper.io.PrioritizedTaskQueue.NORMAL_PRIORITY, // Tuinity - use normal priority + asyncSaveData, chunk); + + chunk.setLastSaved(this.world.getTime()); +@@ -1045,7 +1045,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { + // Paper start - async chunk io + private boolean writeDataAsync(ChunkCoordIntPair chunkPos, NBTTagCompound poiData, NBTTagCompound chunkData, boolean async) { + com.destroystokyo.paper.io.PaperFileIOThread.Holder.INSTANCE.scheduleSave(this.world, chunkPos.x, chunkPos.z, +- poiData, chunkData, !async ? com.destroystokyo.paper.io.PrioritizedTaskQueue.HIGHEST_PRIORITY : com.destroystokyo.paper.io.PrioritizedTaskQueue.LOW_PRIORITY); ++ poiData, chunkData, !async ? com.destroystokyo.paper.io.PrioritizedTaskQueue.HIGHEST_PRIORITY : com.destroystokyo.paper.io.PrioritizedTaskQueue.NORMAL_PRIORITY); // Tuinity - use normal priority + + if (async) { + return true; +diff --git a/src/main/java/net/minecraft/server/VillagePlace.java b/src/main/java/net/minecraft/server/VillagePlace.java +index b59ef1a63338aa150d39e8014e12b2275da26d50..f0702969c366be067af61be777e64509d923d081 100644 +--- a/src/main/java/net/minecraft/server/VillagePlace.java ++++ b/src/main/java/net/minecraft/server/VillagePlace.java +@@ -150,7 +150,7 @@ public class VillagePlace extends RegionFileSection { + data = this.getData(chunkcoordintpair); + } + com.destroystokyo.paper.io.PaperFileIOThread.Holder.INSTANCE.scheduleSave(this.world, +- chunkcoordintpair.x, chunkcoordintpair.z, data, null, com.destroystokyo.paper.io.PrioritizedTaskQueue.LOW_PRIORITY); ++ chunkcoordintpair.x, chunkcoordintpair.z, data, null, com.destroystokyo.paper.io.PrioritizedTaskQueue.NORMAL_PRIORITY); // Tuinity - use normal priority + } + } + // Paper end