Repository navigation
Chunk encoding cache - #1832
Chunk encoding cache#1832Wakcli wants to merge 2 commits into
Conversation
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | 43 |
NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7e12283e76
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| } else { | ||
| next = previous.handle((v, t) -> null).thenRunAsync(() -> writeEntitiesAsync(chunkX, chunkZ, dimensionType, entityNbt), Server.getInstance().getVirtualThreadPool()); | ||
| } | ||
| next.whenComplete((v, t) -> entityWriteChains.remove(key, next)); |
There was a problem hiding this comment.
Publish the chain before registering its cleanup
When a fast entity write—especially an empty-map chunk-unload write—finishes before this compute callback returns, whenComplete executes immediately while the map still contains either the old value or ConcurrentHashMap's reservation rather than next. The conditional removal therefore fails, after which compute installs the already-completed future permanently; over a long-running server, affected chunk keys accumulate in entityWriteChains without bound. Register the cleanup only after the computed future has been published, or otherwise ensure a completion that races publication performs a subsequent removal.
Useful? React with 👍 / 👎.
stop reencoding the same chunk for every player
Ecode once, reuse it, and don't let saving lag the server.
PREF fix (PR 2/9)