mysqld on jffs2: MyISAM Index write is slow
Artem B. Bityuckiy
dedekind at infradead.org
Fri Jan 21 04:46:08 EST 2005
Don't know if it easy to do this in JFFS2. But would be nice to solve this
in JFFS3.
On Thu, 20 Jan 2005, Charles Manning wrote:
> I expect it could help to add some caching to JFFS2 to handle stuff
> like this. I did something like this for YAFFS.
>
> YAFFS supports a "short op" cache for handling reads and writes that are
> smaller than parts of a page (it is bypassed by all whole page read/writes).
> The cache has typically 10 page-size "slots". The cache entries associated
> with a file get flushed whenever the file gets flushed, closed or pushed out
> by a new entry.
>
> At first I only used this cache for WinCE and YAFFS direct and disabled this
> cache for Linux, thinking that the Linux cache would do the job better.
> However, the Linux cache is write-through cache (ie does not cache writes).
> Enabling the cache improved short write performance dramatically. I expect it
> would in this case too.
>
> The cache is quite simple so implementing a similar cache in JFFS2 would not
> be a big deal.
>
> -- Charles
>
>
> On Thursday 20 January 2005 02:03, Artem B. Bityuckiy wrote:
> > Not expert in this issue, but I was told by David that JFFS2 is
> > synchronous, and you need redesigning it if you want asynchronous
> > behaviour.
> >
> > > Hi,
> > > I am using mysqld on jffs2. Tables work fine, but as soon as
> > > i am using indexes the writing of new entries becomes very slow.
> > > I found that mysql is writing one 1024 byte block to the index file
> > > of the MyISAM table (.MYI) for every new row. This is up to 20 times in
> > > sequence
> > > the same block. On non synchronous filesystems
> > > this goes to a Buffer in RAM, but on jffs2 this causes many writes to
> > > the flash. In my amdflash emulator I found that mysql writes about 180MB
> > > to the flash
> > > for a table of 13MB with 88000 rows.
> > >
> > > Is there a way to make jffs2 a little bit asynchronous ? Or does anybody
> > > know
> > > how to tell mysqld to write smaller blocks ? Mounting a reiser as
> > > loopback from
> > > a file on jffs2 does not work because jffs2 doesn't support mmap.
> > >
> > > Jochen
> > >
> > >
> > > ______________________________________________________
> > > Linux MTD discussion mailing list
> > > http://lists.infradead.org/mailman/listinfo/linux-mtd/
>
--
Best Regards,
Artem B. Bityuckiy,
St.-Petersburg, Russia.
More information about the linux-mtd
mailing list