I replied... maybe I don't count anymore, boo hoo :-)
http://opensolaris.org/jive/thread.jspa?threadID=118667&tstart=15
 -- richard

On Dec 9, 2009, at 1:57 PM, andrew.r...@sun.com wrote:

hi,
i'm re-sending this because I'm hoping that someone has some answers
to the following questions.  I'm working a hot Escalation on AmberRoad
and am trying to understand what's under zfs' hood.

thanks
Solaris RPE
/andrew rutz

On 11/25/09 13:55, andrew.r...@sun.com wrote:
I am trying to understand the ARC's behavior based on different
permutations of (a)sync Reads and (a)sync Writes.
thank you, in advance
o does the data for a *sync-write* *ever* go into the ARC?
 eg, my understanding is that the data goes to the ZIL (and
the SLOG, if present), but how does it get from the ZIL to the ZIO layer?
 eg, does it go to the ARC on its way to the ZIO ?
 o if the sync-write-data *does* go to the ARC, does it go to
   the ARC *after* it is written to the ZIL's backing-store,
   or does the data go to the ZIL and the ARC in parallel ?
   o if a sync-write's data goes to the ARC and ZIL *in parallel*,
     then does zfs prevent an ARC-hit until the data is confirmed
to be on the ZIL's nonvolatile media (eg, disk-platter or SLOG) ?
     or could a Read get an ARC-hit on a block *before* it's written
     to zil's backing-store?
o is the DMU where the Serialization of transactions occurs?
o if an async-Write for block-X hits the Serializer before a Read
 for block-X hits the Serializer, i am assuming the Read can
 "pass" the async-Write; eg, the Read is *not* pended behind the
 async-write.  however, if a Read hits the Serializer after a
 *sync*-write, then i'm assuming the Read is pended until
 the sync-write is written to the ZIL's nonvolatile media.
 o if a Read "passes" an async-write, then i'm assuming the Read
   can be satisfied by either the arc, l2arc, or disk.
o it's stated that "the L2ARC is for random-reads".  however, there's
 nothing to prevent the L2ARC from containing blocks derived from
 *sequential*-reads, right ?   also, blocks from async-writes can
 also live in l2arc, right?  how about sync-writes ?
o is the l2arc literally simply a *larger* ARC?  eg, does the l2arc
 obey the normal cache property where "everything that is in the L1$
 (eg, ARC) is also in the L2$ (eg, l2arc)" ?  (I have a feeling that
 the set-theoretic intersection of ARC and L2ARC is empty (for some
 reason).
 o does the l2arc use the ARC algorithm (as the name suggests) ?
thank you,
/andrew
Solaris RPE
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

--
Andrew Rutz                                    andrew.r...@sun.com
Solaris RPE                              Ph: (x64089) 512-401-1089
Austin, TX  78727                        Fax:         512-401-1452
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to