Skip to content
This repository has been archived by the owner on Feb 24, 2018. It is now read-only.

Basic support for non-POSIX backends #25

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

JohnPJenkins
Copy link

This PR performs some simple refactoring and adds minimal functionality to enable the implementation of backends with files not mapped into the POSIX namespace. For example, talking directly to object storage systems or experimenting with new storage system interfaces such as ASG ("Towards a Unified Object Storage Foundation for Scalable Storage Systems", http://press3.mcs.anl.gov/iasds13/program/papers/) are, for the most part, made possible with this PR.

Expand the commit messages for a more detailed description of each change - essentially, some syscalls were moved into backend functions, and a dedicated init/finalize function was added.

No changes in behavior to IOR and all of the existing backends were made.

John Jenkins added 4 commits September 19, 2014 09:10
For "non-traditional" backends that expose a different namespace than that
directly accessible by straight POSIX calls, the access() call shouldn't be
directly used by the benchmark. POSIX calls can still occur as a result in the
current iteration of the code (e.g., uniqueDir option resulting in calling
mkdir), but for the moment I assume that backends will exit if an incompatible
option is selected.
Non-POSIX systems may need special initialization/finalization code to e.g.,
set up network contexts, ping servers for storage system view, etc.
The notion of a "directory" may not be valid with a non-POSIX namespace (e.g.,
an object store), so put the mkdir down a level. Ideally, creating directories
should be relegated to the *_init functions so that the logic is not happening
at the "top-level" (PrependDir), but that's a little too much code churn for
now, so going with the easier option. Backends without a notion of directories
should simply spit out a warning or error.
if init/fini are going to be no-ops, have explicit no-op support
@JohnPJenkins
Copy link
Author

Thanks for the comments. Got rid of "posix" init/fini functions entirely, essentially matching what John Bent's fork does.

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

Successfully merging this pull request may close these issues.

None yet

2 participants