On 30.06.09 22:27, Ricardo M. Correia wrote:
> On Ter, 2009-06-30 at 10:58 -0700, Jeremy Archer wrote:
>> OK.. 
>>
>>> Once the file is deleted, ARC entry {dva 5 txg 5} is no longer valid.
>>> So why do we need it?
>>>> Let's suppose file is removed from the directory but is still open by
>>>> some process...
> 
> I think both of you (Jeremy and Victor) are getting a bit confused (or
> maybe it's me?).

Agree, my example was not good for the proposed scenario. Need to think 
more before typing. May be it is just time to go home...


> 
> Even if file A is removed from the directory but is still open, this
> wouldn't cause a block of File B from getting assigned the same DVA as a
> block from the (unlinked from the directory, but still existent on-disk)
> file A, as in the example provided.
> 
> The blocks of the unlinked file A would only be freed when the file is
> closed by the process (assuming no snapshot is present), at which point
> there's no need to access its cached blocks anymore.
> 
> If a snapshot is taken after file A is written but before it is
> unlinked, then the blocks of file B would never be assigned the same
> DVAs as the blocks of file A, since the blocks of file A would only be
> freed after the snapshot is deleted.
> 
>> On a traditional fle system, you would not be able to delete an open file. 
>> Which I believe is good. 
> 
> Actually, I think you can do that on most UNIX filesystems.
> 
>> So, on ZFS you say, you can write to a file  that you opened in txg 5 
>> that was already deleted in txg 10?
> 
> If by deleted you mean unlinked from the directory but still open by a
> process, then yes (as in most UNIX filesystems).
> 
>> When txg 5 completes, you will have the updated content, and when txg 10 
>> finishes, you will have a deleted file.  
> 
> The file will still be there in txg 10, but linked to a special ZAP,
> hidden from the namespace.
> 
> As to why the ARC can cache two blocks with the same DVA allocated in
> different txgs (which means one of them would be invalid?), that I don't
> know..
> 
> Cheers,
> Ricardo
> 
> 
> _______________________________________________
> zfs-code mailing list
> zfs-code at opensolaris.org
> http://mail.opensolaris.org/mailman/listinfo/zfs-code

Reply via email to