Skip to content
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

Add ReadAhead configuration support #243

Open
billziss-gh opened this issue Aug 6, 2019 · 1 comment
Open

Add ReadAhead configuration support #243

billziss-gh opened this issue Aug 6, 2019 · 1 comment

Comments

@billziss-gh
Copy link
Collaborator

billziss-gh commented Aug 6, 2019

Enhancement Request

Windows includes the CcSetReadAheadGranularityEx DDI and the older CcSetReadAheadGranularity DDI, which can be used to influence the operating system read-ahead policy for a particular file. This functionality should be exposed to user mode file systems in some form.

  • This may be implemented on a per-file basis (CcSetReadAheadGranularity* works on a FILE_OBJECT) or on a per-filesystem basis (e.g. via FSP_FSCTL_VOLUME_PARAMS).

    • Maximum flexibility might be provided by a mix of the two. Consider a ReadAhead field in FSP_FSCTL_VOLUME_PARAMS which defines a file system default (with 0 meaning the operating system default policy, i.e. the current behavior). In addition a file system may choose to provide a different read-ahead for a particular file (-- perhaps encoded as a power of 2 in the bitfields of FSP_FSCTL_TRANSACT_RSP::Rsp.Create.Opened, since read-ahead should be a power of 2 in general).
  • FUSE read-ahead support should be added via a command-line option.

  • .NET support should be added as well.

  • See issue Support for streaming large files with lookahead sshfs-win#104, which requested such support for SSHFS-Win.

@tracymacding
Copy link

have not implement yet?

@billziss-gh billziss-gh removed this from the v1.7 milestone Dec 15, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

2 participants