Skip to content

Commit ae07809

Browse files
committed
purge-stale-tickets-frequency optimisation
1 parent 64f5e0d commit ae07809

File tree

3 files changed

+8
-2
lines changed

3 files changed

+8
-2
lines changed

SHREDDEDPAPER_YAML.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,9 @@ optimizations:
6969
# How often (in ticks) to do a full tracker update per entity. The vanilla
7070
# default is '1'.
7171
tracker-full-update-frequency: 20
72+
73+
# How often (in ticks) to purge stale tickets. The papermc default is '1'.
74+
purge-stale-tickets-frequency: 20
7275

7376
# Cache full chunk packets so that we aren't recreating them every time the
7477
# same chunk is sent to a new player. Useful when lots of players are in the

shreddedpaper-server/minecraft-patches/sources/net/minecraft/server/level/ServerChunkCache.java.patch

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
--- a/net/minecraft/server/level/ServerChunkCache.java
22
+++ b/net/minecraft/server/level/ServerChunkCache.java
3-
@@ -1,8 +_,14 @@
3+
@@ -1,8 +_,15 @@
44
package net.minecraft.server.level;
55

66
+import ca.spottedleaf.moonrise.common.util.TickThread;
77
import com.google.common.annotations.VisibleForTesting;
88
import com.mojang.datafixers.DataFixer;
99
import com.mojang.logging.LogUtils;
10+
+import io.multipaper.shreddedpaper.config.ShreddedPaperConfiguration;
1011
+import io.multipaper.shreddedpaper.region.LevelChunkRegionMap;
1112
+import io.multipaper.shreddedpaper.region.RegionPos;
1213
+import io.multipaper.shreddedpaper.threading.ShreddedPaperChangesBroadcaster;
@@ -68,7 +69,7 @@
6869
return this.mainThreadProcessor.pollTask();
6970
}
7071

71-
@@ -474,28 +_,36 @@
72+
@@ -474,28 +_,37 @@
7273
// CraftBukkit end
7374

7475
@Override
@@ -80,6 +81,7 @@
8081
+ CompletableFuture<Void> purgeStaleTicketsFuture = CompletableFuture.completedFuture(null); // ShreddedPaper - purgeStaleTickets async
8182
if (this.level.tickRateManager().runsNormally() || !tickChunks || this.level.spigotConfig.unloadFrozenChunks) { // Spigot
8283
- this.ticketStorage.purgeStaleTickets(this.chunkMap);
84+
+ if (this.level.getGameTime() % ShreddedPaperConfiguration.get().optimizations.purgeStaleTicketsFrequency == 0) // ShreddedPaper - purgeStaleTicketsFrequency
8385
+ purgeStaleTicketsFuture = purgeStaleTicketsFuture.thenRunAsync(() -> this.ticketStorage.purgeStaleTickets(this.chunkMap), this.level.levelThread); // ShreddedPaper - purgeStaleTickets async
8486
}
8587

shreddedpaper-server/src/main/java/io/multipaper/shreddedpaper/config/ShreddedPaperConfiguration.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ public class Optimizations extends ConfigurationPart {
4848
public boolean flushQueueInParallel = true;
4949
public int maximumTrackersPerEntity = 500;
5050
public long trackerFullUpdateFrequency = 20;
51+
public long purgeStaleTicketsFrequency = 20;
5152
public boolean writePlayerSavesAsync = true;
5253
public ChunkPacketCaching chunkPacketCaching;
5354

0 commit comments

Comments
 (0)