Paper/Spigot-Server-Patches
Aikar e546c55b6e Optimize Chunk Unload Queue
Removing chunks from the unload queue when performing chunk lookups is a costly activity.

It drastically slows down server performance as many methods call getChunkAt, resulting in a bandaid
to skip removing chunks from the unload queue.

This patch optimizes the unload queue to instead use a boolean on the Chunk object itself to mark
if the chunk is active, and then insert into a LinkedList queue.

The benefits here is that all chunk unload queue actions are now O(1) constant time.

A LinkedList will never need to resize, and can be removed from in constant time when
used in a queue like method.

We mark the chunk as active in many places that notify it is still being used, so that
when the chunk unload queue reaches that chunk, and sees the chunk became active again,
it will skip it and move to next.
2016-03-18 18:03:44 -04:00
..
0001-POM-Changes.patch set default goals on all pom poms </cheer> 2016-03-18 02:13:51 -04:00
0002-Paper-config-files.patch Move config change into config patch 2016-03-18 16:41:26 -05:00
0003-mc-dev-imports.patch Upstream changes 2016-03-17 23:31:20 -05:00
0004-Vanished-players-don-t-have-rights.patch Update and rebuild patches 2016-03-06 14:59:17 -06:00
0005-Configurable-squid-spawn-ranges.patch Move config change into config patch 2016-03-18 16:41:26 -05:00
0006-Configurable-cactus-and-reed-natural-growth-heights.patch Move config change into config patch 2016-03-18 16:41:26 -05:00
0007-Configurable-baby-zombie-movement-speed.patch Move config change into config patch 2016-03-18 16:41:26 -05:00
0008-Configurable-fishing-time-ranges.patch Move config change into config patch 2016-03-18 16:41:26 -05:00
0009-Allow-nerfed-mobs-to-jump.patch Rebuild patches 2016-03-07 15:54:14 -06:00
0010-Toggle-for-player-interact-limiter.patch Fix the end credits toggle 2016-03-16 02:41:38 -05:00
0011-Player-Exhaustion-Multipliers.patch Move config change into config patch 2016-03-18 16:41:26 -05:00
0012-Add-configurable-despawn-distances-for-living-entiti.patch Move config change into config patch 2016-03-18 16:41:26 -05:00
0013-Allow-for-toggling-of-spawn-chunks.patch Move config change into config patch 2016-03-18 16:41:26 -05:00
0014-Drop-falling-block-and-tnt-entities-at-the-specified.patch Move config change into config patch 2016-03-18 16:41:26 -05:00
0015-Configurable-speed-for-water-flowing-over-lava.patch Move config change into config patch 2016-03-18 16:41:26 -05:00
0016-Show-Paper-in-client-crashes-server-lists-and-Mojang.patch Someone questioned my professionality today 2016-03-16 03:16:12 -05:00
0017-Player-affects-spawning-API.patch Re-add chunk save queue improvements 2016-03-12 14:23:17 -06:00
0018-Metrics.patch Paper 1.9 2016-03-03 03:46:49 -06:00
0019-Remove-invalid-mob-spawner-tile-entities.patch Paper 1.9 2016-03-03 03:46:49 -06:00
0020-Optimize-TileEntity-Ticking.patch Update and rebuild patches 2016-03-06 14:59:17 -06:00
0021-Further-improve-server-tick-loop.patch Update for upstream changes 2016-03-03 04:07:25 -06:00
0022-Only-refresh-abilities-if-needed.patch Update for upstream changes 2016-03-03 04:07:25 -06:00
0023-Add-async-chunk-load-API.patch Update upstream and rebuild patches 2016-03-11 20:13:31 -06:00
0024-FallingBlock-and-TNTPrimed-source-location-API.patch Update upstream and rebuild patches 2016-03-11 20:13:31 -06:00
0025-Prevent-tile-entity-and-entity-crashes.patch Update and rebuild patches 2016-03-06 14:59:17 -06:00
0026-Configurable-top-of-nether-void-damage.patch Move config change into config patch 2016-03-18 16:41:26 -05:00
0027-Check-online-mode-before-converting-and-renaming-pla.patch Paper 1.9 2016-03-03 03:46:49 -06:00
0028-Fix-redstone-lag-issues.patch Move config change into config patch 2016-03-18 16:41:26 -05:00
0029-Always-tick-falling-blocks.patch Paper 1.9 2016-03-03 03:46:49 -06:00
0030-Configurable-async-light-updates.patch Move config change into config patch 2016-03-18 16:41:26 -05:00
0031-Optimize-draining.patch Paper 1.9 2016-03-03 03:46:49 -06:00
0032-Configurable-end-credits.patch Move config change into config patch 2016-03-18 16:41:26 -05:00
0033-Fix-lag-from-explosions-processing-dead-entities.patch Fix the end credits toggle 2016-03-16 02:41:38 -05:00
0034-Generator-Settings.patch Move config change into config patch 2016-03-18 16:41:26 -05:00
0035-Optimize-explosions.patch Move config change into config patch 2016-03-18 16:41:26 -05:00
0036-Stop-updating-flowing-block-if-material-has-changed.patch Fix the end credits toggle 2016-03-16 02:41:38 -05:00
0037-Fast-draining.patch Move config change into config patch 2016-03-18 16:41:26 -05:00
0038-Configurable-lava-flow-speed.patch Move config change into config patch 2016-03-18 16:41:26 -05:00
0039-Add-player-view-distance-API.patch Fix the end credits toggle 2016-03-16 02:41:38 -05:00
0040-Disable-explosion-knockback.patch Move config change into config patch 2016-03-18 16:41:26 -05:00
0041-Disable-thunder.patch Move config change into config patch 2016-03-18 16:41:26 -05:00
0042-Disable-ice-and-snow.patch Move config change into config patch 2016-03-18 16:41:26 -05:00
0043-Configurable-mob-spawner-tick-rate.patch Move config change into config patch 2016-03-18 16:41:26 -05:00
0044-Configurable-TNT-cannon-fix.patch Move config change into config patch 2016-03-18 16:41:26 -05:00
0045-Send-absolute-position-the-first-time-an-entity-is-s.patch Fix the end credits toggle 2016-03-16 02:41:38 -05:00
0046-Add-BeaconEffectEvent.patch Fix the end credits toggle 2016-03-16 02:41:38 -05:00
0047-Configurable-container-update-tick-rate.patch Move config change into config patch 2016-03-18 16:41:26 -05:00
0048-Fix-lava-water-some-times-creating-air-instead-of-co.patch Fix the end credits toggle 2016-03-16 02:41:38 -05:00
0049-Use-UserCache-for-player-heads.patch Fix the end credits toggle 2016-03-16 02:41:38 -05:00
0050-Disable-spigot-tick-limiters.patch Fix the end credits toggle 2016-03-16 02:41:38 -05:00
0051-Bump-thread-count-for-chunk-loading.patch Fix the end credits toggle 2016-03-16 02:41:38 -05:00
0052-Don-t-create-Region-File-s-when-checking-if-chunk-ex.patch Fix the end credits toggle 2016-03-16 02:41:38 -05:00
0053-Don-t-create-a-chunk-just-to-unload-it.patch Fix the end credits toggle 2016-03-16 02:41:38 -05:00
0054-EAR-Fix-bug-with-teleporting-entities.patch Fix the end credits toggle 2016-03-16 02:41:38 -05:00
0055-Add-PlayerInitialSpawnEvent.patch Fix the end credits toggle 2016-03-16 02:41:38 -05:00
0056-Process-Entity-Chunk-Registration-on-Teleport.patch patch rebuild 2016-03-18 01:47:31 -04:00
0057-Timings-v2.patch Remove checkIfActive timings 2016-03-18 17:11:53 -04:00
0058-Disable-chest-cat-detection.patch Move config change into config patch 2016-03-18 16:41:26 -05:00
0059-Ensure-commands-are-not-ran-async.patch Fix the end credits toggle 2016-03-16 02:41:38 -05:00
0060-All-chunks-are-slime-spawn-chunks-toggle.patch Move config change into config patch 2016-03-18 16:41:26 -05:00
0061-Add-Location-support-to-tab-completers-vanilla-featu.patch Move config change into config patch 2016-03-18 16:41:26 -05:00
0062-Made-EntityDismountEvent-Cancellable.patch Fix the end credits toggle 2016-03-16 02:41:38 -05:00
0063-Optimize-Pathfinding.patch Fix the end credits toggle 2016-03-16 02:41:38 -05:00
0064-Optimize-getBlockData.patch Fix the end credits toggle 2016-03-16 02:41:38 -05:00
0065-Avoid-hopper-searches-if-there-are-no-items.patch Fix the end credits toggle 2016-03-16 02:41:38 -05:00
0066-Expose-server-CommandMap.patch Fix the end credits toggle 2016-03-16 02:41:38 -05:00
0067-Be-a-bit-more-informative-in-maxHealth-exception.patch Fix the end credits toggle 2016-03-16 02:41:38 -05:00
0068-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch Fix the end credits toggle 2016-03-16 02:41:38 -05:00
0069-Player-Tab-List-and-Title-APIs.patch Don't pass null title to constructor 2016-03-16 18:59:34 -07:00
0070-Ensure-inv-drag-is-in-bounds.patch Fix the end credits toggle 2016-03-16 02:41:38 -05:00
0071-Change-implementation-of-tile-entity-removal-list.patch Fix the end credits toggle 2016-03-16 02:41:38 -05:00
0072-Add-configurable-portal-search-radius.patch Move config change into config patch 2016-03-18 16:41:26 -05:00
0073-Add-velocity-warnings.patch patch rebuild 2016-03-18 01:47:31 -04:00
0074-Fix-inter-world-teleportation-glitches.patch Move config change into config patch 2016-03-18 16:41:26 -05:00
0075-Add-exception-reporting-event.patch Fix the end credits toggle 2016-03-16 02:41:38 -05:00
0076-Speedup-BlockPos-by-fixing-inlining.patch Fix the end credits toggle 2016-03-16 02:41:38 -05:00
0077-Optimize-Navigation-Listener.patch Add comment to Navigation patch on why its done that way 2016-03-18 17:12:30 -04:00
0078-Don-t-nest-if-we-don-t-need-to-when-cerealising-text.patch Fix the end credits toggle 2016-03-16 02:41:38 -05:00
0079-Disable-Scoreboards-for-non-players-by-default.patch Move config change into config patch 2016-03-18 16:41:26 -05:00
0080-Add-methods-for-working-with-arrows-stuck-in-living-.patch Fix the end credits toggle 2016-03-16 02:41:38 -05:00
0081-Complete-resource-pack-API.patch Don't pass null title to constructor 2016-03-16 18:59:34 -07:00
0082-Re-add-Spigot-s-hopper-check-feature.patch Move config change into config patch 2016-03-18 16:41:26 -05:00
0083-Chunk-save-queue-improvements.patch reduce sleep rate if file io thread sleep is enabled 2016-03-18 13:41:18 -04:00
0084-Chunk-Save-Reattempt.patch Chunk Save Reattempt 2016-03-18 01:37:16 -04:00
0085-Default-loading-permissions.yml-before-plugins.patch Default loading permissions.yml before plugins 2016-03-18 13:23:48 -04:00
0086-Invalidate-Metadata-on-reload.patch Invalidate Metadata on reload 2016-03-18 13:50:33 -04:00
0087-Undead-horse-leashing.patch Move config change into config patch 2016-03-18 16:41:26 -05:00
0088-Fix-Furnace-cook-time-bug.patch Fix Furnace cook time bug 2016-03-18 14:27:53 -04:00
0089-Handle-Item-Meta-Inconsistencies.patch Handle Item Meta Inconsistencies 2016-03-18 14:56:16 -04:00
0090-Configurable-Non-Player-Arrow-Despawn-Rate.patch Move config change into config patch 2016-03-18 16:41:26 -05:00
0091-Optimize-Chunk-Unload-Queue.patch Optimize Chunk Unload Queue 2016-03-18 18:03:44 -04:00