The dva is just part of a block pointer blkptr_t. 
It's the blkptr_t that is stored on disk and used to traverse the pool.
It also contains such details as the block size, ditto dvas (redundant
blocks), the birth txg, block checksum, endianess, ...

Neil.

Jeremy Archer wrote:
> Hi Darren,
> 
> Thanks for replying.  
> 
> I am confused then. What is the purpose of incorporating the birth txg 
> in the arc hash?   
> 
> How do 2 different files find a shared block?
> 
> Obviously, the first one  has to read it from disk, and subsequently remember 
> the 
> birth txg in addition to to the dva.  
> 
> How does the 2nd file know what is the birth txg of the desired block?
> Does each file have do an initial read from disk to learn the birth txg of 
> the block?
> 
> I am looking for easy to understand metaphores, 
> such as "cache entries are valid for current txg only"... 
> but it looks I am out of luck in this case.

Reply via email to