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

[RFC] Non-repeating file_service_type: roundrobin1 and random1 #1809

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

koct9i
Copy link
Contributor

@koct9i koct9i commented Aug 23, 2024

These servicing modes does not repeat file until completion previous operation.

( i.e. when nrfiles > iodepth fio should chose files which has no in-flight I/O )

Streaming IO-engines might not handle several requests to one "file" at once.
Or such workload might not match any real scenarios.

Signed-off-by: Konstantin Khlebnikov [email protected]

Reminders:

  1. If you modify struct thread_options, also make corresponding changes in
    cconv.c and bump FIO_SERVER_VER in server.h
  2. If you change the ioengine interface (hooks, flags, etc), remember to bump
    FIO_IOOPS_VERSION in ioengines.h.

// Ok, will do later if this change is ok

These servicing modes does not repeat file until completion previous operation.

Streaming IO-engines might not handle several requests to one "file" at once.
Or such workload might not match any real scenarios.

Signed-off-by: Konstantin Khlebnikov <[email protected]>
@vincentkfu
Copy link
Collaborator

I think the general idea is fine. I will take a closer look later but here are some general comments:

  • Documentation needs to be updated
  • Please choose better names than random1 and roundrobin1
  • With these options it does not make sense to have iodepth > nrfiles. Perhaps fio should emit an error message in this situation. This could be added in fixup_options().
  • The code would be more readable to have a helper to check service_type == RANDOM || service_type == RANDOM1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants