This repository was archived by the owner on Feb 24, 2018. It is now read-only.
Basic support for non-POSIX backends#25
Open
JohnPJenkins wants to merge 4 commits intollnl:masterfrom
Open
Conversation
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
Author
|
Thanks for the comments. Got rid of "posix" init/fini functions entirely, essentially matching what John Bent's fork does. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.