[0/3] POHMELFS high performance network filesystem. First steps in parallel processing.

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Evgeniy Polyakov
Date: Friday, June 13, 2008 - 9:37 am

Hi.

I'm pleased to announce POHMEL high performance network parallel
distributed filesystem.
POHMELFS stands for Parallel Optimized Host Message Exchange Layered File System.

Development status can be tracked in filesystem section [1].

This is a high performance network filesystem with local coherent cache of data
and metadata. Its main goal is distributed parallel processing of data.

This release brings following features:
 * Read requests (data read, directory listing, lookup requests) balancing
 	between multiple servers.
 * Write requests are sent to multiple servers and completed only
 	when all of them sent an ack.
 * Ability to add and/or remove servers from working set at run-time from
	 userspace (via netlink, so the same command can be processed from
	 real network though, but since server does not support it yet,
	 I dropped network part).
 * Documentation (overall view and protocol commands)!
 * Rename command (oops, forgot it in previous releases :)
 * Several new mount options to control client behaviour instead of
	hardcoded numbers.
 * Bug fixes.

Very likely it is one of the last non-bug-fixing release of the kernel
client side, next release will incorporate features, needed for distributed
parallel data processing (like ability to add new servers via network
command from another servers), so most of the work will be devoted to server
code.


Basic POHMELFS features:
 * Local coherent (notes [2]) cache for data and metadata).
 * Completely async processing of all events (hard and symlinks are the only 
    	exceptions) including object creation and data reading/writing.
 * Flexible object architecture optimized for network processing. Ability to
    	create long pathes to object and remove arbitrary huge directoris in 
	single network command.
 * High performance is one of the main design goals.
 * Very fast and scalable multithreaded userspace server. Being in userspace
    	it works with any underlying filesystem and still is much faster than
	async ni-kernel NFS one.
 * Client is able to switch between different servers (if one goes down,
	client automatically reconnects to second and so on).
 * Transactions support. Full failover for all operations. Resending
	transactions to different servers on timeout or error.

Roadmap includes:
 * Server redundancy extensions (ability to store data in multiple locations
	according to regexp rules, like '*.txt' in /root1 and '*.jpg' in /root1
	and /root2.
 * Strong authentification and possible data encryption in network
	channel.
 * Async writing of the data from receiving kernel thread into userspace
	pages via copy_to_user() (check development tracking blog for results).
 * Client dynamical server reconfiguration: ability to add/remove servers
	from working set by server command (as part of development distributed
	server facilities).
 * Start development of the generic parallel distributed server.

One can grab sources from archive or git [2] or check homepage [3].

Thank you.

1. POHMELFS development status.
http://tservice.net.ru/~s0mbre/blog/devel/fs/index.html

2. Source archive.
http://tservice.net.ru/~s0mbre/archive/pohmelfs/
Git tree.
http://tservice.net.ru/~s0mbre/archive/pohmelfs/pohmelfs.git/

3. POHMELFS homepage.
http://tservice.net.ru/~s0mbre/old/?section=projects&item=pohmelfs

4. POHMELFS vs NFS benchmark [iozone results are coming].
http://tservice.net.ru/~s0mbre/blog/devel/fs/2008_04_18.html
http://tservice.net.ru/~s0mbre/blog/devel/fs/2008_04_14.html
http://tservice.net.ru/~s0mbre/blog/devel/fs/2008_05_12.html

5. Cache-coherency notes.
http://tservice.net.ru/~s0mbre/blog/devel/fs/2008_05_17.html

Signed-off-by: Evgeniy Polyakov <johnpol@2ka.mipt.ru>

-- 
	Evgeniy Polyakov
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[0/3] POHMELFS high performance network filesystem. First ..., Evgeniy Polyakov, (Fri Jun 13, 9:37 am)
[1/3] POHMELFS: VFS trivial change., Evgeniy Polyakov, (Fri Jun 13, 9:40 am)
[2/3] POHMELFS: Documentation., Evgeniy Polyakov, (Fri Jun 13, 9:41 am)
[3/3] POHMELFS high performance network filesystem., Evgeniy Polyakov, (Fri Jun 13, 9:42 am)
Re: [2/3] POHMELFS: Documentation., Jamie Lokier, (Fri Jun 13, 7:15 pm)
Re: [2/3] POHMELFS: Documentation., Evgeniy Polyakov, (Fri Jun 13, 11:56 pm)
Re: [2/3] POHMELFS: Documentation., Jeff Garzik, (Sat Jun 14, 2:49 am)
Re: [2/3] POHMELFS: Documentation., Trond Myklebust, (Sat Jun 14, 11:45 am)
Re: [2/3] POHMELFS: Documentation., Evgeniy Polyakov, (Sat Jun 14, 12:25 pm)
Re: [2/3] POHMELFS: Documentation., Sage Weil, (Sat Jun 14, 9:27 pm)
Re: [2/3] POHMELFS: Documentation., Evgeniy Polyakov, (Sat Jun 14, 10:57 pm)
Re: [3/3] POHMELFS high performance network filesystem., Vegard Nossum, (Sun Jun 15, 12:47 am)
Re: [3/3] POHMELFS high performance network filesystem., Evgeniy Polyakov, (Sun Jun 15, 2:14 am)
Re: [2/3] POHMELFS: Documentation., Sage Weil, (Sun Jun 15, 9:41 am)
Re: [2/3] POHMELFS: Documentation., Evgeniy Polyakov, (Sun Jun 15, 10:50 am)
Re: [2/3] POHMELFS: Documentation., Sage Weil, (Sun Jun 15, 8:17 pm)
Re: [2/3] POHMELFS: Documentation., Evgeniy Polyakov, (Mon Jun 16, 3:20 am)