Skip to content

Investigate the possibility of using a deduplicated filesystem for running game instances #35

Description

@Gamebuster19901

Explore the feasibility of using a custom FileSystemProvider to expose deduplicated game versions as read-only filesystems.

The goal would be to let multiple game versions share a common blob store (content-addressed storage), allowing the JVM and related tools to interact with each version’s files through standard NIO APIs without requiring duplicate installations of the game on disk.

Key points to investigate:

  • How feasible it is to replace or augment FileSystems.getDefault() for seamless integration.
  • Performance and memory implications of mapping thousands of files virtually.
  • Limitations when interacting with native libraries (System.load, etc.)
  • Compare the feasibility between a pure java FileSystemProvider, FUSE based mount, and symlink approaches.
  • Pros and cons of a read-only design (throwing ReadOnlyFileSystemException when a deduplicated file is modified) versus a copy-on-write system, where modified files are copied where the default file system expects it to be, and future reads reference the new version instead of the blob store.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions