|
|
About ::
TODO ::
Blog ::
RSS ::
Old blog ::
Projects ::
GIT ::
Gallery ::
Notes
Tue, 07 Oct 2008
POHMELFS locking testing.
So far it produced not bad results. But not good either.
I see locking messages and they are in the right order and file content
is not damaged, but clients frequently give up on timeout waiting for
lock to be granted. Since locking release process requires inode to be
unlocked (so it could be found and locked by the thread, which received
network packet), this indeed may take too long on slow media and disks,
since locking has to wait until data is written, for example wait for writeback
completion or page reading, if they were note in the cache yet.
I tested
POHMELFS
locks in Xen domains, where network speed is limited
by 3 MB/s and writing one million (or ten millions, that may be the point)
8-byte entries at different offsets (sequential step of 128 bytes) took more
than 50 seconds, so 5 seconds default lock timeout could be not enough.
That's the theory, in practice I need to test different timeouts and actually
run on real machines, but here comes another problem. I have three quite fast
SMP machines with lots of RAM connected over gigabit ethernet, which can be used
whatever I like. But...
The first one was essentially killed by
tbench regression
testing. They all have long history of problems with disks or SCSI controllers,
now it happens again: the first machine boots only with single 2.6.22 Debian kernel,
anything else (including vanilla 2.6.22) fails to read data from the software raid
partition, although disks are detected correctly.
Another machine is actively used by aforementioned tbench regression testing,
it takes quite long time to boot it and run tests, so things are slow enough.
And the last one is used to control IPMI, since it is the only way I have to reboot them,
so when I managed to freeze all three, I needed to contact people who needed to contact people,
who needed to hard reset machines in datacenter and put them into BIOS, since existing
KVM switches are stupid enough not to respond to keyboard when machine died.
So, I'm a bit forced to spread efforts in several different directions,
but nevertheless there is a little bit of time for the new things:
$ ./elliptics -c ./elliptics.conf
2008-10-07 01:03:39.430198 12778 Logging has been started.
2008-10-07 01:03:39.430559 12778 Successfully initialized 'sha1' hash.
2008-10-07 01:03:39.430641 12778 Node id: b551803fd74ff5590ed38f6ce8a10a2e577b2a9e
2008-10-07 01:03:39.431076 12778 Server is now listening at 127.0.0.1:1025.
$ cat elliptics.conf
#
# This is a simple config file for the elliptics network.
# Note, that spaces are skipped before and after the '=' delimiter.
#
log = /dev/stdout
hash = sha1
id = This is id string
#numeric_id = 1234567890abcdefffffffffffffffffffffffa
root = /tmp
addr = 127.0.0.1:1025:2
#addr = ::1:1025:10
That will be an excellent project (maybe even my best one to date :),
which will be used in... More details when things are ready.
I like the idea, so maybe it will give a name for my new site, like
noelliptics.net. Not yet though.
/devel/fs :: Link / Comments ()
|