Skip to content

Sparse file support (NFSv4.2 SEEK, ALLOCATE, DEALLOCATE, READPLUS, WRITESAME) #554

@aureliencouderc

Description

@aureliencouderc

Could you please implement sparse file support?

Typical users are databases, High Performance Computing, Big Data, distributed system and so on.

  • Required are:
  • NFSv4.2 support in libnfs
  • NFSv4.2 operation "SEEK", to list sections with data, and sections with holes
  • NFSv4.2 operation "ALLOCATE", to allocate disk space
  • NFSv4.2 operation "DEALLOCATE", to free/deallocate disk space, aka punching a hole (which does not alter a file's size)
  • NFSv4.2 operation "READPLUS", to read from sparse files. The returned data are a list of unions, each union either containing the block data, or the size of the hole
  • NFSv4.2 operation "WRITESAME", to fill (and thus allocate) files with repeated patterns (typical fill with zeros, or "empty pattern" for databases)
  • Cavats/notes:
  • Sparse files contain sections called "holes" which do not contain data, but for backwards compatibility read as 0x00 bytes. But valid data can contain long sequences of 0x00 bytes, which are NOT holes
  • NFSv4.2 READPLUS union branch for holes contain the full length of a hole, even if the length is bigger than the requested chunk size of the read operation

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions