Re: [2/3] POHMELFS: Documentation.

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Sage Weil <sage@...>
Cc: Jamie Lokier <jamie@...>, <linux-kernel@...>, <netdev@...>, <linux-fsdevel@...>
Date: Sunday, June 15, 2008 - 1:57 am

Hi Sage.

On Sat, Jun 14, 2008 at 09:27:55PM -0700, Sage Weil (sage@newdream.net) wrote:

Yes, not only writepage, but any request - if it sends sequest and then
receives reply (i.e. doing send/recv sequence without ability to do
something else in between or allow other users to do sends or receives
into the same socket), then it is synchronous. If it only sends, and
someone else receives, it is possible to send multiple requests from
different users who do reads or writes or lookups or whatever and
asynchronously in different thread receive replies not in particular
order, so this approach I call asynchronous.


Yes, POHMELFS does writing that way.


Not exactly. Transaction in a nutshell is a wrapper on top of command
(or multiple commands if needed like in writing), which contains all
information needed to perform appropriate action. When user calls read()
or 'ls' or write() or whatever, POHMELFS creates transaction for that
operation and tries to perform it (if operation is not cached, in that
case nothing actually happens). When transaction is submitted, it
becomes part of the failover state machine which will check if data has
to be read from different server or written to new one or dropped.
original caller may not even know from which server its data will be
received. If request sending failed in the middle, the whole transaction
will be redirected to new one. It is also possible to redo transaction
against different server, if server sent us error (like I'm busy), but
this functionality was dropped in previous release iirc, this can be
resurrected though. Having generic transaction tree callers do not
bother about how to store theirs requests, how to wait for results and
how to complete them - transactions do it for them. It is not rocket
science, but extrmely effective and simple way to help rule out
asynchronous machinery.


That was somewhat old approach, currently inode numbers and things like
open-by-inode or NFS style open-by-cookie are not used. I tried to
describe caching bits in docuementation I ent, although its a bit rough
and likely incomplete :) Feel free to ask if there are some white areas
there.

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

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