You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Changes
Gear-station clicks no longer freeze the server. Every deposit, charge, eject or "is this station occupied?" check used to re-read and parse the whole gear-stations.yml on the main thread, often several times per click. On Main that file had grown to 5.4 MB, and almost all of it was released stations, so each click froze the server for 0.5–2 s. (#66)
Released stations are now moved out of the live file into data/gear-stations-archive/<occupancy-id>.yml. This happens once at startup and after each release.
The archive copy is written safely to disk before the row leaves the live file. A row that can't be archived stays in the live file, with a log warning.
The live file stays small, so it can't reach the 16M-character read limit that would have stopped every gear station.
Lookups no longer make an extra YAML copy of every row. Writes and change checks work exactly as before.
Shrine sacrifice and meditation scans skip unloaded chunks instead of loading them. Both scan only the chunks around a player, so nothing changes in play. (#66)
Upgrade notes
On the first start, Magic logs Archived N released gear station rows to data/gear-stations-archive. Open, held and charging stations are untouched.
After a release, staff looking for an old station's record will find it in gear-stations-archive/, not in gear-stations.yml.