[Yaffs] Performance of overwrite vs new file
Peter Barada
Peter.B at LogicPD.com
Wed Oct 12 23:14:34 BST 2005
On Thu, 2005-10-13 at 10:46 +1300, Charles Manning wrote:
> Hi Robert
>
> This is a well-known (by some :-)) issue, but the x7 difference is
> surprising, I would have expected more like x2.
>
> I could go into the explanation in depth if you need, but for now I will
> give a 50,000 ft description:
>
> What happens is this:
> 1) If you overwrite a file, then yaffs cannot use soft deletion, but
> must instead mark the old file sectors as being deleted. This costs
> extra programming cycles. If (likely) blocks become fully discarded,
> then they will be erased.
>
> The above will happen whether or not you overwrite the file directly or
> whether you first truncate it to zero first ie open with O_TRUNC.
>
> If instead you delete a file and rewrite it from scratch, then YAFFS
> uses "soft deletion" to delete the file instead. This does not program
> deletion markers and therefore takes far less time.
>
> I believe some/most other log structured fs have a similar issue.
>
>
> One way around this is to delete files rather than truncate them. Of
> course this only works if you can modify the source. Ie:
>
> Instead of
>
> h = open(fname, O_CREAT | O_RDWR| O_TRUNC);
>
> Use
>
> unlink(fname);
> h = open(fname, O_CREAT | O_RDWR);
>
> The above does not apply to yaffs2 on 2k pages since yaffs2/2k does not
> write deletion markers.
Can YAFFS detect this situation and effectively "unlink" the file first?
>
> > -----Original Message-----
> > From: yaffs-bounces at stoneboat.aleph1.co.uk
> > [mailto:yaffs-bounces at stoneboat.aleph1.co.uk] On Behalf Of
> > Roberts Nathan-mcg31137
> > Sent: Thursday, 13 October 2005 4:24 a.m.
> > To: yaffs at stoneboat.aleph1.co.uk
> > Subject: [Yaffs] Performance of overwrite vs new file
> >
> >
> > I've run into an interesting performance issue that I was
> > hoping someone with more knowledge of YAFFS's inner workings
> > could explain rather quickly.
> >
> > Essentially, I am observing that overwriting a file (1MB or
> > so) takes about 7 times longer than writing exactly the same
> > file under a new name.
> >
> > This is using YAFFS1 on NAND with 512B pages.
> >
> > Thanks for any insight.
> >
> > _______________________________________________
> > yaffs mailing list
> > yaffs at stoneboat.aleph1.co.uk
> > http://stoneboat.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs
> >
>
> _______________________________________________
> yaffs mailing list
> yaffs at stoneboat.aleph1.co.uk
> http://stoneboat.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs
--
Peter Barada <Peter.B at LogicPD.com>
More information about the yaffs
mailing list