|
|
About ::
TODO ::
Blog ::
RSS ::
Old blog ::
Projects ::
GIT ::
Gallery ::
Notes
Thu, 02 Oct 2008
POHMELFS got new locking subsystem.
I've completed a small rewrite of the distributed locks in
POHMELFS.
They can be byte-range, but since Linux VFS locks the whole inode
during writing, I decided first to implement simpler apporach,
so although clients send byte-range locks, server locks the whole
object.
If there is a simultaneous writing to the object, only one writer is allowed
at a time. Write locks are grabbed at write time, read locks at read time. Writing
is still handled via writeback, so all caching facilities persist. Locks are 'cached',
i.e. if inode was locked and no one else tried to update it, no new lock messages
are sent between server and client. Lock release message (initiated by another client,
who wants to start writing into the same file) forces inode writeback on the current
lock owner.
I've started a testing process, so far quite trivial, but I plan to write a simple
application, which will simultaneously write into the same file from different clients
into different offsets (like first client writes each second byte, second client writes
each third byte and so on) and check the result. If everything is ok, I will release a new
version this weekend and start implementation of the really cool distributed facilities
I plan to have in POHMELFS. It will be first implemented as a library, so that anyone could
use it to create a distributed storage without patching a kernel (but with own API though,
I do not want to mess with FUSE).
/devel/fs :: Link / Comments ()
|