-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SectorFile Test #10231
base: master
Are you sure you want to change the base?
SectorFile Test #10231
Conversation
Someone had mentioned that ZSTD dictionaries might help improve the compression ratio and speeds. Thought I'd mention that, maybe it's useful. |
I am (probably) that person? Anyways, I was doing tests with adding zstd compression to the vanilla anvil format. I got a ratio of ~97% when compared to zlib when using zstd -4 on its own. Then with dictionary compression the ratio drops down to ~89%. It's not a huge gain due to the padding problem, but it helps a bit. To clarify, I did not test compression speed, but as I understand at these low compression levels it should be faster than zlib even without a dictionary. That work is featured here and uses the namespace My ratio results are not particularly relevant to SectorFile, which will use 512 byte sectors and such has potential for a lot more gains. The dictionary is not specific to entities, poi, or chunk, but rather combined based on a representative distribution of these |
27aaadc
to
4a3df96
Compare
- Updated to latest PR commit (PaperMC/Paper@4a3df96) All licenses for this patch are owned by SpottedLeaf and PaperMC, and PlazmaMC has nothing to do with that feature. Thank you SpottedLeaf and PaperMC for developing SectorFile.
Any plans to update this and Folia's sectorfile branch to 1.20.6? |
4a3df96
to
4177735
Compare
I've updated the branch to 1.20.6 |
I've updated SectorTool to v1.1:
I will be adding in code to convert RegionFiles on the fly as well. |
I've added conversion logic to copy data from existing RegionFiles when a SectorFile does not exist. |
When doing --forceUpgrade it crashes the server when having Unconverted RegionFiles. |
forceUpgrade is not actually supported on this branch, as the code has not been modified to use SectorFile |
Will this Format become Standard in Paper? |
I don't think so, if the conversion fails and the region files are deleted, it'd be pretty bad. Just delete them manually if you need to. |
Any Plans to update this to Latest 1.20.6? |
Scroll up. |
A long standing bug in spigot and its derivatives was the fact that players taking damage while blocking with a shield would not receive invulnerability, while they do in vanilla. This enabled the pvp technique of disabling a shield and immediately attacking again to knock a player into the air. While upstream fixed this and properly aligned itself with vanilla damage logic (in this specific case) changing such long standing behaviour has some downsides. To allow players used to this specific bug to still use it, this patch introduces a configuration option to re-introduce said bug. As there is no easy way to *only* re-add this bug, the option is found in the unsupported section as it may introduce other damage related disparity from vanilla.
The armor items may not exist, so we need to null check it.
Please see https://github.com/PaperMC/SectorTool for details on the new format and how to use the tool to convert the world or how to revert the conversion. This patch includes conversion logic to convert RegionFiles to SectorFile on demand. If a SectorFile does not exist, it will attempt to copy chunk/entity/poi data from existing RegionFiles. Included in this test patch is logic to dump SectorFile operation tracing to file `sectorfile.tracer` in the root dir of a world. The file is not compressed, and it is appended to only. As a result of the lack of compression, when sending the file back for analysis please compress it to reduce size usage. This tracing will be useful for later tests to perform parameter scanning on some of the parameters of SectorFile: 1. The section shift 2. The sector size 3. SectorFile cache size
81866e2
to
216b704
Compare
I've updated SectorTool to 1.3 to fix an issue where SectorFiles are far larger than they should be when converting RegionFiles using the raw flag or when the RegionFiles were stored with the uncompressed format. This affects the auto conversion previously in this branch as well, as it converted using the raw flag. If the original RegionFiles were stored in a compressed format, the large size can be fixed by converting from SectorFile to RegionFile and then back again. If the RegionFiles were in an uncompressed format, then you need to convert to RegionFile, then use the recreateRegionFiles startup option with forceUpgrade and then convert back to SectorFile. SectorTool 1.3 also includes a minor disk space improvement by not storing type headers on disk if they're unused (this mostly will cause the type headers for poi and entity to be unallocated until data is written for them), which has been copied over to this branch. Note that the branches are still on 1.20.6 as of writing. EDIT: |
The goal of this PR is to gather some data on the current deficiencies of RegionFile and improve them in SectorFile. Currently, the main improvements are:
The compression configuration (
compression-format
) in paper supports setting the value to ZSTD as well as LZ4.Please see https://github.com/PaperMC/SectorTool for details on the new format and how to use the tool to convert the world or how to revert the conversion. The tool can be downloaded from the release tab.
Please see SPECIFICATION.md for details on the new format specification.
This patch includes conversion logic to convert RegionFiles to SectorFile on demand. If a SectorFile does not exist, it will
attempt to copy chunk/entity/poi data from existing RegionFiles.
Included in this test patch is logic to dump SectorFile operation tracing to file
sectorfile.tracer
in the root dir of a world. The file is not compressed, and it is appended to only. As a result of the lack of compression, when sending the file back for analysis please compress it to reduce size usage.This tracing will be useful for later tests to perform parameter scanning on some of the parameters of SectorFile:
Folia branch: https://github.com/PaperMC/Folia/tree/experiment/sectorfile
Download the paperclip jar for this pull request: paper-10231.zip