GitXplorerGitXplorer
s

slowpokefs

public
15 stars
2 forks
0 issues

Commits

List of commits on branch master.
Unverified
f2c598da9c8b6d613ccbdef7d6c9e2c731373b9b

Update README.md

sschoentoon committed 10 years ago
Unverified
b9d7f02811b51573fa71764c8a1a006c8eb0c143

Added support for sleeping in nano seconds instead of milliseconds

sschoentoon committed 12 years ago
Unverified
f42fa0a217b95c3ffe9c00c9c23ceeedfb271f11

Let's add pthread to the linker flags so we can use fuse multithreaded

sschoentoon committed 12 years ago
Unverified
1bdef462b654597fcf5848a86adc869e71b6d214

Added support for utime()

sschoentoon committed 12 years ago
Unverified
a367b707f827a00e0e254d88009ff39e6a3da545

Travis doesn't like fuse

sschoentoon committed 12 years ago
Unverified
21ada382ac52f307feab9ebdf9895ad7706700b9

Added a simple test script

sschoentoon committed 12 years ago

README

The README file for this repository.

Slowpokefs

Simulates slow disk IO using FUSE. Generally useful for testing although the main purpose was to show that blocking IO (as provided by most libaries) really, really sucks.

As a simple comparision I mounted /tmp using slowpokefs. When using ls on /tmp I got the following results using time:

real 0m0.058s
user 0m0.001s
sys 0m0.002s

Then I did ls on the same directory but this time mounted through slowpokefs, this gave me the following results:

real 0m34.515s
user 0m0.001s
sys 0m0.005s

Now this may not be a big deal in a lot of cases, but it can be a big deal in your own programs. For example we have a single threaded web server, when the IO hangs like the server will just not accept new connections. And yes IO can be this slow without a program like this think damaged hard drives.

Notes

In case you're writing to it with buffers larger than 4096 bytes fuse will by default split your write operation up in chunks of 4096 bytes. If you don't want this mount with -o direct_io