feat: implement region file reassembly and improve bundle format
- Add fastutil and lz4-java dependencies for efficient data structures and compression - Implement VarInt/VarLong serialization for more compact bundle headers - Redesign bundle header format to include timestamps and use variable-length integers - Replace GZIP-based compression with region file reassembly for better compression of chunk data - Add RegionFile and RegionFileReassembler classes for handling Minecraft region files - Implement configurable compression types (GZIP, ZLIB, LZ4, NONE) for region files - Add timestamp filtering and duplicate handling to BundleReader - Improve parallel processing capabilities with configurable worker threads - Add JUnit 5 testing support and configure shadowJar minimization - Update file extensions from .jpack to .jbp.zst for clarity - Enhance error handling and logging throughout the codebase - Add comprehensive region file manipulation including chunk-level recompression - Implement memory-efficient region file parsing using Netty ByteBuf - Add support for dictionary-based Zstd compression - Update backup worker to use new bundle format - Various performance optimizations and bug fixes
This commit is contained in:
1 parent
28280bc162
commit
d48b11b58b
14 files changed
+544
-83
No files matched your search
@@ -40,7 +40,7 @@ public record BackupWorker(
|
||||
var backupName = "Backup_" + DateTimeFormatter.ISO_LOCAL_DATE_TIME.format(LocalDateTime.now());
|
||||
var backupParentRoot = Path.of(config.temporaryBackupDir());
|
||||
if (Files.notExists(backupParentRoot)) Files.createDirectories(backupParentRoot);
|
||||
var backupFile = backupParentRoot.resolve(backupName + ".jpack");
|
||||
var backupFile = backupParentRoot.resolve(backupName + ".jbp.zst");
|
||||
try {
|
||||
if (i == 0) {
|
||||
// not saved yet.
|
||||
|
||||
@@ -23,6 +23,7 @@ import net.fabricmc.api.ModInitializer;
|
||||
|
||||
import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback;
|
||||
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
|
||||
import net.jpountz.lz4.LZ4BlockInputStream;
|
||||
import net.minecraft.command.CommandRegistryAccess;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.server.command.CommandManager;
|
||||
|
||||
Reference in new issue
Block a user