|
|
About ::
TODO ::
Blog ::
RSS ::
Old blog ::
Projects ::
GIT ::
Gallery ::
Notes
Sat, 24 Nov 2007
Coherent Remote File System.
Zach Brown has an extremely
interesting idea of network filesystem implementation.
One can thing about it like NFS client or more proceise as a
client-server protocol, which allows clients to have a cache of
data instaed of relying on server. This of course requires a cache
coherency protocol to be involved in client-server communications,
which makes things more complex.
Simply this works as a trivial filesystem, mounted on clients,
where each read/write/meta operation is perfomed on top of locally
cached data, if data is not preset in the local cache, it is fetched from
the server. Client flushes its updated cache to the server in number
of various conditions either because of usual writeback process or
because of cache coherency process (i.e. when another node reads
from the file, updated by given client).
Zach will present
it at LCA this February.
So far it is closed Oracle's project (as far as I know open sourcing process in on the way,
just like it was with Chris Mason's btrfs),
and I strongly want to implement exactly the same idea myself :)
This process will have number of benefits:
- simple open source filesystem, which can be used as a base for real filesystem development
(do not confuse it with virtual filesystems like
sysfs or debugfs)
- ability to extend it for own protocols
- cache coherency mechanism will be used in distributed filesystem
- possibility to test byte range locking
in a real life
- implement filesystem bits first in userspace (I do not want to introduce additional mispredicted
behavuiour because of FUSE)
Zach, what about small competition? :)
Frankly saying I'm not an expert in cache coherency protocols and filesystem development either
(you will not believe me, but last several days I'm trying to implement inteteresting B-tree,
but with each day spent on that problem I comment more and more bits in the code and it still does
not work the way I want :).
With recent trends I believe I will have pretty high-end hardware soon to perform various tests and
find common and tricky bottlenecks.
This implementation can be used by various users aimed for distributed systems,
but which do not want to have (or bother with) real filesystem developemnt and which
are ready to have a server in userspace on top of existing filesystems (in
receiving zero-copy
project I showed huge problem with in-kernel usage of some of Linux
filesystems, especially those which use in-kernel JBD journaling, when
it is impossible to preallocate (->prepare_write()) number of pages for given
file and then write into them and commit (->commit_write()) at once for maximum performance).
/devel/fs :: Link / Comments (2)
Meanwhile at appartment development side.
I've completed big arc in the room and finished most of the smaller
arc for the checkroom (rough strong emery paper rocks),
it requires some polishing and eventual
wallpaper glueing and painting. I think I will finish this part
(as long as painting of all room's walls) next weekend. I want to complete
room, checkroom and (hopefully) hall. The latter requires a bit more
work - if I will have enough time and glue for ceramics, I will setup
ceramic granit floor. I hope to get a ceiling and a water system hatch
for the bathroom next weekend too, so that it would be completed too.
When it is ready, I think I will have some rest, or maybe will go a usual way -
proceed with development of the kitchen. It is not that complex and will not
require a lot of time actually, even if I will (and I want to) install
hinged ceiling there too.
/devel/flat :: Link / Comments (0)
|